Объявление типа записи.
typeИмяТипа= recordИмяПоля1: ТипПоля1;ИмяПоля2: ТипПоля2; ИмяПоляN: ТипПоляN;end; Затем объявляются переменные соответствующего типа. varИмяПеременной: ИмяТипа;Значение полей записи могут использоваться в выражениях. Обращение к значению поля осуществляется с помощью имени переменной и имени поля, разделенных точкой. Такая комбинация называется составным именем. Записи могут быть элементами массивов. Отдельные поля записей тоже могут быть записями. За счет этого в Паскале можно создавать сложные структуры данных.
ЭТАПЫ СОЗДАНИЯ ПРОГРАММЫ ПОСТАНОВКА ЗАДАЧИ Создать базу данных расписание занятий на неделю учитывая, что каждый день имеет 4 пары. Реализовать редактирование записей (изменение, добавление, удаление). Исходные данные должны вводиться с проверкой на область допустимых значений. Предусмотреть вывод всей базы данных на экран. Вся обработка базы данных должна происходить путем выбора соответствующего пункта из меню. В программе должны быть предусмотрены соответствующие процедуры и функции, корректно обрабатывающие входные данные, ввод-вывод файлов базы данных. АНАЛИЗ ЗАДАЧИ На основе тщательного анализа условия поставленной задачи, а также уже существующих программ, предназначенных для решения задач, подобных той, что стояла передо мной, я создал представление о том, как мне правильно разработать программу для её решения, учитывая состав и состояние имевшихся в моём распоряжении технических и программных ресурсов и средств. Я создал логические и математические модели её решения, осознал, каким образом структурировать и типизировать имеющиеся и получаемые в результате работы данные. АНАЛИЗ ТРЕБОВАНИЙ ТРЕБОВАНИЯ К ФУНКЦИОНАЛЬНЫМ ХАРАКТЕРИСТИКАМ Для реализации поставленной задачи программа должна выполнять следующие функции: 1) Ввод данных пользователем с клавиатуры. Входные данные: Const неделя: array[1..6] of string=(понедельник, вторник, среда, четверг, пятница, суббота); Время: array[1..4] of string=(9.00-10.35;10.50-12.20; 13.00-14.35;14.50-16.20); Type dis=array[1..4] of string; Расписание =запись Название, номер. 2) Реализовать запросы: 1) Отображать расписание на неделю; 2) Отобразить расписание на один конкретный день; 3) В зависимости от дня недели и времени отобразить название занятия; 4) По названию предмета определить, в какие дни и какое время оно проводится. ТРЕБОВАНИЯ НАДЁЖНОСТИ Программа должна работать без прерываний по пользовательским и программным ошибкам, а именно учитывать возможные ошибки пользователя, способные возникнуть в процессе его работы с программой и выдавать реакции, способные минимизировать ущерб и неудобства от этих ошибок и помочь пользователю с их исправлением (например, на ввод несуществующего пункта меню программа ответит уведомлением о причине ошибки). ТРЕБОВАНИЯ К ПАРАМЕТРАМ И СОСТАВУ ТЕХНИЧЕСКИХ СРЕДСТВ Программа должна быть предназначена для использования на персональном компьютере типа AMD или IBM стандартной комплектации. ПРОЕКТИРОВАНИЕ На основе созданных мною логических и математических моделей я разработал алгоритм своей программы, после чего оформил его в виде блок-схемы, используя и учитывая общепринятые стандарты оформления алгоритмических блок-схем. Провёл ряд мысленных экспериментов и тестов, позволивших мне убедиться в правильности и адекватности разработанного мной алгоритма. В программе используются процедуры, вызываемые из основной программы в её начале (vvod) и при вводе соответствующей цифры из указаных в меню, выводимом основной программой. Процедура vvod вводит в цикле номера и названия предметов на неделю. Процедура izm вводит в цикле номера и названия предметов на день, введённый пользователем, используя для нахождения нужного дня условие. Процедура vizm вводит в цикле номер и название предмета на день и время, указанные пользователем, используя для нахождения нужного дня и времени условие. Процедура vivod выводит в цикле дни, время, соответствующие номера и названия предметов. Процедура vvivod выводит в цикле номера и названия предметов на введённые пользователем день и время с помощью условия. Процедура pvivod выводит на введённый пользователем предмет с помощью условия день и время его проведения. Процедура dvivod выводит в цикле номера и названия предметов на введённый пользователем день с помощью условия. Алгоритм программы представлен в приложении А. КОДИРОВАНИЕ Используя созданный мной алгоритм, я записал программу в программном коде, применив для этого язык программирования Паскаль, как применяемый в системе образования язык. Код программы представлен в приложении B. Краткая функциональная спецификация процедур: 1) vvod - производит ввод исходных данных (предметов) пользователем с клавиатуры на всю неделю; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; 2) izm - производит ввод исходных данных (предметов) пользователем с клавиатуры на один день; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; 3) vizm - производит ввод исходных данных (предметов) пользователем с клавиатуры на один день и указанное время; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; 4) ) vivod - производит вывод исходных данных (предметов) на экран на всю неделю; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; 5) vvivod - производит вывод исходных данных (предметов) на экран на один день и указанное время; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; 6) dvivod - производит вывод исходных данных (предметов) на экран на один день; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; 7) pvivod - производит вывод дня и времени на экран по введённому предмету; входных и выходных данных нет; не вызывает никаких процедур; вызывается из основной программы; Код программы представлен в приложении В. ТЕСТИРОВАНИЕ Я произвёл ряд экспериментальных и тестовых запусков написанной мною программы. На основе анализа полученных мною результатов, я вносил корректировки и исправления в текст программы до тех пор, пока она не стала полностью соответствовать нужным для решения поставленной передо мной задачи требованиям. Результаты тестирования представлены в приложении С. ЗАКЛЮЧЕНИЕ В процессе работы над курсовой работой я освоил методы использования таких составляющих языка программирования Паскаль, как процедуры и записи и научился основам грамотного проектирования и разработки программных средств, а также обращению с базами данных.
ПРИЛОЖЕНИЕ А
4: 2: 6: 1: 5: 7: 3:
нет да
ПРОЦЕДУРА VIVOD
ПРОЦЕДУРА VVIVOD
да нет
нет да
ПРОЦЕДУРА DVIVOD
да нет
ПРОЦЕДУРА PVIVOD
да нет
ПРОЦЕДУРА VVOD
ПРОЦЕДУРА IZM
да нет
ПРОЦЕДУРА VIZM
да нет
нет да
ПРИЛОЖЕНИЕ В ЛИСТИНГ ПРОГРАММЫ Program kursovayaZOPBOEVIS092; Uses CRT; Const Nedelya:array[1..6] of string=(‘понедельник’,’вторник’,’среда’,’четверг’,’пятница’,’суббота’); Vremya:array[1..4] of string=(’09.00-10.35’,’10.45-12.20’,’13.00-14.35’,’14.45-16.20’); Type Dis=array[1..4] of string; Raspisanie=record Nazvanie:dis; Nomer:dis; End; Var Para:array[1..6] of raspisanie; N,v,k,t,p:integer; D,c:string; Procedure izm; Begin Writeln(‘введите день (строго следите за правильностью написания слов)’); Readln(d); For n:=1 to 6 do If (d=nedelya[n]) then For v:=1 to 4 do Begin Writeln(vremya[v]); Writeln(‘введите номер и название (строго следите за правильностью написания слов)’); Readln(para[n].nomer[v]); Readln(para[n].nazvanie[v]); End; End; Procedure vizm; Begin Writeln(‘введите день (строго следите за правильностью написания слов)’); Readln(d); For n:=1 to 6 do If (d=nedelya[n]) then Begin Writeln(‘введите время, чч.мм-чч.мм’); Readln(c); For v:=1 to 4 do If (c=vremya[v]) then Begin Writeln(‘введите номер и название (строго следите за правильностью написания слов)’); Readln(para[n].nomer[v]); Readln(para[n].nazvanie[v]); End; End; End; Procedure vvod; Begin For n:=1 to 6 do Begin Writeln(nedelya[n]); For v:=1 to 4 do Begin Writeln(vremya[v]); Writeln(‘введите номер и название’); Readln(para[n].nomer[v]); Readln(para[n].nazvanie[v]); End; End; End; Procedure vivod; Begin For n:=1 to 6 do Begin Writeln(nedelya[n],’-‘); For v:=1 to 4 do Writeln(vremya[v],’-‘,para[n].nomer[v],’-‘,para[n].nazvanie[v]); End; End; Procedure vvivod; Begin writeln(‘введите день (строго следите за правильностью написания слов)’); Readln(d); For n:=1 to 6 do If (d=nedelya[n]) then Begin Writeln(‘введите время, чч.мм-чч.мм’); Readln(c); For v:=1 to 4 do If (c=vremya[v]) then Writeln(para[n].nomer[v],’-‘,para[n].nazvanie[v]); End; End; Procedure dvivod; Begin Writeln(‘введите день (строго следите за правильностью написания слов)’); Readln(d); For n:=1 to 6 do If (d=nedelya[n]) then For v:=1 to 4 do Writeln(vremya[v],’-‘,para[n].nomer[v],’-‘,para[n].nazvanie[v]); End; Procedure pvivod; Begin Writeln(‘введите предмет (строго соблюдайте правила верного написания слов)’); Readln(d); For n:=1 to 6 do For v:=1 to 4 do If (d=para[n].nazvanie[v]) then Writeln(nedelya[n],vremya[v]); End; Begin Vvod; Repeat Writeln(‘если хотите увидеть расписание на неделю, введите 1, на день – 2, на день и время – 3, когда проводится предмет - 4’); Writeln(‘хотите ввести новое расписание на неделю – 5, на день – 6, день и время – 7’); Readln(t); Case t of 1:vivod; 2:dvivod; 3:vvivod; 4:pvivod; 5:vvod; 6:izm; 7:vizm; Else Writeln(‘Вы ошиблись! Не вводите никаких символов кроме указанных в инструкциях!’); End; Writeln(‘выйти из программы (да(ввести 1))/(нет(ввести 2))?’); Readln(p) Until (p=1); End.
ПРИЛОЖЕНИЕ С
Популярное: Почему стероиды повышают давление?: Основных причин три... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (158)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |