Процедура корректировки записи
Но не всегда требуется удаление, иногда нужно всего лишь подкорректировать.
Листинг процедуры корректировки представлена в приложении 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.