Процедура корректировки записи

Но не всегда требуется удаление, иногда нужно всего лишь подкорректировать.

 

Листинг процедуры корректировки представлена в приложении 6.

Описание процедуры:

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

 

 

РЕЗУЛЬТАТЫ РАБОТЫ

Интерфейс пользователя

Разработанная мной справочная система «Футбольные команды», имеет доступный и понятный интерфейс, содержащий 7пунктов.

Рисунок 4.1 – Интерфейс пользователя

Как видно из рисунка 4.1Для пользователя предлагается выбрать соответствующие его запросам пункты меню:

1. Добавить команду

2. Изменить команду

3. Показать весь список команд

4. Сортировать команды

5. Удалить футбольную команду

6. Поиск команды

7. Выход

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

 

Рассмотрим 3 пункт меню: Просмотр базы данных (рисунок 4.2). Организация вывода записи на экран осуществляется в виде небольшой таблицы. Время просмотра неограниченно, пользователь сам может переходить к следующей награде нажатием клавиши Enter. После просмотра всех записей выводится главное меню интерфейса.

 

Рисунок 4.2 – Демонстрация базы данных

2 пункт меню: изменение команды (рисунок 4.3). После выбора данной опции, на экране появляется приглашение на изменение пользователем модели. После ввода номера модели, программа выводит соответствия (аналогично пункту 3, рисунок 4.2).рисунок(4.4) После просмотра которых, появляется запрос на изменение какой либо характеристики, затем непосредственно, запрос на заполнения поля (рис 4.5)

 

 


Рисунок 4.3 – изменение модели

Рисунок 4.4- запрос на изменение характеристики.

 

 

Рисунок 4.5- запрос на ввод значения в поле.

4 пункт меню: сортировка.

5 пункт меню: выводит запрос на ввод номера команды которую нужно удалить (рисунок 4.6)

Рисунок 4.6- запрос на удаление.

6 пункт меню: Поиск. Выводит запрос на название команды, которую надо найти (рисунок 4.7)

 

 


Рисунок 4.7 – поиск команды

7 пункт меню: Выход

 

 

Информация о комплектующих файлах

Размер файла программы «Курсовая.exe»составляет 83,8 кБ, размер файла базы данных «UEFA.txt» – 6,56 кБ. Общий размер папки с файлами –143кБ.

ЗАКЛЮЧЕНИЕ.

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

 

 

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

1. «Программирование на языке Паскаль» Г. Г. Рапаков, С. Ю. Ржеуцкая, БХВ-Петербург, 2004г.

2. «Турбо Паскаль 7.0» Е. Р. Алексеев, О. В. Чеснокова, Москва 2005г.

3. «Турбо Паскаль» С. А. Немнюгин, Питер 2000г.

 

 

Приложение 1

Процедура добавления

Procedure dobav;

Begin

assign(fbaz,'UEFA.txt');

reset(fbaz);

Seek(Fbaz,filesize(fbaz));

textcolor(15);

Writeln('Название команды ',filesize(fbaz)+1);

write('Название - ');

readln(Ff.Nazvanie);

Write('Год основания - ');

readln(Ff.God);

Write('Главный тренер команды - ');

readln(Ff.Trener);

Write('Стадион команды - ');

readln(Ff.Stadion);

Write('Вместительность стадиона - ');

readln(Ff.Mesto);

Write('Последний год победы в УЕФА - ');

readln(Ff.UEFA);

Write('Последний год выигрыша в стране - ');

readln(Ff.Strana);

Write(Fbaz,ff);

Close(Fbaz);

clrscr;

End;

 

Приложение 2

Процедура вывода

Procedure vivod;

var

k: integer;

tab: baz;

begin

k:=0;

assign(fbaz,'UEFA.txt');

reset(fbaz);

clrscr;

writeln('UEFA');

while not eof (fbaz) do

begin

k:=k+1;

read(fbaz,tab);

textcolor(10);

writeln('Команда № ',k);

writeln('Название команды: ',tab.Nazvanie);

writeln('Год основания команды: ',tab.God);

writeln('Главный тренер команды: ',tab.Trener);

writeln('Стадион: ',tab.Stadion);

writeln('Вместительность стадиона : ',tab.Mesto);

writeln('Последний год победы в UEFA: ',tab.UEFA);

writeln('Последний год выигрыша в стране: ',tab.Strana);

writeln('_______Enter - следующая команда_______');

readln;

end;

close(fbaz);

end;

Приложение 3

Процедура сортировки

Procedure Sort;

var st,a,b:baz;

i,j:byte;

begin

assign(fbaz,'UEFA.txt');

reset(fbaz);

for i:=0 to filesize(fbaz)-2 do

for j:=i+1 to filesize(fbaz)-1 do

begin

seek(fbaz,i);

read(fbaz,a);

seek(fbaz,j);

read(fbaz,b);

if a.Nazvanie>b.Nazvanie then

begin

st:=a;

a:=b;

b:=st;

seek(fbaz,i);

write(fbaz,a);

seek(fbaz,j);

write(fbaz,st);

end;

end;

close(fbaz);

end;

 

 

Приложение 4

Процедура поиска

Procedure Poisk;

var

a:baz;

fir:string;

i:integer;

begin

clrscr;

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

readln(fir);

assign(fbaz,'UEFA.txt');

reset(fbaz);

for i:=1 to filesize(fbaz) do

begin

read(fbaz,a);

if pos(upcase(fir),upcase(a.Nazvanie))<>0 then

begin

writeln('Название команды: ',a.Nazvanie);

writeln('Год основания команды: ',a.God);

writeln('Главный тренер:',a.trener);

writeln('Стадион: ',a.Stadion);

writeln('Вместительность стадиона: ',a.Mesto);

writeln('Последний год победы в UEFA: ',a.UEFA);

writeln('Последний год выигрыша в стране: ',a.Strana);

readln;

end

else

write('');

end;

close(fbaz);

end;

 

Приложение 5

Процедура удаления

Procedure ydal;

Begin

clrscr;

assign(f2,'delit.txt');

Reset(Fbaz);

rewrite(f2);

Seek(fbaz, 0);

while not eof(fbaz) do

begin

read(fbaz,ff);

if filepos(fbaz)<>nom+1 then write(f2,ff);

end;

Close(fbaz);

Close(f2);

erase(fbaz);

rename(f2,'UEFA.txt');

End;

 

 

Приложение 6

Procedure korrekt;

Begin

repeat

clrscr;

reset(fbaz);

seek(fbaz,nom);

read(fbaz,ff);

Write('Название команды - ');

writeln(Ff.Nazvanie);

Write('Год основания - ');

Writeln(Ff.God);

Write('Главный тренер команды - ');

Writeln(Ff.Trener);

Write('Стадион команды - ');

Writeln(Ff.Stadion);

Write('Вместительность стадиона - ');

Writeln(Ff.Mesto);

Write('Последний год победы в УЕФА - ');

writeln(Ff.UEFA);

Write('Последний год победы в стране - ');

Writeln(Ff.Strana);

Write('ESC-Выход');

Write('Номер команды - ',nom+1);

write('Какую характеристику вы бы хотели изменить?');

h:=readkey;

case h of

'1':begin write('1-Название команды - ');

Readln(Ff.Nazvanie);

end;

'2':begin Write('2-Год основания команды - ');

Readln(Ff.God);

end;

'3':begin Write('3-Главный тренер команды - ');

Readln(Ff.Trener);

end;

'4':begin Write('4-Стадион команды - ');

Readln(Ff.Stadion);

end;

'5':begin Write('5-Вместительность стадиона - ');

Readln(Ff.Mesto);

end;

'6':begin write('6-Последний год победы в УЕФА - ');

Readln(Ff.UEFA);

end;

'7':begin Write('7-Послений год выигрыша в стране - ');

Readln(Ff.Strana);

end;

#27: exit;

end;

clrscr;

seek(fbaz,nom);

write(fbaz,ff);

until h=#27;

close(fbaz);

clrscr;

End;

 

Приложение 7

Листинг программы:

Program FUTBOL;

uses crt;

type

el=^baz;

baz=record

Nazvanie:string[30];

God:string[30];

Trener:string[30];

Stadion:string[30];

Mesto:string[30];

UEFA:string[30];

Strana:string[30];

next:el;

end;

 

var

fbaz,f2:file of baz;

h:char;

nom:integer;

ff:baz;

 

Procedure dobav;

Begin

assign(fbaz,'UEFA.txt');

reset(fbaz);

Seek(Fbaz,filesize(fbaz));

textcolor(15);

Writeln('Название команды ',filesize(fbaz)+1);

write('Название - ');

readln(Ff.Nazvanie);

Write('Год основания - ');

readln(Ff.God);

Write('Главный тренер команды - ');

readln(Ff.Trener);

Write('Стадион команды - ');

readln(Ff.Stadion);

Write('Вместительность стадиона - ');

readln(Ff.Mesto);

Write('Последний год победы в УЕФА - ');

readln(Ff.UEFA);

Write('Последний год выигрыша в стране - ');

readln(Ff.Strana);

Write(Fbaz,ff);

Close(Fbaz);

clrscr;

End;

 

Procedure korrekt;

Begin

repeat

clrscr;

reset(fbaz);

seek(fbaz,nom);

read(fbaz,ff);

Write('Название команды - ');

writeln(Ff.Nazvanie);

Write('Год основания - ');

Writeln(Ff.God);

Write('Главный тренер команды - ');

Writeln(Ff.Trener);

Write('Стадион команды - ');

Writeln(Ff.Stadion);

Write('Вместительность стадиона - ');

Writeln(Ff.Mesto);

Write('Последний год победы в УЕФА - ');

writeln(Ff.UEFA);

Write('Последний год победы в стране - ');

Writeln(Ff.Strana);

Write('ESC-Выход');

Write('Номер команды - ',nom+1);

write('Какую характеристику вы бы хотели изменить?');

h:=readkey;

case h of

'1':begin write('1-Название команды - ');

Readln(Ff.Nazvanie);

end;

'2':begin Write('2-Год основания команды - ');

Readln(Ff.God);

end;

'3':begin Write('3-Главный тренер команды - ');

Readln(Ff.Trener);

end;

'4':begin Write('4-Стадион команды - ');

Readln(Ff.Stadion);

end;

'5':begin Write('5-Вместительность стадиона - ');

Readln(Ff.Mesto);

end;

'6':begin write('6-Последний год победы в УЕФА - ');

Readln(Ff.UEFA);

end;

'7':begin Write('7-Послений год выигрыша в стране - ');

Readln(Ff.Strana);

end;

#27: exit;

end;

clrscr;

seek(fbaz,nom);

write(fbaz,ff);

until h=#27;

close(fbaz);

clrscr;

End;

 

Procedure vivod;

var

k: integer;

tab: baz;

begin

k:=0;

assign(fbaz,'UEFA.txt');

reset(fbaz);

clrscr;

writeln('UEFA');

while not eof (fbaz) do

begin

k:=k+1;

read(fbaz,tab);

textcolor(10);

writeln('Команда № ',k);

writeln('Название команды: ',tab.Nazvanie);

writeln('Год основания команды: ',tab.God);

writeln('Главный тренер команды: ',tab.Trener);

writeln('Стадион: ',tab.Stadion);

writeln('Вместительность стадиона : ',tab.Mesto);

writeln('Последний год победы в UEFA: ',tab.UEFA);

writeln('Последний год выигрыша в стране: ',tab.Strana);

writeln('_______Enter - следующая команда_______');

readln;

end;

close(fbaz);

end;

 

Procedure Sort;

var st,a,b:baz;

i,j:byte;

begin

assign(fbaz,'UEFA.txt');

reset(fbaz);

for i:=0 to filesize(fbaz)-2 do

for j:=i+1 to filesize(fbaz)-1 do

begin

seek(fbaz,i);

read(fbaz,a);

seek(fbaz,j);

read(fbaz,b);

if a.Nazvanie>b.Nazvanie then

begin

st:=a;

a:=b;

b:=st;

seek(fbaz,i);

write(fbaz,a);

seek(fbaz,j);

write(fbaz,st);

end;

end;

close(fbaz);

end;

 

Procedure Poisk;

var

a:baz;

fir:string;

i:integer;

begin

clrscr;

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

readln(fir);

assign(fbaz,'UEFA.txt');

reset(fbaz);

for i:=1 to filesize(fbaz) do

begin

read(fbaz,a);

if pos(upcase(fir),upcase(a.Nazvanie))<>0 then

begin

writeln('Название команды: ',a.Nazvanie);

writeln('Год основания команды: ',a.God);

writeln('Главный тренер:',a.trener);

writeln('Стадион: ',a.Stadion);

writeln('Вместительность стадиона: ',a.Mesto);

writeln('Последний год победы в UEFA: ',a.UEFA);

writeln('Последний год выигрыша в стране: ',a.Strana);

readln;

end

else

write('');

end;

close(fbaz);

end;

 

Procedure ydal;

Begin

clrscr;

assign(f2,'delit.txt');

Reset(Fbaz);

rewrite(f2);

Seek(fbaz, 0);

while not eof(fbaz) do

begin

read(fbaz,ff);

if filepos(fbaz)<>nom+1 then write(f2,ff);

end;

Close(fbaz);

Close(f2);

erase(fbaz);

rename(f2,'UEFA.txt');

End;

 

begin

assign(fbaz,'UEFA.txt');

reset(fbaz);

repeat

clrscr;

textcolor(15);

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

reset(fbaz);

if IOresult<>0 then rewrite(fbaz);

close(fbaz);

writeln('1.Добавить команду');

writeln('2.Изменить команду' );

writeln('3.Показать весь список команд');

writeln('4.Сортировать список');

writeln('5.Удалить футбольную команду');

Writeln('6.Поиск команды');

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

writeln('Выберите номер пункта и нажмите Enter ');

h:=readkey;

case h of

'1': begin dobav;

end;

'2': begin

writeln;

write('Изменение в какую команду вы бы хотели внести? - ');

read(nom); nom:=nom-1;

korrekt;

end;

'3':begin vivod;

end;

'4':begin sort;end;

'5': begin

writeln;

write('Какую команду вы бы хотели удалить???=');

read(nom); nom:=nom-1;

ydal;

end;

'6':begin poisk;

end;

end;

until h='7';

end.