- •1 Постановка задачі
- •2 Алгоритм розробки програми
- •3 Практична реалізація
- •3.1 Опис структури даних та вимоги до них
- •3.2 Опис стандартних процедур та функцій, що використовувалися у програмі
- •3.3 Опис процедури та функцій користувача
- •3.4 Опис файлів та їх призначення
- •4 Інструкція для роботи з програмою
- •5 Приклад тестування та результату роботи програми
- •Висновок
- •Література
- •Додаток а (Обовязковий) Лістинг основної програми
- •Додакот б Лістинг модуля Vypuskniki
Література
1. Семотюк В. Програмування в середовищі Турбо Паскаль. Львів: БаК, 2000. – 248 с.
2. Ковалюк Т.В. Основи програмування. – К.: Видавнича группа BHV, 2005. – 384с.: іл.
3. Коффман Эллиот Б. Turbo Pascal. Практикум 5-е издание.: пер. с англ. М.: Издателский дом “Вильямс”, 2005. – 896 c.: ил.
4.
5. Епанешников А.М. Епанешников В.А. - Программирование в среде Turbo Pascal 7.0. Москва:Диалог-МИФ, 2000.- 368 с.
6. Марченко А.И. Марченко Л.А. – Программирование в среде Turbo Pascal 7.0. Киев:Век+,1999. – 460 с.
Додаток а (Обовязковий) Лістинг основної програми
uses crt,graph,vypuskniki;
label 0,1;
var n,drive,mode:integer;
begin
Drive:=Detect;
InitGraph(Drive,Mode,'');
if GraphResult<>grok then Halt(1);
SetBkColor(4);
SetTextStyle(1,0,4);
OutTextXY(190,180,'Курсова робота');
SetTextStyle(1,0,3);
OutTextXY(255,220,'Вариант-10');
SetTextStyle(1,0,2);
OutTextXY(480,280,'Макаренко О.В.');
readln;
Closegraph;
assign(f,'vypusk.dat');
1:clrscr;
gotoXY(32,8); writeln('Сделайте выбор');
gotoXY(30,9); writeln('1 – Ввод записи');
gotoXY(30,10); writeln('2 – Вывод записи');
gotoXY(30,11); writeln('3 – Добавить запись');
gotoXY(30,12); writeln('4 – Редактировать запись');
gotoXY(30,13); writeln('5 – Удалить запись');
gotoXY(30,14); writeln('6 – Поиск по среднему балу');
gotoXY(30,15); writeln('7 – Поиск выпускников учащихся в ВУЗе');
gotoXY(30,16); writeln('8 - Выход');
gotoXY(27,17); writeln('-->');
read(n);
case n of
1:begin Vvod; goto 1 end;
2:begin Vuvod; goto 1 end;
3:begin Dobavit; goto 1 end;
4:begin Redakt; goto 1 end;
5:begin Delete; goto 1 end;
6:begin Poisk; goto 1 end;
7:begin Poisk1; goto 1 end;
8:goto 0;
else goto 1 end;
0:end.
Додакот б Лістинг модуля Vypuskniki
Unit vypuskniki;
interface
uses Crt;
type school = record
fam,im,otch:string;
klass:string;
nom_atest:string;
sr_bal:real;
u4_zaved:string;
end;
var f: file of school;
i,v:integer;
z:school;
st:string;
n:byte;
n_z:byte;
s:real;
k:byte;
procedure Vvod;
procedure Vyvod;
procedure Dobavit;
procedure Redakt;
procedure Delete;
procedure Poisk;
procedure Poisk1;
implementation
procedure vvod;
begin
clrscr;
rewrite(f);
readln;
i:=1; st:='d';
while st='d' do
begin
clrscr;
writeln('Vvedite dannye ',i, ' vypusknika');
write('Vvedite familiju:'); readln(z.fam);
write('Vvedite imja : '); readln(z.im);
write('Vvedite otchestvo : '); readln(z.otch);
write('Vvedite klass:'); readln(z.klass);
write('Vvedite № atestata:'); readln(z.nom_atest); write('Vvedite sredniy bal:'); readln(z.sr_bal);
write('Vvedite vid uchebnogo zavedeniya (1-VNZ; 2-Kolleg; 3-Uchilishw; 4-ne u4itsya)');
readln(n);
case n of
1:z.u4_zaved:='VNZ';
2:z.u4_zaved:='Kolleg';
3:z.u4_zaved:='Uchilishe';
4:z.u4_zaved:='Ne u4itsya';
end;
write(f,z);
i:=i+1;
writeln ('Hotite prodolzhit (d/n)');readln(st);
end;
close(f);
readkey;
end;
Procedure Vyvod;
begin
clrscr;
reset(f);
if filesize(f)=0 then begin
textcolor(4);
writeln('‚ Ў §Ґ Ґв § ЇЁбҐ©');
textcolor(15); end else
begin
gotoXY(34,1); Write('Spisok vypusknikov');
gotoXY(1,2); write('Familiya');
gotoXY(12,2); write('Im9');
gotoXY(22,2); write('Ot4estvo');
gotoXY(36,2); write('Klass');
gotoXY(42,2); write('ь atest');
gotoXY(52,2); write('Sr bal');
gotoXY(59,2); write('Vid u/z');
writeln; i:=1;
while not (eof(f)) do
begin
read(f,z);
gotoXY(1,wherey); write(z.fam);
gotoXY(12,wherey); write(z.im);
gotoXY(22,wherey); write(z.otch);
gotoXY(36,wherey); write(z.klass);
gotoXY(42,wherey); write(z.nom_atest);
gotoXY(52,wherey); write(z.sr_bal:4:2);
gotoXY(59,wherey); write(z.u4_zaved);
i:=i+1;
writeln;
end;
end;
close(f);
readkey;
end;
Procedure Dobavit;
Begin
clrscr;
reset(f);
seek(f,filesize(f));
readln;
st:='d';
while st='d' do
begin
clrscr;
writeln('Vvedite dannye ',i, ' vypusknika');
write('Vvedite familiju:'); readln(z.fam);
write('Vvedite imja : '); readln(z.im);
write('Vvedite otchestvo : '); readln(z.otch);
write('Vvedite klass:'); readln(z.klass);
write('Vvedite ь atestata:'); readln(z.nom_atest);
write('Vvedite sredniy bal:'); readln(z.sr_bal);
write('Vvedite vid uchebnogo zavedeniya(1-VNZ; 2-Kolleg; 3-Uchilishw; 4-ne u4itsya :');
readln(n);
case n of
1:z.u4_zaved:='VNZ';
2:z.u4_zaved:='Kolleg';
3:z.u4_zaved:='Uchilishe';
4:z.u4_zaved:='Ne u4itsya';
end;
write(f,z);
writeln('Hotite prodolzhit (d/n)'); readln(st);
end;
close(f);
readkey;
end;
Procedure Redakt;
begin
clrscr;
reset(f);
if filesize(f)=0 then begin
textcolor(4);
writeln('V BD netu danoi zapisi');
textcolor(15); end else
begin
gotoXY(34,1); Write('Spisok vypusknikov');
gotoXY(1,2); write('Familiya');
gotoXY(12,2); write('Im9');
gotoXY(22,2); write('Ot4estvo');
gotoXY(34,2); write('Klass');
gotoXY(40,2); write('ь atest');
gotoXY(50,2); write('Sr bal');
gotoXY(57,2); write('Vid u/z');
writeln; i:=1;
while not (eof(f)) do
begin
read(f,z);
gotoXY(1,wherey); write(z.fam);
gotoXY(12,wherey); write(z.im);
gotoXY(22,wherey); write(z.otch);
gotoXY(34,wherey); write(z.klass);
gotoXY(40,wherey); write(z.nom_atest);
gotoXY(50,wherey); write(z.sr_bal:4:2);
gotoXY(57,wherey); write(z.u4_zaved);
i:=i+1;
writeln;
end;
end;
close(f);
reset(f);
writeln;
write('Nomer zapisi:'); read(n_z);
if n_z>filesize(f) then write('Danaya zapis otsutstvuet') else
begin
readln;
seek(f,n-1);
write('Vvedite familiju:'); readln(z.fam);
write('Vvedite imja : '); readln(z.im);
write('Vvedite otchestvo : '); readln(z.otch);
write('Vvedite klass:'); readln(z.klass);
write('Vvedite ь atestata:'); readln(z.nom_atest);
write('Vvedite sredniy bal:'); readln(z.sr_bal);
write('Vvedite vid uchebnogo zavedeniya (1-VNZ; 2-Kolleg; 3-Uchilishw; 4-ne u4itsya)');
readln(n);
case n of
1:z.u4_zaved:='VNZ';
2:z.u4_zaved:='Kolleg';
3:z.u4_zaved:='Uchilishe';
4:z.u4_zaved:='Ne u4itsya';
end;
write(f,z);
end;
close(f);
readkey;
end;
procedure delete;
begin
clrscr;
reset(f);
if filesize(f)=0 then begin
textcolor(4);
writeln('V BD netu danoi zapisi');
textcolor(15); end else
begin
gotoXY(34,1); Write('Spisok vypusknikov');
gotoXY(1,2); write('Familiya');
gotoXY(12,2); write('Im9');
gotoXY(22,2); write('Ot4estvo');
gotoXY(34,2); write('Klass');
gotoXY(40,2); write('ь atest');
gotoXY(50,2); write('Sr bal');
gotoXY(57,2); write('Vid u/z');
writeln; i:=1;
while not (eof(f)) do
begin
read(f,z);
gotoXY(1,wherey); write(z.fam);
gotoXY(12,wherey); write(z.im);
gotoXY(22,wherey); write(z.otch);
gotoXY(34,wherey); write(z.klass);
gotoXY(40,wherey); write(z.nom_atest);
gotoXY(50,wherey); write(z.sr_bal:4:2);
gotoXY(57,wherey); write(z.u4_zaved);
writeln;
i:=i+1;
end;
end;
close(f);
reset(f);
writeln;
write('Nomer zapisi:'); read(n_z);
if n_z>filesize(f) then write('Danaya zapis otsutstvuet') else
begin
seek(f,filesize(f)-1);
read(f,z);
seek(f,n_z-1);
write(f,z);
seek(f,filesize(f)-1);
truncate(f);
writeln('Zapis udalena');
end;
readkey;
end;
Procedure Poisk;
begin
clrscr;
reset(f);
write('Vvedite srednii bal:'); readln(s);
writeln; v:=0;
writeln('Spisok vypusknikov so srednim balom vyshe:',s:4:2);
for i:=1 to filesize(f) do
begin
read(f,z);
if s<=z.sr_bal then
begin
gotoXY(1,wherey); write(z.fam);
gotoXY(12,wherey); write(z.im);
gotoXY(22,wherey); write(z.otch);
gotoXY(34,wherey); write(z.klass);
gotoXY(40,wherey); write(z.nom_atest);
gotoXY(50,wherey); write(z.sr_bal:4:2);
gotoXY(57,wherey); write(z.u4_zaved);
writeln;
end else v:=v+1;
end;
if v=i then writeln('Takogo sr_bala ne mozjet byt');
readkey;
close(f);
end;
Procedure Poisk1;
begin
clrscr;
reset(f);
v:=0;;
for i:=1 to filesize(f) do
begin
read(f,z);
if z.u4_zaved='VNZ' then
begin
gotoXY(1,wherey); write(z.fam);
gotoXY(12,wherey); write(z.im);
gotoXY(22,wherey); write(z.otch);
gotoXY(34,wherey); write(z.klass);
gotoXY(40,wherey); write(z.nom_atest);
gotoXY(50,wherey); write(z.sr_bal:4:2);
gotoXY(57,wherey); write(z.u4_zaved);
writeln;
end else v:=v+1;
end;
if v=i then writeln('Vupusnikov net');
readkey;
close(f);
end;
end.