Структурная программа.
Первым этапом разработки программы стало написание текста структурной программы. Структурная программа- последовательность простых команд, операторов, реализующая ядро, то есть действие программы. Уже на этом этапе программа работает с текстовыми файлами. Для осуществления связей между отдельными частями программы, реализующими функции редактора, я использовал оператор безусловного перехода GoTo. Ниже приведена схема структурной программы тестового редактора, объясняющая соответствующий подход к программированию. Основной список операторов вырезан и заменен на <набор операторов>. Конечный вид программы будет приведен в главе “Объектное программирование” объектов. Program redactor; uses crt,printer; { подключение модулей } label l1,l2,l3,l4; {метки} Var a,f,f1,a2:string; {раздел описаний} b,k:char; c,u,y,a1,b1:text; d,e,i,j,p,z:integer; c1:boolean; Procedure oform; {процедура оформления начала программы} Begin <набор операторов> End; Begin oform; {оформление начала программы} <набор операторов> Writeln('Новый файл(New),Открыть файл(Open),Редактирование(Redact),'); {вывод альтернативных функций} Writeln('Просмотр результатов(Search),Выход(Any key)'); b:=readkey; {выбор нужной функции} case b of {оператор варианта} По нажатию соответствующей клавиши происходит выбор функции. 'n','в':Begin l1:<набор операторов> {выполнение функции} End; 'o','й':Begin l2:<набор операторов> {выполнение функции} End; 'r','Є':Begin l3:<набор операторов> {выполнение функции} End; 's','ы':Begin l4:<набор операторов> {выполнение функции} End; End; <набор опреаторов> Writeln('Новый файл(New),)Открыть файл(Open),Редактировать(Redact)'); {запрос о выборе перед выходом} Writeln('Просмотр результатов(Search),Выход(Any key)'); b:=readkey; {выбор варианта} <набор операторов> case b of {оператор варианта} 'n','т':GoTo l1; {ссылка на метку} 'o','щ':GoTo l2; 'r','к':GoTo l3; 's','ы':GoTo l4; End; Набор операторов безусловного перехода для возвращения к той или иной функции. <набор операторов> End. На экран выводится список возможных функций программы. Для выбора определенной функции необходимо нажать соответствующую клавишу (указана в скобках заглавной буквой). Затем оператор варианта запускает нужную функцию. Как видно, учтен случай непереключенного алфавита (буквы вводятся как латинские, так и русские). Перед выходом вновь выводится данный запрос (так как цикл неуместен) и в случае выбора определенной функции происходит ссылка на функцию.
Интерфейс структурной программы
Доработка программы. После отладки начальной программы потребовалось ввести дополнительные функции. Помимо стандартной функции создания и открытия готового теста, появились такие как редактирование тестов, подсчет результатов и выставление оценки, таймер, составление отчета, защита тестов от просмотра. Но самое главное- это усовершенствование интерфейса, введение оконной диалоговой системы. Рассмотрим перечисленные функции. Функция подсчета результата записана так: z:=p*100 div z; {расчет количества правильных ответов} Writeln('количество правильных ответов: ',p); Write('оценка '); {выставление оценки} If z>=90 Then Begin Writeln('5') Writeln(b1,’5’); End; else If z>=70 Then Begin Writeln('4') Writeln(b1,’4’); End; else If z>=40 Then Begin Writeln('3') Writeln(b1,’3’); End; else Begin Writeln('2') Writeln(b1,’2’); End; Readln; Write('Фамилия: '); {вписывание фамилии} Readln(a); d:=length(a); {выставление пробелов} Write(b1,a); {запись в файл} For i:=1 to 14-d do Write(b1,' '); Write('Имя: '); {вписывание имени, процедура повторяется} Readln(a); Write(b1,a); d:=length(a); For i:=1 to 11-d do Write(b1,' '); Write('Отчесчтво: '); {вписывание отчества, процедура повторяется } Readln(a); Write(b1,a); d:=length(a); For i:=1 to 17-d do Write(b1,' '); Write(b1,f); d:=length(f); For i:=1 to 8 do Write(b1,' '); GetDate(g1,g2,g3,g4); {проставление даты} Writeln(b1,g3,'.',g2,'.',g1); close(b1); Window(15,10,50,19); TextBackGround(black); clrscr; Программа рассчитывает количество правильных ответов по формуле, в соответствии с этим выставляет оценку, спрашивает ваши ФИО, записывает их в файл, проставляет название теста и дату его прохождения. При этом используется метод работы со строками: конкатенация(слияние) строк. Проблемой стало корректное вписывание в файл строки, так как количество букв может быть разным, поэтому программа проставляет пробелы в файл между данными, используя данные о длине строк фамилии, имени, отчества и вычитая их из постоянного числа
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему стероиды повышают давление?: Основных причин три... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (211)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |