Разработка программы в среде 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 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ