ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.09.2024
Просмотров: 19
Скачиваний: 0
СОДЕРЖАНИЕ
3.1 Опис структури даних та вимоги до них
3.2 Опис файлів та їх призначення
3.3 Опис процедур та функцій користувача
3.4 Опис процедур та функцій, що використовувалися у програмі
4 Інструкція для роботи з програмою
Додаток а (Обов’язковий) Лістинг основної програми
Висновки
Виконавши курсовий проект, я придбала навички роботи в середовищі програмування Turbo Pascal, ознайомилась з елементами мови: типи даних і графіка у Паскалі, а також створила програму використовуючи свої навички. Також підвела підсумки, що Turbo Pascal є гнучкою та алгоритмічною мовою програмування, і добре підходить як для початківця так і для досвідченого програміста. Широкий набір підпрограм та модульність дозволяє швидко та якісно створювати програмний продукт.
Література
1. Глинський Я.М., Анохін В.Є., Ряжська В.А. Паскаль. Turbo Pascal і Delphi. Навч.
посібн. 5-те доп. вид. – Львів: Деол, СПД Глинський, 2004. – 176 с.
2. Ковалюк Т.В. Основи програмування. – К.: Видавнича група BHV, 2005. – 384c.: іл.
3. Коффман Эллиот Б. Turbo Pascal. Практикум 5-е издание.: пер. с англ. М.:
Издательский дом "Вильямс", 2005. – 896 с.: ил.
4. Марченко А.И., Марченко Л.А. Програмирование в среде Turbo Pascal 7.0 / Марченко
А.И., Марченко Л.А.: Под ред. Таресенко В.П. – 9-е изд. – К.:Век+, СПб.: КОРОНА-
Век, 2007. – 464 с.: ил.
5. Семотюк В. Програмування в середовищі Турбо Паскаль. Львів: БаК, 2000. – 248 с.
Додаток а (Обов’язковий) Лістинг основної програми
{$R-}
uses Crt, Graphika, Navchannia, Finder;
type students=record
prizv: string[20];
name: string[15];
po_batkovi: string[20];
stat: char;
vik: integer;
kurs: 1..7;
end;
st=array[1..50] of students;
var n:integer;
s: st;
begin
Privetstvie;
Mywork;
assign(f,'students.dat');
while n<8 do
begin
textbackground(13);
clrscr;
textcolor(10);
gotoxy(20,8); writeln(' --------------------------------- ');
gotoxy(20,19); writeln(' -------------------------------');
gotoxy(55,9); writeln('|');
gotoxy(55,10); writeln('|');
gotoxy(55,11); writeln('|');
gotoxy(55,12); writeln('|');
gotoxy(55,13); writeln('|');
gotoxy(55,14); writeln('|');
gotoxy(55,15); writeln('|');
gotoxy(55,16); writeln('|');
gotoxy(55,17); writeln('|');
gotoxy(55,18); writeln('|');
gotoxy(20,9); writeln('|');
gotoxy(20,10);
writeln ('| 1..Vvod');
gotoxy(20,11);
writeln('| 2..Vyvod');
gotoxy(20,12);
writeln('| 3..Poisk kolichestva');
gotoxy(20,13);
writeln('| 4..Poisk naistarshego');
gotoxy(20,14);
writeln('| 5..Redaktirovanie');
gotoxy(20,15);
writeln('| 6..Udalenie');
gotoxy(20,16);
writeln('| 7..Vyhod');
gotoxy(20,17); writeln('|');
gotoxy(20,18); writeln('|');
gotoxy(28,18);
writeln('-->');
gotoxy(32,18);
repeat
readln(n);
until n in [1..7];
case n of
1: begin Vvod; end;
2: begin Vyvod; end;
3: begin Poisk1; end;
4: begin Poisk2; end;
5: begin Redaktirovanie; end;
6: begin Delete; end;
7: Konets;
end;
n:=n+1;
end;
end.
Додаток б (Обов’язковий) Лістинг модуля Navchannia
unit Navchannia;
interface
uses Crt;
type students=record
prizv: string;
name: string;
po_batkovi: string;
stat: char;
vik: integer;
kurs: 1..7;
end;
var f, f1: file of students;
l, i, n, m, w, find, a: integer;
mv,wv:real;
st: students;
u: string;
procedure Vvod;
procedure Vyvod;
procedure Redaktirovanie;
procedure Delete;
implementation
procedure Vvod;
begin
textbackground(5);
clrscr;
rewrite(f);
textcolor(8);
for i:=1 to 10 do
begin
write ('Vvedite prizvische studenta: ');
readln(st.prizv);
write ('Vvedite imia studenta: ');
readln(st.name);
write ('Vvedite po-batkovi studenta: ');
readln(st.po_batkovi);
repeat
write ('Vvsedite stat studenta m abo w: ');
readln(st.stat);
until (st.stat='m') or (st.stat='w');
write ('Vvedite vik studenta: ');
readln (st.vik);
write ('Vvedite kurs, na yakomu navchaetsa student: ');
readln(st.kurs);
write(f, st);
i:=i+1;
end;
close (f);
end;
procedure Vyvod;
begin
textbackground(3);
clrscr;
assign(f,'students.dat');
reset (f);
textcolor(1);
gotoxy(4,3);
writeln(' Students of facultet ');
writeln(' ----------------------------------------------------------------');
if filesize(f)=0 then
begin
textcolor (14);
writeln(' NO INFO! ');
textcolor (7); end
else
for i:=1 to filesize(f) do
begin
read(f,st);
gotoxy(2,wherey);
write(i);
gotoxy(5,wherey); write('|');
gotoxy(6,wherey); write (st.prizv);
gotoxy(17,wherey); write('|');
gotoxy(18,wherey); write (st.name);
gotoxy(29,wherey); write('|');
gotoxy(30,wherey); write(st.po_batkovi);
gotoxy(46,wherey); write('|');
gotoxy(48,wherey); write(st.stat);
gotoxy(51,wherey); write('|');
gotoxy(52,wherey); write(st.vik);
gotoxy(56,wherey); write('|');
gotoxy(57,wherey); write(st.kurs);
gotoxy(60,wherey); write('|');
writeln;
end;
writeln(' -------------------------------------------------------------');
close (f);
readkey;
end;
procedure Redaktirovanie;
begin
textbackground(8);
clrscr;
textcolor(14);
assign(f,'students.dat');
reset(f);
FileMode:=2;
while not (eof(f)) do
begin
for i:=1 to filesize(f) do
begin
read(f,st);
write(i);
gotoxy(3,wherey); write('|');
gotoxy(4,wherey); write (st.prizv);
gotoxy(15,wherey); write('|');
gotoxy(16,wherey); write (st.name);
gotoxy(27,wherey); write('|');
gotoxy(28,wherey); write(st.po_batkovi);
gotoxy(44,wherey); write('|');
gotoxy(45,wherey); write(st.stat);
gotoxy(49,wherey); write('|');
gotoxy(50,wherey); write(st.vik);
gotoxy(54,wherey); write('|');
gotoxy(55,wherey); write(st.kurs);
gotoxy(58,wherey); write('|');
writeln;
end; end;
close(f);
writeln;
writeln;
writeln('1-Redaktirovat suschestvuyschie zapisi');
writeln('2-Dobavit eshe');
writeln('3-Vyhod');
readln(l);
case l of
1:begin
clrscr;
reset(f);
writeln('Vvedite nomer zapisi');
readln(n);
if n>filesize(f) then write('Takoj zapisi net')
else
begin
seek(f,n-1);
write ('Vvedite prizvische studenta: ');
readln(st.prizv);
write ('Vvedite imia studenta: ');
readln(st.name);
write ('Vvedite po-batkovi studenta: ');
readln(st.po_batkovi);
repeat
write ('Vvsedite stat studenta m abo w: ');
readln(st.stat);
until (st.stat='m') or (st.stat='w');
write ('Vvedite vik studenta: ');
readln (st.vik);
write ('Vvedite kurs, na yakomu navchaetsa student: ');
readln(st.kurs);
write(f,st);
write('Zapis izmenena =)');
end;
readkey;
close(f);
end;
2: begin
clrscr;
reset(f);
seek(f, filesize(f));
i:=filesize(f);
u:='d';
while u='d' do
begin
clrscr;
write ('Vvedite prizvische studenta: ');
readln(st.prizv);
write ('Vvedite imia studenta: ');
readln(st.name);
write ('Vvedite po-batkovi studenta: ');
readln(st.po_batkovi);
repeat
write ('Vvedite stat studenta m abo w: ');
readln(st.stat);
until (st.stat='m') or (st.stat='w');
write ('Vvedite vik studenta: ');
readln (st.vik);
write ('Vvedite kurs, na yakomu navchaetsa student: ');
readln(st.kurs);
write(f,st);
i:=i+1;
write('Hotite prodolzhit (d/n)');
readln(u);
end;
close(f);
end;
3:
end;
end;
procedure Delete;
begin
clrscr;
assign(f,'students.dat');
reset(f);
while not (eof(f)) do
begin
for i:=1 to filesize(f) do
begin
read(f,st);
write(i);
gotoxy(3,wherey); write('|');
gotoxy(4,wherey); write (st.prizv);
gotoxy(15,wherey); write('|');
gotoxy(16,wherey); write (st.name);
gotoxy(27,wherey); write('|');
gotoxy(28,wherey); write(st.po_batkovi);
gotoxy(44,wherey); write('|');
gotoxy(45,wherey); write(st.stat);
gotoxy(49,wherey); write('|');
gotoxy(50,wherey); write(st.vik);
gotoxy(54,wherey); write('|');
gotoxy(55,wherey); write(st.kurs);
gotoxy(58,wherey); write('|');
writeln;
end; end;
close(f);
writeln;
writeln('1-Prodolzt proceduru udalenia');
writeln('2-Otmenit');
readln(a);
case a of
1: begin reset(f);
writeln('Vvedite nomer udaljaemoj zapisi'); readln(n);
if n>filesize(f) then write('Takoj zapisi net')
else
begin
assign(f1,'stud2.dat');
reset(f);
rewrite(f1);
for i:=1 to filesize(f) do
begin
read(f,st);
if filepos(f)<>n then write (f1,st);
end;
close(f1); close(f);
erase(f);
rename(f1,'students.dat');
write('Zapis udalena');
end;
readkey;
end;
2:
end;
end;
end.
Додаток в. (Обов’язковий) Лістинг модуля finder
unit Finder;
{$S-}
interface
uses Crt;
type students=record
prizv: string;
name: string;
po_batkovi: string;
stat: char;
vik: integer;
kurs: 1..7;
end;
var f: file of students;
n, m, w, find: integer;
mv,wv:real;
st:students;
u: string;
procedure Poisk1;
procedure Poisk2;
implementation
procedure Poisk1;
begin
textbackground(10);
clrscr;
textcolor(14);
gotoxy(25,10);
repeat
write('Vvedite nomer kursa: ');
readln(find);
until(find>0)or(find<7);
writeln;
clrscr;
assign(f,'students.dat');
reset (f);
writeln;
m:=0; w:=0;
while not(eof(f)) do
begin
read(f, st);
if find=st.kurs then
if st.stat='m' then
m:=m+1
else
w:=w+1;
end;
n:=m+w;
if n=0 then begin gotoxy(15,9); write('Na kursi nemae studentiv!'); readkey; exit; end
else if n>0 then
begin
mv:=100/n*m;
wv:=100/n*w;
gotoxy(10, 9);
writeln('Na ',find,' kurse navchaetsa', mv:4:2,'% hloptsiv i ', wv:4:2,'% divchat');
end;
readkey;
close(f);
end;
procedure Poisk2;
var q,i,j:integer;
m:students;
tmp:array[1..20]of students;
begin
textbackground(10);
clrscr;
textcolor(14);
gotoxy(10,1);
reset(f);
for q:=1 to filesize(f) do
begin
read(f,m);
tmp[q]:=m;
end;
for i:=1 to q-1 do
begin
for j:=1 to q do
if tmp[i].vik>tmp[j].vik then
begin
m:=tmp[i];
tmp[i]:=tmp[j];
tmp[j]:=m;
end;
end;
writeln('Spisok otsortirovanniy po vozrastu');
writeln('---------------------------------------------------------');
for i:=1 to q do
begin
write(i);
gotoxy(3,wherey); write('Э');
gotoxy(4,wherey); write (tmp[i].prizv);
gotoxy(15,wherey); write('Э');
gotoxy(16,wherey); write (tmp[i].name);
gotoxy(27,wherey); write('Э');
gotoxy(28,wherey); write(tmp[i].po_batkovi);
gotoxy(44,wherey); write('Э');
gotoxy(45,wherey); write(tmp[i].stat);
gotoxy(49,wherey); write('Э');
gotoxy(50,wherey); write(tmp[i].vik);
gotoxy(54,wherey); write('Э');
gotoxy(55,wherey); write(tmp[i].kurs);
gotoxy(58,wherey); write('Э');
writeln;
end;
writeln;
writeln('Naistarsiy studenty');
writeln(tmp[1].prizv);
write(tmp[1].vik);gotoxy(4,wherey);write('year');
readkey;
close (f);
end;
end.
Додаток Г.
Лістинг модуля MYGRAPH
unit Mygraph;
interface
procedure Mygraphinit;
implementation
uses CRT, Graph;
var gd, gm, errorcode: integer;
procedure Mygraphinit;
begin
gd:=detect;
initgraph(gd, gm, ' ');
errorcode:=graphresult;
if errorcode<>grok then
begin
writeln('Oshibka: ', grapherrormsg(errorcode));
writeln('Rabota zavershena');
halt(1);
end;
end;
end.
Додаток Д.