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

 

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

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

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

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

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










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

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














Новополоцк 2013

СОДЕРЖАНИЕ


Введение

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

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

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

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

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

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

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

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

Литература

Приложение


ВВЕДЕНИЕ


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

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

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

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

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


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

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

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

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

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

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


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, т.е. к выполнению операторов тела цикла.

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

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

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

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

Формат:


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


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

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

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

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

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


while<условие>dobegin

{тело цикла}

end;


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

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

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

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

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

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

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

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

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

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

Формат:


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


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

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

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


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


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

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


fori:=1 tomdobegin('Введите фамилию автора: ');(S.aut);('Введите название книги: ');(S.nazv);//Проверка на корректный ввод года('Введите год издания: ');

readln(S.god);(S.god < 2014) and (S.god > 0);(f, S);; //очисткаэкрана;(f); //Закрываемфайл

end;


Рис.2

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

Рис. 3

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


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


while not eof(f) do with S do begin //*(f, S); //Преносим данные(S.god >= 2012) then begin //из файла[i] := S ; //в массив

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

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

end; //*

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

clrscr;

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

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

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

writeln(f1,'----------------------------------------------------');m:=2 to i do begin //Вывод данных на экран и в файл( mas[m].aut:12,'|');( mas[m].nazv:20,'|');(mas[m].god:17,'|');('----------------------------------------------------');( f1,mas[m].aut:12, '|' );( f1,mas[m].nazv:20, '|');( f1,mas[m].god:17, '|');(f1,'----------------------------------------------------');;(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с.

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

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

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

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


Приложение


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


Programcurs;

Usescrt, graphABC;

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

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

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

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

end;S: book; //Указатель на структуру записей: file of book; //Файл хранения записей: text; //Файл вывода книг с 2012 года: text; //Файл вывода списка книг данного автора: string; //Переменная хранения автора(усл.зад.): byte; //Переменная счетчик: byte; //Переменная счетчик: byte; //Переменная счетчик: byte; //Переменная выбора пунктов меню: array [1..1000] of book;//Массив в котором происходит сортировка//Начало цикла перехода в начало меню//Проверка на корректность выбора пункта меню(' *Выберите пункт меню*');('1: Добавление элементов');('2: Вывод книг и авторов с 2012');('3: Поиск книг заданного автора');('0: Выход из программы');

readln(men);(men < 3) or (men > 0);(men = 1) then begin //Пунктвыбораменю 1

clrscr;('Сколько записей вы хотите внести?');(m);(f, 'input.txt'); //Подключение файла ввода(f); //Открываем файл на дозапись(f, filesize(f)); //Устанавливаем курсор в конец файла

for i:=1 to m do begin

writeln('Введите фамилию автора: ');(S.aut);('Введите название книги: ');(S.nazv);//Проверка на корректный ввод года('Введите год издания: ');

readln(S.god);(S.god < 2014) and (S.god > 0);(f, S);; //очисткаэкрана;(f); //Закрываемфайл;(men = 2 ) then begin //Пунктвыбораменю 2;(f, 'input.txt'); //Подключениефайлаввода(f1, 'output1.txt'); //Подключениефайлавывода 1

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

i:=1;not eof(f) do with S do begin //*(f, S); //Переносимданные(S.god >= 2012) then begin //изфайла

mas[i] := S ; //в массив:=i+1; //для дальнейшей

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

end; //*

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

for j:=1 to i-1 do begin(mas[j].aut > mas[j+1].aut) then begin[999] := mas[j];[j] := mas[j+1];[j+1] := mas[999];;;;

{-------*Конецсортировки*-------};('----------------------------------------------------');('| Автор | Названиекниги | Годиздания |');

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

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

writeln(f1,'----------------------------------------------------');m:=2 to i do begin //Выводданныхнаэкранивфайл( mas[m].aut:12,'|');( mas[m].nazv:20,'|');(mas[m].god:17,'|');('----------------------------------------------------');( f1,mas[m].aut:12, '|' );( f1,mas[m].nazv:20, '|');( f1,mas[m].god:17, '|');(f1,'----------------------------------------------------');;

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

end;(men = 3) then begin //Пунктвыбораменю 3(f, 'input.txt'); //Подключаемфайлввода(f2, 'output2.txt'); //Подключаемфайлвывода 2

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

rewrite(f2);;('ВведитеАвтора: ');(autor);('Списоккниг ', autor ,':');('-----------------------------');(f2,'Списоккниг ', autor ,':');(f2,'-----------------------------');not eof(f) do with S do begin

read(f, S); //Считываем из файла(S.aut = autor) then begin //Сравниваем авторов на совпадение

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

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

end;(men = 0);; exit; //Закрыть окно, выйти из программы

end.


МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «ПОЛОЦКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Кафедра Технологий программиро

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ