2013
Интерфейс программы должен быть понятен простому пользователю.
Поэтому необходимо учитывать следующие критерии:
наглядность интерфейса. Информация должна выводится на экран так, чтобы
легко было понять, где что написано и какую клавишу нажимать для использования
той или иной функции;
- простота интерфейса. Незнающий человек не должен тратить много времени
на освоение интерфейса программы;
- проверка ввода данных. Вводимые данные должны проверяться на
корректность.
Главное меню нашей программы будет выглядеть, как показано на рисунке
(рис. 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.
Похожие работы на - Разработка программы в среде Pascal
|