Смекни!
smekni.com

Расписание занятий (стр. 3 из 5)

СТРУКТУРНЫЕ ОПЕРАТОРЫ

Структурные (сложные) операторы представляют собой конструкции, содержащие простые операторы. К этой группе операторов относятся: составной оператор, оператор условного перехода, операторы цикла, оператор выбора, оператор присоединения в записях.

Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точками с запятой, и ограниченную операторными скобками begin и and.

В созданной и представленной мной курсовой работе я использовал ещё один элемент, присущий языку программирования Паскаль - записи.

ЗАПИСИ

Распространенным случаем в программировании является необходимость описать атрибуты (характеристики) некоторого объекта, представляемого и обрабатываемого в программе. Таким объектом может быть человек, некоторый вычислительный комплекс и т.д. В этих и во всех подобных случаях атрибуты объекта представляются значениями различных типов.

Для записи комбинации данных разных типов в языке Паскаль применяется комбинированный тип данных запись. Запись представляет собой наиболее общий и гибкий структурированный тип данных, т.к. она может быть образована из неоднотипных компонентов, и в ней явным образом выражена связь между элементами данных, которые характеризуют реальный объект.

Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями записи. Каждое поле имеет свое имя.

Объявление типа записи.

typeИмяТипа= recordИмяПоля1: ТипПоля1;ИмяПоля2: ТипПоля2; ИмяПоляN: ТипПоляN;end;

Затем объявляются переменные соответствующего типа.

varИмяПеременной: ИмяТипа;

Значение полей записи могут использоваться в выражениях. Обращение к значению поля осуществляется с помощью имени переменной и имени поля, разделенных точкой. Такая комбинация называется составным именем.

Записи могут быть элементами массивов. Отдельные поля записей тоже могут быть записями. За счет этого в Паскале можно создавать сложные структуры данных.

ЭТАПЫ СОЗДАНИЯ ПРОГРАММЫ

ПОСТАНОВКА ЗАДАЧИ

Создать базу данных расписание занятий на неделю учитывая, что каждый день имеет 4 пары. Реализовать редактирование записей (изменение, добавление, удаление). Исходные данные должны вводиться с проверкой на область допустимых значений. Предусмотреть вывод всей базы данных на экран. Вся обработка базы данных должна происходить путем выбора соответствующего пункта из меню. В программе должны быть предусмотрены соответствующие процедуры и функции, корректно обрабатывающие входные данные, ввод-вывод файлов базы данных.

АНАЛИЗ ЗАДАЧИ

На основе тщательного анализа условия поставленной задачи, а также уже существующих программ, предназначенных для решения задач, подобных той, что стояла передо мной, я создал представление о том, как мне правильно разработать программу для её решения, учитывая состав и состояние имевшихся в моём распоряжении технических и программных ресурсов и средств. Я создал логические и математические модели её решения, осознал, каким образом структурировать и типизировать имеющиеся и получаемые в результате работы данные.

АНАЛИЗ ТРЕБОВАНИЙ

ТРЕБОВАНИЯ К ФУНКЦИОНАЛЬНЫМ ХАРАКТЕРИСТИКАМ

Для реализации поставленной задачи программа должна выполнять следующие функции:

1) Ввод данных пользователем с клавиатуры. Входные данные:

Const неделя: array[1..6] ofstring=(понедельник, вторник, среда, четверг, пятница, суббота);

Время: 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: