- •1 Постановка задачі Практичне завдання
- •Вимоги до програми
- •2 Алгоритм розробки програми
- •3 Практична реалізація
- •3.1 Опис структури даних та вимоги до них
- •3.2 Опис процедур та функцій, що використовувалися у програмі
- •3.3 Опис процедур та функцій користувача
- •3.4 Опис файлів та їх призначення
- •4 Інструкція для роботи з програмою
- •5 Приклад тестування та результату роботи програми
- •Висновки
- •Література
- •Додаток а (Обов’язковий) Лістинг основної програми
- •Додаток б (Обов’язковий) Лістинг модуля Dani
- •Додаток в (Обов’язковий) Лістинг модуля Graf
5 Приклад тестування та результату роботи програми
Титулка
Основна програма, вигляд меню:
Створення файла записів:
Виведення даних на екран:
Додавання даних у файл:
Редагування запису:
Видалення запису:
Загальну кількість пацієнтів, прибувши з інших міст;- список пацієнтів з діагнозом Х;
Кількість пацієнтів клініки з діагнозом Х, вік яких не перевищує Х.
Кінець
Висновки
Виконавши курсовий проект, я придбав навички роботи в середовищі програмування Turbo Pascal, ознайомився з елементами мови: типи даних і графіка у Паскалі, а також створив програму використовуючи свої навички. Також підвів підсумки, що Turbo Pascal є гнучкою та алгоритмічною мовою програмування, і добре підходить як для початківця так і для досвідченого програміста. Широкий набір підпрограм та модульність дозволяє швидко та якісно створювати програмний продукт..
Література
1.Паскальи Дельфи. Самоучитель, В. Попов, Серия "Самоучитель", СПб.: Издательство "Питер", 2003 г. - 544 с.
2. Долинский М.С. - Алгоритмизация и программирование на Turbo Pascal. От простых до олимпиадных задач. СПб.: Питер, 2000г - 235 с.
3. С.Н.Лукин - Turbo Pascal 7.0. Самоучитель, Диалог – МИФИ, 1999- 211 с.
4.Turbo Pascal 7.0.Начальный курс Фаронов В.В. М.: Издательство «ОМД Групп», 2003 г. -616 с.
5. Потопахин В.В. - Turbo Pascal: решение сложных задач, БХВ-Петербург, 2006 -208с. , ил.
Додаток а (Обов’язковий) Лістинг основної програми
program pacientu;
uses crt,graph,dani,graf;
label beg,exit;
var menu:integer;
begin start;
beg:assign(f, 'pac.dat');
clrscr;
textcolor(15);
gotoXY(11,4); writeln('Zdelayte vybor');
textcolor(green);
gotoXY(10,6); writeln('1 - Vvedennya zapisiv');
textcolor(red);
gotoXY(40,8); writeln('2 - Vyvedennya zapisiv');
textcolor(green);
gotoXY(11,10); writeln('3 - Dobavit`');
textcolor(red);
gotoXY(41,12); writeln('4 - Redaktuvaty');
textcolor(green);
gotoXY(12,14); writeln('5 - Vydalyty');
textcolor(red);
gotoXY(42,16); writeln('6 - Poshuk');
textcolor(green);
gotoXY(13,18); writeln('7 - Poshuk 2');
textcolor(red);
gotoxy(43,20); writeln('8 - Vyhid z programy');
textcolor(15);
gotoXY(27,22); write('-->');
readln(menu);
case menu of
1:begin Vvod; goto beg end;
2:begin Vvyvod; goto beg end;
3:begin Dobavit; goto beg end;
4:begin Redakt; goto beg end;
5:begin Delete; goto beg end;
6:begin Poisk; goto beg end;
7:begin Poisk2; goto beg end;
8:goto exit
else
begin
textbackground(8);
clrscr;
textcolor(red);
gotoxy(38,12); write('Oshibka!');
readln; goto beg;
end; end;
exit: final;end.
Додаток б (Обов’язковий) Лістинг модуля Dani
Unit dani;
interface
uses crt;
type zap=record
vik: byte;
diagnoz :string;
stat :char;
gorod :string[20];
pri: string[20];
end;
var f,f1:file of zap;
i:integer;
n_diagn:string;
st:char;
z:zap;
v_vik: byte;
k:real;
z_nvik:zap;
n:longint;
procedure Vvod;
procedure Vvyvod;
procedure Dobavit;
procedure Delete;
procedure Redakt;
procedure Poisk;
procedure Poisk2;
implementation
procedure Vvod;
begin
clrscr;
rewrite(f);
i:=1; st:='d';
while st='d' do
begin
textcolor(white);
clrscr;
writeln('Vvedit`', i , 'pacienta');
write('Vvedit` familiy: '); readln(z.pri);
write('Vvedit` vik: '); readln(z.vik);
write('Vvedit` stat: '); readln(z.stat);
write('Vvedit` gorod: '); readln(z.gorod);
write('Vvedit` diagnoz: '); readln(z.diagnoz);
write(f,z);
i:=i+1;
writeln ('Hochetete prodovzhit` (d/n)'); readln(st);
end;
close(f);
end;
procedure Vvyvod;
begin
clrscr;
assign(f,'pac.dat');
reset(f);
if filesize(f)=0 then
begin
gotoxy(20,10);textcolor(4+16);
write('SpUsok pustyj! Zapovnit fail!');
end
else
begin
write('#');
gotoxy(3,1);
write ('Prizvyshe');
gotoxy (21,1);
write('Vik');
gotoxy(29,1);
write('Stat`');
gotoxy(42,1);
write ('Gorod');
gotoxy(51,1);
write('Diagnoz');
for i:=1 to filesize(f) do
begin
if (i)mod(2)=0 then textcolor(red) else textcolor(green);
read(f,z);
gotoxy(1,i+1);
write(i);
gotoxy(3,i+1); write(z.pri);
gotoxy(22,i+1); write(z.vik);
gotoxy(30,i+1); write(z.stat);
gotoxy(42,i+1); write(z.gorod);
gotoxy(52,i+1); write(z.diagnoz);
writeln;
end;
textcolor(white);
write('Dlya perehody v menu nazhmit` Enter');
end;
readln;
close(f);
readkey;
end;
procedure Dobavit;
begin
clrscr;
assign(f,'pac.dat');
reset(f);
seek(f,filesize(f));
i:=filesize(f);
st:='d';
textcolor(white);
while st='d' do
begin
clrscr;
writeln('Vvedit', i , 'pacienta');
write('Vvedit familiy: '); readln(z.pri);
write('Vvedit vik: '); readln(z.vik);
write('Vvedit stat: '); readln(z.stat);
write('Vvedit gorod: '); readln(z.gorod);
write('Vvedit diagnoz: '); readln(z.diagnoz);
write(f, z);
i:=i+1;
writeln ('Hochete prodovzhit` (d/n)'); readln(st);
end;
close(f);
end;
procedure Delete;
begin
assign(f,'pac.dat');
clrscr;
reset(f);
if filesize(f)=0 then
begin
gotoxy(20,10);textcolor(4+16);
write('SpUsok pustyj! Zapovnit fail!');
end else
begin
write('#');
gotoxy(3,1);
write ('Prizvyshe');
gotoxy (21,1);
write('Vik');
gotoxy(29,1);
write('Stat`');
gotoxy(42,1);
write ('Gorod');
gotoxy(51,1);
write('Diagnoz');
for i:=1 to filesize(f) do
begin
if (i)mod(2)=0 then textcolor(red) else textcolor(green);
read(f,z);
gotoxy(1,i+1);
write(i);
gotoxy(3,i+1); write(z.pri);
gotoxy(22,i+1); write(z.vik);
gotoxy(30,i+1); write(z.stat);
gotoxy(42,i+1); write(z.gorod);
gotoxy(52,i+1); write(z.diagnoz);
writeln;
end;
textcolor(white);
close(f);
reset(f);
writeln('Ukazhite nomer udalyaemoi zapisi: ');
readln(n);
if filesize(f)<n then
begin
gotoxy(20,10);
write('Oshibka!!');
end else
begin
assign(f1,'PACIENTU2.DAT');
reset(f);
rewrite(f1);
for i:=1 to filesize(f) do
begin
read(f, z);
if filepos(f)<>n then write (f1,z);
end;
close(f1);close(f);
erase(f); rename (f1,'pac.dat');
gotoxy(20,wherey);
write('Zapis udalena');
textcolor(white);
end;
end;
readln;
end;
procedure Redakt;
begin
clrscr;
textcolor(white);
assign(f,'pac.dat');
reset(f);
if filesize(f)=0 then
begin
gotoxy(20,10);
write('SpUsok pust! Zapovnit fail!');
end
else
write('#');
gotoxy(3,1);
write ('Prizvyshe');gotoxy (21,1);
write('Vik');gotoxy(29,1);
write('Stat`');
gotoxy(42,1);
write ('Gorod');
gotoxy(51,1);
write('Diagnoz');
for i:=1 to filesize(f) do
begin
if (i)mod(2)=0 then textcolor(red) else textcolor(green);
read(f,z);
gotoxy(1,i+1);
write(i);
gotoxy(3,i+1); write(z.pri);
gotoxy(22,i+1); write(z.vik);
gotoxy(30,i+1); write(z.stat);
gotoxy(42,i+1); write(z.gorod);
gotoxy(52,i+1); write(z.diagnoz);
writeln; end;
textcolor(white);
close(f);
reset(f);
write('Vvedit` nomer zapysu dlya zminy ');
readln(n);
if n>filesize(f) then
begin
textbackground(8);
clrscr;
gotoxy(38,12); write('Oshibka!');
end else
begin
if n=i then
read(f,z);
seek(f,n-1);
writeln('Vvedit` potribni danni');
gotoxy(20,wherey);
write('Vvedit` familiy: '); readln(z.pri);
gotoxy(20,wherey);
write('Vvedit` vik: '); readln(z.vik);
gotoxy(20,wherey);
write('Vvedit` stat: '); readln(z.stat);
gotoxy(20,wherey);
write('Vvedit` gorod: '); readln(z.gorod);
gotoxy(20,wherey);
write('Vvedit` diagnoz: '); readln(z.diagnoz);
write(f, z);write('Zminy zberegeni!');
end;
readln;
close(f);
end;
procedure Poisk;
begin
clrscr;
assign(f,'pac.dat');
write('Vvedit` diagnoz: '); readln(n_diagn);
k:=0; reset(f);
writeln;
while not (eof(f)) do
begin
read(f, z);
if n_diagn=z.diagnoz then k:=k+1
end;
close(f); reset(f);
if k=0 then begin write('Takogo diagnozu nema'); readkey end
else
begin
clrscr;
write('#');
gotoxy(3,1);
write ('Prizvyshe');
gotoxy (21,1);
write('Vik');
gotoxy(29,1);
write('Stat`');
gotoxy(42,1);
write ('Gorod');
gotoxy(51,1);
write('Diagnoz');
writeln;
end ; begin
while not (eof(f)) do
begin
read(f, z);
if n_diagn=z.diagnoz
then begin
if (i)mod(2)=0 then textcolor(red) else textcolor(green);
gotoxy(1,wherey);
write(i);
gotoxy(3,wherey); write(z.pri);
gotoxy(22,wherey); write(z.vik);
gotoxy(30,wherey); write(z.stat);
gotoxy(42,wherey); write(z.gorod);
gotoxy(52,wherey); write(z.diagnoz);
writeln;
end; end;
close(f);
end;
reset(f);
i:=0;
while not (eof(f)) do
begin
read(f,z);
if (z.gorod<>'Sumy') then i:=i+1;
end;
writeln('Kilkist` nemiscevyh hvoryh =',i);
readkey ;
textcolor(white);
end;
procedure Poisk2;
begin
clrscr;
assign(f,'pac.dat');
write('Vvedit` diagnoz: '); readln(n_diagn);
writeln('Vvedit` vik: '); readln(v_vik);
i:=1; k:=0;
reset(f);
writeln;
clrscr;while not (eof(f)) do
begin
read(f, z);
if n_diagn=z.diagnoz then
begin
write('#');
gotoxy(3,1);
write ('Prizvyshe');
gotoxy (21,1);
write('Vik');
gotoxy(29,1);
write('Stat`');
gotoxy(42,1);
write ('Gorod');
gotoxy(51,1);
write('Diagnoz');
writeln;
if (v_vik=z.vik) then
begin
gotoxy(1,wherey);
write(i);
gotoxy(3,wherey); write(z.pri);
gotoxy(22,wherey); write(z.vik);
gotoxy(30,wherey); write(z.stat);
gotoxy(42,wherey); write(z.gorod);
gotoxy(52,wherey); write(z.diagnoz);
writeln;
i:=i+1;
end; end else
k:=1;
end;
if (k=1) and (i=1) then begin clrscr; write('nety takogo!'); end;
close(f);
readkey ;
textcolor(white);
end;
end.