Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы 2 семестр / 10 лаба

.doc
Скачиваний:
15
Добавлен:
10.12.2013
Размер:
49.66 Кб
Скачать

Uses Crt;

Const

Name = 'Base.dat';

Type

b = Record

FIO: String[30];

Gruppa,data,zach: Byte;

Rmatem,rfizik,summ: Real;

End;

Var i: Byte;

Index: Byte;

f: Text;

Procedure Header(s:String);

Begin

ClrScr;

TextColor(12);

GotoXY(35,1); Write(s);

GotoXY(1,3);

TextColor(10);

End;

Procedure Max;

Begin

Reset(f);

Index:= 0;

While not EOF(f) Do Begin

ReadLn(f);

Inc(Index);

End;

if Index<>0 then Dec(Index,2);

End;

Procedure Viewing;

Var s: String[80];

Begin

Reset(f);

Header('Просмотр');

TextColor(15);

ReadLn(f,s); WriteLn(s);

TextColor(10);

While not EOF(f) Do Begin

ReadLn(f,s);

Writeln(s);

End;

ReadKey;

End;

Procedure Additing;

Var W: b;

Begin

Append(f);

Repeat

With W Do Begin

Write('ФИО: '); ReadLn(FIO);

Write('Группа: '); ReadLn(gruppa);

Write('Дата рождения: '); ReadLn(data);

Write('Зачетная книжка: '); ReadLn(zach);

Write('Рейтинг по математике: '); ReadLn(rmatem);

Write('Рейтинг по физике: '); ReadLn(rfizik);

summ:= rfizik + rmatem;

WriteLn(f,FIO:30,gruppa:3,data:5,

zach:7,rmatem:7:1,rfizik:10:2,summ:10:2);

End;

WriteLn;

WriteLn('Enter - меню');

WriteLn('Любая другая - продолжить');

Until ReadKey=#13;

End;

{

Procedure Editing;

Begin

Repeat

Header('Изменение');

Write('Введите номер карточки: ');

ReadLn(i);

if not (i in [1..Max]) then Begin

TextColor(15);

WriteLn('Неправильно введен номер карточки!');

WriteLn('Он должен быть: 1..',Max);

TextColor(10);

ReadKey;

Break;

End

Else With a[i] Do Begin

Write('ФИО: '); ReadLn(FIO);

Write('Группа: '); ReadLn(gruppa);

Write('Дата рождения: '); ReadLn(data);

Write(' Зачетная книжка: '); ReadLn(zach);

Write('Рейтинг по математике: '); ReadLn(rmatem);

Write('Рейтинг по физике: '); ReadLn(rfizik);

summ:= rfizik + rmatem;

End;

WriteLn;

WriteLn('Enter - меню');

WriteLn('Любая другая - продолжить');

Until ReadKey=#13;

End;

Procedure ClearArray;

Begin

For i:=1 to Max Do

With a[i] Do Begin

FIO:='Фамилия Имя Отчество';

gruppa:=0;

data:=0;

zach:=0;

rmatem:=0;

rfizik:=0;

summ:=0;

End;

End;

Procedure Deleting;

Begin

Repeat

Header('Удаление');

Writeln('Введите:');

Writeln('1 - чтобы удалилить одну запись');

Writeln('0 - чтобы удалилить все записи');

Case ReadKey of

'1': Begin

Write('Введите номер карточки: ');

ReadLn(i);

With a[i] Do Begin

FIO:='Фамилия Имя Отчество';

gruppa:=0;

data:=0;

zach:=0;

rmatem:=0;

rfizik:=0;

summ:=0;

End;

TextColor(13);

WriteLn('Данные удалены');

TextColor(10);

End;

'0': Begin

ClearArray;

TextColor(13);

WriteLn('Все данные удалены');

TextColor(10);

End;

End;

Writeln;

WriteLn('Enter - меню');

WriteLn('Любая другая - продолжить');

Until ReadKey=#13;

End;

Procedure Searching;

Var W: Worker;

C: Boolean;

i,j,l,p: Byte;

Begin

Repeat

ClrScr;

Header('Поиск');

WriteLn('1 - ФИО');

WriteLn('2 - Группа');

WriteLn('3 – Дата рождения');

WriteLn('4 – Зачетная книжка');

WriteLn('5 – Рейтинг по математике');

WriteLn('6 – Рейтинг по физике');

WriteLn('7 – Суммарный рейтинг');

WriteLn;

Case ReadKey of

'1': Begin

Write('ФИО: '); ReadLn(W.FIO);

l:= Length(W.FIO);

For i:=1 to Max Do Begin

p:= Pos(W.FIO[1],a[i].FIO);

if (p>0) and (p-1+l <= Length(a[i].FIO)) then Begin

c:= True;

For j:=2 to l Do

if a[i].FIO[p-1+j] <> W.FIO[j] then Begin

c:= False;

Break;

End;

if c then With a[i] Do

WriteLn(FIO:30,gruppa:7,data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End

Else Continue;

End;

End;

'2': Begin

Write('Группа: '); ReadLn(W.gruppa);

For i:= 1 to Max Do

if W.gruppa = a[i].gruppa then With a[i] Do

WriteLn(FIO:30,gruppa:7,data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End;

'3': Begin

Write('Дата рождения: '); ReadLn(W.Data);

For i:= 1 to Max Do

if W.Data = a[i].Data then With a[i] Do

WriteLn(FIO:30,gruppa:7,Data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End;

'4': Begin

Write('Зачетная книжка: '); ReadLn(W.zach);

For i:= 1 to Max Do

if W.zach = a[i].zach then With a[i] Do

WriteLn(FIO:30,gruppa:7,data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End;

'5': Begin

Write('Рейтинг по математике: '); ReadLn(W.rmatem);

For i:= 1 to Max Do

if W.rmatem = a[i].rmatem then With a[i] Do

WriteLn(FIO:30,gruppa:7,data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End;

'6': Begin

Write('Рейтинг по физике: '); ReadLn(W.rfizik);

For i:= 1 to Max Do

if W.rfizik = a[i].rfizik then With a[i] Do

WriteLn(FIO:30,gruppa:7,data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End;

'7': Begin

Write('Суммарный рейтинг: '); ReadLn(W.summ);

For i:= 1 to Max Do

if W.summ = a[i].summ then With a[i] Do

WriteLn(FIO:30,gruppa:7,data:10,

zach:7,rmatem:7:1,rfizik:8:2,summ:8:2);

End;

End;

WriteLn;

WriteLn('Enter - меню');

WriteLn('Любая другая - продолжить');

Until ReadKey=#13;

End;

}

Begin

Assign(f,Name);

Repeat

Header('Лабораторная 10');

WriteLn('1 - Просмотр');

WriteLn('2 - Добавить');

WriteLn('3 - Изменить');

WriteLn('4 - Удалить');

WriteLn('5 - Поиск');

WriteLn('6 - Сортировка');

WriteLn('Esc - Выход');

Case ReadKey of

'1': Viewing;

'2': Additing;

{'2': Editing;

'3': Deleting;

'4': Searching;}

#27: Begin

{Writing;}

Close(f);

Exit;

End;

End;

Until 1<>1

End.

Соседние файлы в папке лабы 2 семестр