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


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



2019-12-29 158 Обсуждений (0)
Объявление типа записи. 0.00 из 5.00 0 оценок




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 - производит вывод дня и времени на экран по введённому предмету;

входных и выходных данных нет;

не вызывает никаких процедур;

вызывается из основной программы;

Код программы представлен в приложении В.

ТЕСТИРОВАНИЕ

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

Результаты тестирования представлены в приложении С.

ЗАКЛЮЧЕНИЕ

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

 

ПРИЛОЖЕНИЕ А

Nedelya:array[1..6], vremya:array[1..4]
АЛГОРИТМ ЗАДАЧИ

 

 

 


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.

 

ПРИЛОЖЕНИЕ С



2019-12-29 158 Обсуждений (0)
Объявление типа записи. 0.00 из 5.00 0 оценок









Обсуждение в статье: Объявление типа записи.

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

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

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



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

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

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

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

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

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



(0.007 сек.)