Разработка программы в среде Pascal

Разработка и тестирование программы на языке Pascal для поиска, вывода на экран и сохранения в файл списка книг с фамилиями авторов в алфавитном порядке, изданных после 2012 года. Разработка алгоритма и его описание. Инструкции по эксплуатации приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.06.2013
Размер файла 903,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

3

МИНИСТЕРСТВО ОБРАЗОВАНИЯ

РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«ПОЛОЦКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Кафедра Технологий программирования

КУРСОВАЯ РАБОТА

по дисциплине «Программирование»

Новополоцк 2013

СОДЕРЖАНИЕ

Введение

1. Постановка задачи

2. Определение выходных данных

3. Интерфейс программы

4. Проектирование программы

5. Разработка алгоритма и его описание

6. Инструкции по эксплуатации приложения

7. Тестирование программы

8. Заключение и вывод

Литература

Приложение

ВВЕДЕНИЕ

Современные информационные системы организационного управления предназначены оказывать помощь специалистам, руководителям, принимающим решения, в получении ими своевременной, достоверной, в необходимом количестве информации, создании условий для организации автоматизированных офисов, проведении с применением компьютеров и средств связи оперативных совещаний, сопровождаемых звуковым и видеорядом. Постигается это переходом на новую информационную технологию. Новая информационная технология - это технология, которая основывается на применении компьютеров, активном участии пользователей (непрофессионалов в области программирования) в информационном процессе, высоком уровне дружественного пользовательского интерфейса, широком использовании пакетов прикладных программ общего и проблемного назначения, возможности для пользователя доступа к удаленным базам данных и программам благодаря сетям ЭВМ.

Для написания своей курсовой работы я использовал язык программирования Pascal. Средой разработки приложения использовалась среда PascalABC.

Паскаль (англ. Pascal) - язык программирования общего назначения. Один из наиболее известных языков программирования, широко применялся в промышленном программировании, до сих пор используется для обучения программированию в высшей школе, является базой для ряда других языков.

Эта система призвана осуществить переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Многие концепции в Pascal ABC упрощены, что позволяет использовать их на более ранних этапах обучения. Модуль графики обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi.

1. Постановка задачи

Согласно условию задания, главной функцией программы является поиск, вывод на экран и сохранение в файл списка книг с фамилиями авторов в алфавитном порядке, изданных после 2012 года; списка книг заданного автора. Программа должна выполнять следующие функции:

1)Добавление в файл автора, название книги, год издания книги (автор, название книги, год издания книги заносится пользователем с клавиатуры).

2)Поиск и вывод на экран книг интересующих пользователя.

3)Поиск и вывод книг изданных после 2012 года в алфавитном порядке.

4)Возможность легкого управления программой при помощи клавиатуры.

Но, для реализации поставленных задач необходимо определится с типом входных и выходных данных.

2. Определение выходных данных

Информация необходимая для работы программы определена в условии задания:

Автор книги;

Название книги;

Год издания книги

Этой информации достаточно, что бы отобрать и отобразить список нужных рейсов. Можно воспользоваться заранее подготовленной информацией или же можно заменить или дополнить ее при помощи программы. Ниже в таблице приведены заранее подготовленные данные:

Автор книги

Название книги

Год издания книги

Пушкин

Война и мир

1963

Хемингуэй

Унесённые ветром

2013

Гоголь

Горе от ума

1875

Садулаев

Шалинский рейс

2013

Чапаев

Буря

1562

Пелевин

Чапаев и пустота

2013

Лермантов

Шторм

1486

Толстой

Мастер и маргарита

2013

Быков

Волчья стая

1563

Иличевский

Перс

2013

3. Интерфейс программы

программа рascal алгоритм

Интерфейс программы должен быть понятен простому пользователю.

Поэтому необходимо учитывать следующие критерии:

- наглядность интерфейса. Информация должна выводится на экран так, чтобы легко было понять, где что написано и какую клавишу нажимать для использования той или иной функции;

- простота интерфейса. Незнающий человек не должен тратить много времени на освоение интерфейса программы;

- проверка ввода данных. Вводимые данные должны проверяться на корректность.

Главное меню нашей программы будет выглядеть, как показано на рисунке (рис. 1).

Рис. 1 - Главное меню

4. Проектирование программы

Для удобства хранения информации необходимо создать новый тип данных вида запись. Поля записи будут хранить следующую информацию:

-Название автора. Тип данных - строка(string).

-Название книги Тип данных - строка(string).

-Год издания книги. Тип данных - число(integer).

Для реализации программы мы будем использовать операторы ветвления(if) и операторы циклов(while, repeat, for).

Цикл с постусловием(repeat):

Оператор используется, когда количество повторений заранее неизвестно, а задано некоторое условие выхода из цикла.

Формат:

Repeat

<оператор 1>;

. . .

<оператор K>

Until<условие>;

Цикл с постусловием - это цикл, в котором проверка условия выполняется в конце цикла.

Последовательность действий при выполнении цикла:

1. Выполняются <оператор 1>, … <оператор K>.

2. Проверяется <условие>. Если оно ложно, то выполняется возврат к метке Repeat, т.е. к выполнению операторов тела цикла.

3. Пункты 1 и 2 выполняются до тех пор, пока <условие> не станет истинным.

Оператор ветвления(if):

К операторам, позволяющим из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один, относится if .

Т.е. этот оператор позволяет изменить естественный порядок выполнения операторов программы.

Формат:

If<условие> then < оператор 1 >

else <оператор 2>;

Если условие истинно, то выполняется <оператор 1>, если ложно - оператор, следующий сразу за оператором.

В операторе if по обеим ветвям (then и else) может выполняться только один оператор!

При необходимости выполнения нескольких требуется использовать операторные скобки begin-end.

Цикл с условием (while):

Формат цикла:

while<условие>dobegin

{тело цикла}

end;

Последовательность действий при выполнении цикла:

1. Проверяется истинно ли <условие>.

2. Если это так, то выполняется операторы, заданные в теле цикла.

3. Пункты 1 и 2 выполняются до тех пор, пока <условие> не станет ложным.

Условие окончания цикла может быть выражено переменной, константой или выражением, имеющим логический тип.

Перед началом цикла должны быть инициализированы переменные, входящие в условие цикла.

Чтобы избежать «зацикливания», среди операторов тела цикла обязательно требуется предусмотреть изменение переменных, входящих в проверяемое условие.

Оператор ветвления(if):

К операторам, позволяющим из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один, относится if .

Т.е. этот оператор позволяет изменить естественный порядок выполнения операторов программы.

Формат:

If<условие> then < оператор 1 >

else <оператор 2>;

Если условие истинно, то выполняется <оператор 1>, если ложно - оператор, следующий сразу за оператором.

В операторе if по обеим ветвям (then и else) может выполняться только один оператор!

При необходимости выполнения нескольких требуется использовать операторные скобки begin-end.

5. Разработка алгоритма и его описание

Перед тем как начать писать программу в среде разработки, нам необходимо продумать каждый ее шаг, для наглядного представления воспользуемся блок-схемами. Ниже, будут представлены несколько блоков.

Вначале запускается цикл for. Пользователю предоставляется возможность ввода информации, если информация проходит проверку на корректность ввода, то она записывается в исходный файл (input.txt). Ниже предоставлен исходный код:

fori:=1 tomdobegin

writeln('Введите фамилию автора: ');

readln(S.aut);

writeln('Введите название книги: ');

readln(S.nazv);

repeat //Проверка на корректный ввод года

writeln('Введите год издания: ');

readln(S.god);

until (S.god < 2014) and (S.god > 0);

write(f, S);

clrscr; //очисткаэкрана

end;

close(f); //Закрываемфайл

end;

Рис.2

Блок - схема занесения информации в файл

Рис. 3

Поиск, обработка и вывод нужной информации

На Рис.3изображена схема поиска, обработки и вывода информации на экран. Вначале производится считывание информации из файла. Потом производится проверка на год издания книги автора, если проверка пройдена, то на экрани в отдельный файл(output1.txt)выводится год издания книги и происходит сортировка авторов по алфавиту. Ниже приведен исходный код:

while not eof(f) do with S do begin //*

read(f, S); //Преносим данные

if(S.god >= 2012) then begin //из файла

mas[i] := S ; //в массив

i:=i+1; //для дальнейшей

end; //сортировки

end; //*

{-------*Конец сортировки*-------}

clrscr;

writeln('----------------------------------------------------');

writeln('| Автор | Названиекниги | Годиздания |');

writeln('----------------------------------------------------');

writeln(f1,'----------------------------------------------------');

writeln(f1,'| Автор | Название книги | Год издания |');

writeln(f1,'----------------------------------------------------');

for m:=2 to i do begin //Вывод данных на экран и в файл

write( mas[m].aut:12,'|');

write( mas[m].nazv:20,'|');

writeln(mas[m].god:17,'|');

writeln('----------------------------------------------------');

write( f1,mas[m].aut:12, '|' );

write( f1,mas[m].nazv:20, '|');

writeln( f1,mas[m].god:17, '|');

writeln(f1,'----------------------------------------------------');

end;

close(f); //Закрываем файл ввода

close(f1); //Закрываем файл вывода 1

end;

6. Инструкция по эксплуатации приложения

На (Рис.4) изображено главное меню программы. Для выбора пункта меню необходимо: ввести цифру стоящую рядом с нужным нам пунктом и нажать Enter.

Рис.4 - главное меню

Итак, для начала выберем пункт 1 (рис.5). Программа предлагает ввести некоторое количество записей (для примера мы введем 1). Далее следуем описанным в программе инструкциям.

Рис.5 - Добавление записи

При выборе пункта 2 (Рис. 6), на экран выводятся книги авторов изданных после 2012 года.Результат представлен.

Рис.6 - Выполнение программы

При выборе пункта 3(рис.7) на экран выведется список книг заданного автора пользователем.

Рис.7 - Выполнение программы

7. Тестирование программы

В результате выполнения программы я использовал разные циклы для её выполнения. Программа, которую я создал, выполняет такие функции как сохранение, открытие и создание файлов которые содержат информацию. Пример работы программы на работоспособность представлен на Рис. 8

Рис. 8

8. Заключение и выводы

Для написания программы я использовал паскаль. Я взял эту программу для написания курсовой, потому что она проста в использовании и подходит для начинающих. Мне понравилось с ней работать. C помощью моей программы можно определить какая вас книга интересует и есть ли она или даст вам список книг выпущенных в настоящее время новых книг. Также удалось реализовать добавление и использовать поиск данных. Программа включает в себя проверку вводимых данных.

Моя программа не затруднений в использовании, так как она имеет простой интерфейс.

Литература

1. Прищепов М. А. Программирование на языках Basic, Pascal и Object Pascal в среде Delphi: Учебное пособие. - Мн.: ТетраСистемс, 2006. - 320с.

2. Алексеев В. Е. Вычислительная техника и программирование. Практикум по программированию: Практ. пособие. - М.: Высш.шк., 1991.-400с.

3. Абрамов В. Г., Трифонов H. П., Трифонова Г. H. Введение в язык паскаль. - М.: Наука, 1988. - 320 с.

4. Алкок Д. Язык Паскаль в иллюстрациях - М.: Мир, 1991. - 192 с.

5. Боон К. Паскаль для всех. - М.: Энергоатомиздат, 1988. - 190 с.

Приложение

Листинг программы

Programcurs;

Usescrt, graphABC;

typebook = record //Структуразаписей

aut:string; //Автор (Фамилия)

nazv:string; //Название книги

god:integer; //Годиздания

end;

var S: book; //Указатель на структуру записей

f : file of book; //Файл хранения записей

f1 : text; //Файл вывода книг с 2012 года

f2 : text; //Файл вывода списка книг данного автора

autor : string; //Переменная хранения автора(усл.зад.)

m : byte; //Переменная счетчик

i : byte; //Переменная счетчик

j : byte; //Переменная счетчик

men : byte; //Переменная выбора пунктов меню

mas : array [1..1000] of book;//Массив в котором происходит сортировка

begin

repeat //Начало цикла перехода в начало меню

repeat //Проверка на корректность выбора пункта меню

writeln(' *Выберите пункт меню*');

writeln('1: Добавление элементов');

writeln('2: Вывод книг и авторов с 2012');

writeln('3: Поиск книг заданного автора');

writeln('0: Выход из программы');

readln(men);

until (men < 3) or (men > 0);

if (men = 1) then begin //Пунктвыбораменю 1

clrscr;

writeln('Сколько записей вы хотите внести?');

readln(m);

assign(f, 'input.txt'); //Подключение файла ввода

reset(f); //Открываем файл на дозапись

seek(f, filesize(f)); //Устанавливаем курсор в конец файла

for i:=1 to m do begin

writeln('Введите фамилию автора: ');

readln(S.aut);

writeln('Введите название книги: ');

readln(S.nazv);

repeat //Проверка на корректный ввод года

writeln('Введите год издания: ');

readln(S.god);

until (S.god < 2014) and (S.god > 0);

write(f, S);

clrscr; //очисткаэкрана

end;

close(f); //Закрываемфайл

end;

if(men = 2 ) then begin //Пунктвыбораменю 2

clrscr;

assign(f, 'input.txt'); //Подключениефайлаввода

assign(f1, 'output1.txt'); //Подключениефайлавывода 1

reset(f); //Открываем файл ввода для чтения

rewrite(f1); //Открываем файл вывода 1 для перезаписи

i:=1;

while not eof(f) do with S do begin //*

read(f, S); //Переносимданные

if(S.god >= 2012) then begin //изфайла

mas[i] := S ; //в массив

i:=i+1; //для дальнейшей

end; //сортировки

end; //*

form:=1 toidobegin //Началосортировкипоалфавиту

for j:=1 to i-1 do begin

if(mas[j].aut > mas[j+1].aut) then begin

mas[999] := mas[j];

mas[j] := mas[j+1];

mas[j+1] := mas[999];

end;

end;

end;

{-------*Конецсортировки*-------}

clrscr;

writeln('----------------------------------------------------');

writeln('| Автор | Названиекниги | Годиздания |');

writeln('----------------------------------------------------');

writeln(f1,'----------------------------------------------------');

writeln(f1,'| Автор | Название книги | Год издания |');

writeln(f1,'----------------------------------------------------');

for m:=2 to i do begin //Выводданныхнаэкранивфайл

write( mas[m].aut:12,'|');

write( mas[m].nazv:20,'|');

writeln(mas[m].god:17,'|');

writeln('----------------------------------------------------');

write( f1,mas[m].aut:12, '|' );

write( f1,mas[m].nazv:20, '|');

writeln( f1,mas[m].god:17, '|');

writeln(f1,'----------------------------------------------------');

end;

close(f); //Закрываем файл ввода

close(f1); //Закрываем файл вывода 1

end;

if(men = 3) then begin //Пунктвыбораменю 3

assign(f, 'input.txt'); //Подключаемфайлввода

assign(f2, 'output2.txt'); //Подключаемфайлвывода 2

reset(f); //Открываем файл ввода на чтение

rewrite(f2);

clrscr;

writeln('ВведитеАвтора: ');

readln(autor);

writeln('Списоккниг ', autor ,':');

writeln('-----------------------------');

writeln(f2,'Списоккниг ', autor ,':');

writeln(f2,'-----------------------------');

while not eof(f) do with S do begin

read(f, S); //Считываем из файла

if(S.aut = autor) then begin //Сравниваем авторов на совпадение

writeln(S.nazv:28,'|');

writeln('-----------------------------');

writeln(f2, S.nazv:28,'|');

writeln(f2,'-----------------------------');

end;

end;

close(f); //Закрываем файл ввода

close(f2); //Закрываем файл вывода 2

end;

until (men = 0);

closewindow; exit; //Закрыть окно, выйти из программы

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.