Студопедия — Пример 1. Больница ведет учет пациентов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 1. Больница ведет учет пациентов






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

Unit WorkLabRab7;

Interface

 

Type Pacient = Record

FIO: string[30];

year: 1900..2005;

diag: string[20];

date: record

den: 1..31;

mes: 1..12;

god: 1900..2005;

end;

kurs: integer;

end;

 

procedure Create(var x: mas; var l:integer); {регистрация пациентов}

procedure Open(var Name_File: string); {создание базы информации о пациентах}

procedure Add_Record(Name_File: string); {добавление информации о пациента}

procedure View(Name_File: string); {просмотр информации о пациентах}

procedure Del(Name_File: string); {удаление информации о пациентах}

procedure Search(Name_File: string); {поиск информации о пациентах}

 

Implementation

procedure Create(var Name_File: string);

var

f: file of Pacient;

A: Pacient;

i,n: integer;

begin

ClrScr;

Write('Введите имя файла:');

ReadLn(Name_File);

Assign(f,Name_File);

Rewrite(f);

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

ReadLn(n);

if n>0 then

begin

For i:=1 to n do

begin

with A do

begin

Writeln('Введите данные ',i,'-го пациента');

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

Readln(FIO);

write('Введите год рождения:');

Readln(year);

write('Введите диагноз:');

Readln(diag);

writeln('Введите дату поступления:');

write('день:');

Readln(date.den);

write('месяц:');

Readln(date.mes);

write('год:');

Readln(date.god);

write('Введите курс лечения:');

Readln(kurs);

end;

write(f,A)

end;;

Writeln('Создан файл из ',n,' записей');

end

else Writeln('Создан пустой файл');

Close(f);

ReadKey;

end;

procedure Open(var Name_File: string);

var

f: file of Pacient;

begin

ClrScr;

Write('Введите имя файла:');

ReadLn(Name_File);

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then

begin

writeln ('Нет файла с именем ', Name_File);

Name_File:='';

end

else

begin

writeln ('Файла с именем ', Name_File, ' открыт');

Close(f);

end;

ReadKey;

end;

procedure Add_Record(Name_File: string);

var

f: file of Pacient;

A: Pacient;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then

writeln ('Нет файла с именем ', Name_File)

else

begin

Seek(f,FileSize(f));

with A do

begin

Writeln('Введите данные ',FileSize(f)+1,'-го пациента');

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

Readln(FIO);

write('Введите год рождения:');

Readln(year);

write('Введите диагноз:');

Readln(diag);

writeln('Введите дату поступления:');

write('день:');

Readln(date.den);

write('месяц:');

Readln(date.mes);

write('год:');

Readln(date.god);

write('Введите курс лечения:');

Readln(kurs);

end;

write(f,A);

Writeln('Запись добавлена');

Close(f);

end;

ReadKey;

end;

procedure View(Name_File: string);

var

f: file of Pacient;

A: Pacient;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Содержимое файла: ', Name_File);

Writeln('Содержимое файла: ', Name_File);

Writeln('| Ф.И.О. |Год рожд.| Диагноз |Дата поступления | Курс лечения |');

Writeln('___________________________________________________

while not Eof(f) do

begin

Read(f,A);

with A do

writeln(FIO: 10, Year: 10,Diag:10, Date.den: 8,

Date.mes:3, date.god:5, kurs:13);

end;

Close(f);

end;

ReadKey;

end;

procedure Del(Name_File: string);

var

f,Temp: file of Pacient;

A: Pacient;

k,i: integer;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Файл ',Name_File, ' имеет ',FileSize(f), ' записей');

Write('Введите номер удаляемой записи №=');

ReadLn(k);

if (k<1) or (k>FileSize(f)) then Writeln('нет записи с №=',k)

else

begin

Assign(temp,'1.tmp');

Rewrite(temp);

For i:=1 to FileSize(f) do

begin

Read(f,A);

if i<>k then write(temp,A);

end;

Close(f); Close(temp);

Erase(f);

ReName(temp,Name_File);

Writeln('Запись удалена')

end;

end;

ReadKey;

end;

procedure Search(Name_File: string);

var

f: file of Pacient;

A: Pacient;

Fam: String[30];

Poisk: boolean;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Write('Введите фамилию пациента: ');

ReadLn(Fam);

Writeln('| Ф.И.О. |Год рожд.| Диагноз |Дата поступления| Курс лечения |’);

Writeln('___________________________________________________

Poisk:= False;

while not Eof(f) do

begin

Read(f,A);

with A do

if Fio = Fam then

begin

writeln(FIO: 10, Year: 10,Diag:10, Date.den: 8,

Date.mes:3, date.god:5, kurs:13);

Poisk:= true

end;

end;

Close(f);

If not Poisk then writeln('Нет пациентов с фамилией ',Fam);

end;

ReadKey;

end;

 

End.

 

 

Program Lab_Rab_7;

Uses Crt, WorkLabRab7;

var

Name_file: string;

Ch: char;

Begin

Name_File:='';

repeat

ClrScr;

Writeln('1-Создать файл');

Writeln('2-Открыть файл');

Writeln('3-Просмотр данных');

Writeln('4-Добавить данные');

Writeln('5-Удалить данные');

Writeln('6-Поиск данных ');

Writeln('7-Выход ');

Writeln;

Write('Выберите пункт меню ');

ReadLn(Ch);

Case Ch of

'1': Create(Name_File);

'2': Open(Name_File);

'3': if Name_File <> '' then View(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'4': if Name_File <> '' then Add_Record(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'5': if Name_File <> '' then Del(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'6': if Name_File <> '' then Search(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

end;

until Ch = '7';

End.

Задание 5.1 (6 баллов)

Задание 5.2 (15 баллов)

 







Дата добавления: 2015-08-12; просмотров: 383. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

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

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

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия