- •1 Постановка задачі
- •Алгоритм розробки програми
- •3 Практична реалізація
- •3.1 Опис структури даних та вимоги до них
- •3.3 Опис процедур та функцій користувача
- •3.4 Опис файлів та їх призначення
- •Інструкція для роботи з програмою
- •5 Приклад тестування та результати роботи програми
- •Висновки
- •Література
- •Додаток а (Обов’язковий) Лістинг основної програми
- •Додаток б (Обов’язковий) Лістинг модуля baza.
- •Додаток в (обов’язковий) Лістинг модуля gr.
Література
1. Ковалюк Т.В. Основи програмування. – К.: Видавнича група BHV, 2005. – 384c.: іл.
2. Глинський Я.М., Анохін В.Є., Ряжська В.А. Паскаль. Turbo Pascal і Delphi. Навч.
посібн. 5-те доп. вид. – Львів: Деол, СПД Глинський, 2004. – 176 с.
3. Семотюк В. Програмування в середовищі Турбо Паскаль. Львів: БаК, 2000. – 248 с.
4. Марченко А.И., Марченко Л.А. Програмирование в среде Turbo Pascal 7.0 / Марченко
5. Коффман Эллиот Б. Turbo Pascal. Практикум 5-е издание.: пер. с англ. М.:
Издательский дом "Вильямс", 2005. – 896 с.: ил.
Додаток а (Обов’язковий) Лістинг основної програми
program kursovaja;
uses crt,baza,gr;
label 0,1;
var p1,p2:integer;
begin
open1;
assign(f,'bolnica.dat');
1:clrscr;
gotoxy(32,8); writeln('Zdelaite vybor:');
gotoxy(30,9); writeln('1 - Vvod.');
gotoxy(30,10); writeln('2 - Vyvod.');
gotoxy(30,11); writeln('3 - Dobavlenie bolnogo.');
gotoxy(30,12); writeln('4 - Udalenie bolnogo.');
gotoxy(30,13); writeln('5 - Redaktirovanie.');
gotoxy(30,14); writeln('6 - Poisk.');
gotoxy(27,16); writeln('7 - Vyhod iz programmi.');
readln(p1);
case p1 of
1:begin Vvod; goto 1 end;
2:begin Vyvod; goto 1 end;
3:begin Dobavit; goto 1 end;
4:begin Udalenie; goto 1 end;
5:begin Redakt; goto 1 end;
6:begin
clrscr;
gotoxy(32,8); writeln('Vvedite vybor:');
gotoxy(30,9); writeln('1 - Dlya poiska po bolnomu!');
gotoxy(30,10); writeln('2 - Dlya kol-va bolnih u vracha!');
readln(p2);
case p2 of
1:begin Poisk1; goto 1 end;
2:begin Poisk2; goto 1 end;
else
goto 1;
end;
end;
7:begin
close1;
goto 0
end;
else
goto 1;
end;
0:end.
Додаток б (Обов’язковий) Лістинг модуля baza.
unit baza;
interface
uses crt;
type lik=record
n,s,diag,doctor:string;
day:1..30;
month:1..12;
year:2000..2012;
end;
var f,f1:file of lik;
i,q,k,x:integer;
st,fam,docfam:string;
z:lik;
procedure Vvod;
procedure Vyvod;
procedure Dobavit;
procedure Udalenie;
procedure Redakt;
procedure Poisk1;
procedure Poisk2;
implementation
procedure Vvod;
begin
clrscr;
rewrite(f);
i:=1; st:='d';
while st='d' do
begin
clrscr;
writeln('Vvedite dannie ',i,' bolnogo');
write('Vvedite familiju: '); readln(z.s);
write('Vvedite imia: '); readln(z.n);
write('Vvedite diagnoz: '); readln(z.diag);
write('Vvedite familiju lechashego vracha: '); readln(z.doctor);
writeln('Vvedite datu naveshenia vracha: ');
write('Den(1-30): '); readln(z.day);
write('Mesyac(1-12): '); readln(z.month);
write('God(2000-2012): '); readln(z.year);
write(f,z);
i:=i+1;
writeln('Hotite vvesti informaciu o drugom bolnom?(d/n)'); readln(st);
end;
end;
procedure Vyvod;
begin
clrscr;
reset(f);
k:=1;
writeln(' Spisok bolnih bolnici ');
if filesize(f)=0 then
begin
textcolor(4+16);
writeln('V baze otsutstvuut dannie!');
textcolor(7);
end
else
begin
for i:=1 to filesize(f) do
begin
read(f,z);
write(k,'.');
gotoxy(5,wherey); write(z.s);
gotoxy(15,wherey); write(z.n);
gotoxy(25,wherey); write(z.diag);
gotoxy(35, wherey); write(z.doctor);
gotoxy(46,wherey); write(z.day);
gotoxy(48,wherey); write('.',z.month);
gotoxy(51,wherey); write('.',z.year);
writeln;
k:=k+1;
end;
close(f);
readkey;
end;
end;
procedure Dobavit;
begin
clrscr;
reset(f);
seek(f,filesize(f));
i:=filesize(f);
st:='d';
i:=i+1;
while st='d' do
begin
clrscr;
writeln('Dobavit ',i,' bolnogo!');
write('Vvedite familiju: '); readln(z.s);
write('Vvedite imia: '); readln(z.n);
write('Vvedite diagnoz: '); readln(z.diag);
write('Vvedite familiju lechashego vracha: '); readln(z.doctor);
writeln('Vvedite datu naveshenia vracha: ');
write('Den(1-30): '); readln(z.day);
write('Mesyac(1-12): '); readln(z.month);
write('God(2000-2012): '); readln(z.year);
write(f,z);
i:=i+1;
writeln('Hotite vvesti informaciu o drugom bolnom?(d/n)'); readln(st);
end;
close(f);
end;
procedure Udalenie;
begin
clrscr;
reset(f);
k:=1;
while not (eof(f)) do
begin
read(f,z);
write(k,'.');
gotoxy(5,wherey); write(z.s);
gotoxy(15,wherey); write(z.n);
gotoxy(25,wherey); write(z.diag);
gotoxy(35, wherey); write(z.doctor);
gotoxy(46,wherey); write(z.day);
gotoxy(48,wherey); write('.',z.month);
gotoxy(51,wherey); write('.',z.year);
writeln;
k:=k+1;
end;
close(f);
writeln;
reset(f);
writeln('Zadaite nomer udalaemoy zapisi'); readln(k);
if k>filesize(f) then write('takoy zapisi net')
else
begin
assign(f1,'bolnica2.dat');
reset(f); rewrite(f1);
for i:=1 to filesize(f) do
begin
read(f,z);
if filepos(f)<>k then write(f1,z);
end;
close(f1); close(f);
erase(f); rename(f1,'bolnica.dat');
write('Zapis udalena');
end;
readkey;
end;
procedure Redakt;
begin
clrscr;
k:=1;
reset(f);
while not (eof(f)) do
begin
read(f,z);
write(k,'.');
gotoxy(5,wherey); write(z.s);
gotoxy(15,wherey); write(z.n);
gotoxy(25,wherey); write(z.diag);
gotoxy(35, wherey); write(z.doctor);
gotoxy(46,wherey); write(z.day);
gotoxy(48,wherey); write('.',z.month);
gotoxy(51,wherey); write('.',z.year);
writeln;
k:=k+1;
end;
close(f);
reset(f);
writeln('Vvedite nomer zapisi'); readln(k);
if k>filesize(f) then write('Takoy zapisi net!')
else
begin
seek(f,k-1);
writeln('Vvedite dannie ',k,' bolnogo');
write('Vvedite familiju: '); readln(z.s);
write('Vvedite imia: '); readln(z.n);
write('Vvedite diagnoz: '); readln(z.diag);
write('Vvedite familiju lechashego vracha: '); readln(z.doctor);
writeln('Vvedite datu naveshenia vracha: ');
write('Den(1-30): '); readln(z.day);
write('Mesyac(1-12): '); readln(z.month);
write('God(2000-2012): '); readln(z.year);
write(f,z);
k:=k+1;
write('Zapis izmenena!');
end;
readkey;
close(f);
end;
procedure Poisk1;
begin
clrscr;
write('Vvedite familiu bolnogo: '); readln(fam);
x:=0;
reset(f);
writeln;
while not eof(f) do
begin
read(f,z);
if fam=z.s then x:=x+1
end;
close(f);
reset(f);
if x=0 then writeln('Takogo bolnogo net!')
else
begin
writeln('Poisk bolnogo ',fam);
while not (eof(f)) do
begin
read(f,z);
if fam=z.s then
begin
write(z.s);
gotoxy(15,wherey); write(z.doctor);
gotoxy(27,wherey); write(z.diag);
gotoxy(42,wherey); write(z.day);
gotoxy(43,wherey); write('.',z.month);
gotoxy(45,wherey); write('.',z.year);
writeln;
end;
end;
end;
readkey;
close(f);
end;
procedure Poisk2;
begin
clrscr;
write('Vvedite familiu vracha: '); readln(docfam);
q:=0;
reset(f);
writeln;
while not eof(f) do
begin
read(f,z);
if docfam=z.doctor then q:=q+1
end;
close(f);
reset(f);
if q=0 then write('U takogo vracha netu bolnih v kartoteke')
else
writeln('U vracha ',docfam,' ',q,' bolnih');
readkey;
close(f);
end;
end.