Вывод и загрузка программы




В курсовой работе для разработки приложения я использовал среду PascalABC.Net. Чтоб эта программа работала, нужна дополнительная программа Microsoft NetFramework. Для работы с этой программой нужно выбрать в меню Файл ­­–> Новый. И потом после этого можете написать код в зависимости от поставленной задачи. Чтоб запустить написанный Вами код надо нажать на кнопку выполнить.

 

Описание выходных данных

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

Чтение записей из типизированного файла

Добавление записи в файл:

Удаление 4 записи

 

 

Поиск записи из файла

Вывод результатов:

1) Самый больной ребенок

 

 

2) Кто больше болеет – мальчики или девочки

3) Список детей, проживающих на заданной улице

Выход с приложения

 


Выводы

В процессе выполнения курсовой работы выполнены все задачи курсовой работы. Я больш совершеннее научился программировать процедуры(функции), выучил принципы работы с записями та работу с текстовыми и типизированными и нетипизированными файлами, большее внимание уделял отладки программы. Тестирование программы на контрольных примерах показало, что программа работает правильно и выдает правильные результаты.


Список использованной литературы

1) Турбо Паскаль 7.0. Для пользователя: Учебное пособие К.: BHV, 2000

2) Учебное пособие Турбо Паскаль. Начальный курс. М.: Нолидж, 1999

3) Фаронов В.В. Турбо Паскаль. Практика программирования: Учебное пособие М.: Нолидж, 2000

Интернет ресурсы:

https://progopedia.ru/language/pascal/ - Pascal Энциклопедия языков програмирования

https://itteach.ru/pascal/pascal-zapis-record - Паскаль - Запись(record)

https://www.cyberguru.ru/pascal/turbopascal-encyclopaedia.html - Энциклопедия Паскаль

 


Додаток A. Листинг программы

program Registratura;

 

Uses

crt;

Type

Tlocation = record

Ftown:string[15];

FStreat:string[20];

Fhouse:byte;

Fflat:byte;

end;

 

Type

TChild = record

FSurname: string[15];

Loc:Tlocation;

gender:char;

KDP:word;

end;

 

Var

Child: array [1..100] of TChild;

Zap: TChild;

f: file of TChild;

vibor: byte;

fami: string[30];

n, t: integer;

 

{----------------------------------------------------------------------------}

procedure vvod;

Var

i: integer;

Begin

clrscr;

Assign(f, 'rebenok.dat');

rewrite(f);

Write('Введите количество детей: ');

readln(n);

for i:= 1 to n do

Begin

writeln('Введите', ' ', i, ' ', 'ребенка ');

with Zap do

Begin

write('|Введите фамилию ребенка................|- '); readln(Fsurname);

write('|Введите город...........................|- '); readln(Loc.Ftown);

write('|Введите название улицы.................|- '); readln(Loc.FStreat);

write('|Введите номер дома......................|- '); readln(Loc.Fhouse);

write('|Введите номер квартиры..................|- '); readln(Loc.Fflat);

write('|Введите пол ребенка(м/ж)................|- '); readln(gender);

write('|Введите количество дней посещения...|- '); readln(KDP);

writeln;

 

write(f, Zap);

end;

end;

close(f);

end;

{---------------------------------------------------------------}

procedure chten;

Var

i: integer;

Begin

clrscr;

assign(f, 'rebenok.dat');

reset(f);

i:= 1;

while not (eof(f)) do

Begin

read(f, Child[i]);

writeln('______________________________________________________');

writeln(i,Child[i].FSurname:15,'|',Child[i].Loc.Ftown:8,'|',Child[i].Loc.FStreat:8,'|',Child[i].Loc.Fhouse:12,'|',Child[i].Loc.Fflat:10,'|',Child[i].gender:5,'|',Child[i].KDP:3,'|');

i:= i + 1;

 

end;

close(f);

 

n:= i - 1;

end;

{----------------------------------------------------------------}

procedure dobav;

Var

i: integer;

Begin

clrscr;

rewrite(f);

 

for i:= 1 to n do

write(f, Child[i]); //Записываем в массив записей

 

Writeln('Введите ', ' ', n + 1, ' ', 'ребенка');

with Zap do

Begin

write('|Введите фамилию ребенка................|- '); readln(Fsurname);

write('|Введите город...........................|- '); readln(Loc.Ftown);

write('|Введите название улицы.................|- '); readln(loc.FStreat);

write('|Введите номер дома......................|- '); readln(Loc.Fhouse);

write('|Введите номер квартиры..................|- '); readln(Loc.Fflat);

write('|Введите пол ребенка(м/ж)................|- '); readln(gender);

write('|Введите количество дней посещения...|- '); readln(KDP);

writeln;

write(f, Zap);

end;

close(f);

 

 

end;

{----------------------------------------------------------------}

 

procedure delete;

Var

i: integer;

Begin

clrscr;

i:= 1;

assign(f, 'rebenok.dat');

reset(f);

 

 

while not eof(f) do

Begin

read(f, Child[i]);

i:= i + 1

end;

 

close(f);

write('Выберите номер удаляемой записи которую вы хотите: ');

readln(n);

reset(f);

seek(f, filesize(f) - 1);{ Ставим указатель перед последним компонентом }

read(f, Child[i]);

seek(f, n - 1); { Ставим указатель перед удаляемым файлом }

write(f, Child[i]);{ Записываем конечный компонент вместо удаляемого }

{ убираем последний элемент файла }

seek(f, filesize(f) - 1);{ Ставим указатель перед последним компонентом }

 

truncate(f);{ Отсекаем последний компонент }

 

Writeln('Удаление прошло успешно!!!');

 

end;

{----------------------------------------------------------------}

procedure poisk;

 

Begin

clrscr;

 

write('Введите фамилию ребенка: ');

readln(fami);

reset(f);

t:= 0;

while not eof(f) do

Begin

read(f, Zap);

if Zap.FSurname = fami then {если фамилия совпала}

Begin

t:= 1;{фиксируем}

writeln('Найден ребенок с такой фамилией!!!');

Writeln('Выводим запись');

writeln(Zap.FSurname:10,'|',Zap.Loc.Ftown:8,'|',Zap.Loc.FStreat:8,'|',Zap.Loc.Fhouse:12,'|',Zap.Loc.Fflat:10,'|',Zap.gender:5,'|',Zap.KDP:15,'|');

end;

end;

if t = 0 then writeln('Такого ребенка нету!!!');{если нет совпадений}

close(f);

end;

 

{--------------------------------------------------------------}

procedure ill_child;

var i:integer;

min_d:integer;

maxid:integer;

Begin

ClrScr;

maxid:=1;

min_d:=365;

for i:=2 to n do

Begin

if (Child[i].KDP<min_d) then

Begin

maxid:=i;

min_d:=Child[i].KDP;

end;

end;

if min_d=365 then writeln('Детей нет')

Else

writeln('Самый больной ребенок: '+Child[maxid].FSurname);

 

end;

//---------------------------------------------------------

procedure disease;//процедура болезнь

var i,s_day_mal,s_day_dev:integer;

Begin

ClrScr;

s_day_mal:=0;

s_day_dev:=0;

 

for i:=1 to n do begin

if Child[i].gender='м' then

s_day_mal:=s_day_mal+Child[i].KDP

else s_day_dev:=s_day_dev+Child[i].KDP;

end;

 

if s_day_dev<s_day_mal then writeln('Девочки болеют больше');

if s_day_dev>s_day_mal then writeln('Мальчики болеют больше');

if s_day_dev=s_day_mal then writeln('Девочки и мальчики болеют одинаково');

end;

procedure streat;

var str:string[35];

i:integer;

Key:boolean;

Begin

ClrScr;

Write('Введите название улицы: ');

Readln(str);

for i:=1 to n do

if Pos(Child[i].Loc.FStreat,str)>0 then

Begin

writeln(Child[i].FSurname);

Key:=true;

end;

if Key=false then

Begin

writeln('Дети не проживают на этой улице');

end;

end;

Begin

ClrScr;

Repeat

Writeln('Выбор действия');

Writeln('1-Ввод новых данных');

Writeln('2-Чтение данных');

Writeln('3-Добавление записей');

Writeln('4-Удаление записи');

Writeln('5-Поиск информации');

Writeln('6-Самый больной ребенок');

Writeln('7-Кто больше болеет - мальчики или девочки');

writeln('8-Cписок детей, проживающих на заданной улице');

writeln('9-Выход');

readln(vibor);

case vibor of

1: vvod;

2: chten;

3: dobav;

4: delete;

5: poisk;

6: ill_child;

7:disease;

8:streat;

9: begin

writeln('Нажмите Enter для выхода');

Readln;

exit;

End

Else

Begin

writeln('Нажмите Enter и повторите ваш ввод');

Readln; end;

End

until (vibor=9);

 

 

end.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: