Мегаобучалка Главная | О нас | Обратная связь


Структурная программа.



2020-02-04 184 Обсуждений (0)
Структурная программа. 0.00 из 5.00 0 оценок




Первым этапом разработки программы стало написание текста структурной программы. Структурная программа- последовательность простых команд, операторов, реализующая ядро, то есть действие программы. Уже на этом этапе программа работает с текстовыми файлами. Для осуществления связей между отдельными частями программы, реализующими функции редактора, я использовал оператор безусловного перехода 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;

Программа рассчитывает количество правильных ответов по формуле, в соответствии с этим выставляет оценку, спрашивает ваши ФИО, записывает их в файл, проставляет название теста и дату его прохождения. При этом используется метод работы со строками: конкатенация(слияние) строк. Проблемой стало корректное вписывание в файл строки, так как количество букв может быть разным, поэтому программа проставляет пробелы в файл между данными, используя данные о длине строк фамилии, имени, отчества и вычитая их из постоянного числа



2020-02-04 184 Обсуждений (0)
Структурная программа. 0.00 из 5.00 0 оценок









Обсуждение в статье: Структурная программа.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (184)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)