St.pas – файл з основною програмою.
St.exe – виконуваний файл програми.
Styd.tpu – модуль «стандартних» функцій.
Sti.tpu – модуль функцій пошуку.
grapf.tpu – графічний модуль.
stipendiya.dan – файл, що містить відомості про здачу студентами екзаменів і зарахування на стипендію.
Для початку роботи запустіть файл St.exe, після чого з’явитися заставка програми із зазначенням автора роботи і назви роботи. Для продовження натисніть Enter.
На екрані з’явиться меню вибору. Для виконання функцій, натисніть клавішу відповідно до бажаного пункту меню і натисніть Enter.
Пункти меню:
Занесення даних до бази. Стара база видаляється. Введіть необхідні дані до бази та слідуйте вказівкам програми. Вводити можна не один запис, для цього підтверджуйте продовження натисненням «d» після кожної нового введеного запису, в протилежному випадку – натисніть будь-яку клавішу.
Вивід бази записів.
Пошук за групою. Введіть потрібну групу. Якщо вона є в базі, то програма виведе її на екран разом із інформацією про неї. Якщо немає – то з’явиться пуста таблиця.
Додавання запису до бази. Аналог введення із пункту 1, але при цьому база залишається, а новий запис додається в кінець списку. Тут також має місце додавання декількох записів.
Видалення запису. Введіть необхідний номер запису, який потрібно видалити. Після цього запис буде знищено.
Редагування запису, який обрав користувач. Введіть необхідний номер запису та відредагуйте його. Дані будуть перезаписані.
Вивід студентів, які мають лише 5 і не активні у громадській діяльності.
Вивід бази записів, відсортованої по спаданню середнього балу.
Вивід студентів, які мають лише 3 і активні у громадській діяльності.
10) Вихід із програми.
Початкове
вікно з інформацією про розробника.
Натисніть Enter для
продовження.

Основне меню програми, яке також є слугує для виведення даних.
Введення даних
Безпосередньо введення даних.

Додавання записів.

Виведення
записів.
Діалогове
вікно редагування запису.

Діалогове вікно видалення запису.

Результати пошуку за групою 210-ік.

Середній бал у порядку спадання.

Список відмінників не активних у громадській діяльності.

Заставка-повідомлення
про завершення роботи.

Під час розробки курсового проекту я згадав та закріпив знання з програмування в середовищі 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 с.
program st;
uses crt,styd,graf,poisk;
label 0,1;
Var p:integer;
begin
assign(f,'stipendiya.dat');
vstyp;
1:
textbackground(blue);
clrscr;
textcolor(green);
gotoXY(32,8); writeln('Zdelayte vybor');
textcolor(white);
gotoXY(30,9); writeln('1 - Vvod zapisej');
gotoXY(30,10); writeln('2 - Vyvod zapisej');
gotoXY(30,11); writeln('3 - Stipendiya');
gotoXY(30,12); writeln('4 - Dobavit zapis');
gotoXY(30,13); writeln('5 - Ydalit zapis');
gotoXY(30,14); writeln('6 - Redaktirovat zapis');
gotoXY(30,15); writeln('7 - Spusok vidminnukiv');
gotoXY(30,16); writeln('8 - Seredniy bal');
gotoXY(30,17); writeln('9 - Spusok trie4nukiv aktuvnuh y gd');
gotoXY(30,18); writeln('10 - Vyhod iz programy');
gotoXY(27,19); write('-->');
readln(p);
case p of
1:begin Vvod; goto 1 end;
2:begin
Vyvod; goto 1 end;
3:begin Sti; goto 1 end;
4:begin Dobavit; goto 1 end;
5:begin Delete; goto 1 end;
6:begin Redakt; goto 1 end;
7:begin Vidm; goto 1 end;
8:begin Sort; goto 1 end;
9:begin Tri; goto 1 end;
10:goto 0
else goto 1;
end;
0:bb;
end.
unit graf;
interface
uses crt,graph;
var gd,gm:integer;
errorcode:integer;
procedure mygraphlnit;
procedure vstyp;
procedure bb;
implementation
procedure mygraphlnit;
begin
gd:=detect;
initgraph(gd,gm,'');
errorcode:=graphresult;
if errorcode<>grok then
begin
write('Error',grapherrormsg(errorcode));
writeln('End');
halt(1);
end;
end;
procedure vstyp;
begin
clrscr;
mygraphlnit;
setcolor(3);
settextstyle(0,0,2);
setfillstyle(1,green);
floodfill(320,240,3);
MoveTo(230,200);
setcolor(Red);
OutText('Fail zapisei');
OutTextXY(140,220,'zda4i sesii stydentami');
settextstyle(0,0,1);
setcolor(0);
OutTextXY(280,260,'Variant 5');
OutTextXY(460,420,'by Voloshko Alexander');
OutTextXY(280,460,'Sumy 2012');
readkey;
closegraph;
end;
procedure bb;
begin
clrscr;
mygraphlnit;
setcolor(14);
setfillstyle(1,8);
floodfill(320,240,14);
settextstyle(0,0,2);
OutTextXY(140,200,'Spasibo za pol`zovanie');
readkey;
closegraph;
end;
end.
unit styd;
interface
uses crt;
type stip=record
nomgr:string[6];
prizv:string[15];
mat:1..5;
ukr:1..5;
inf:1..5;
gd:0..1;
end;
var f,f1:file of stip;
i,k,n,j:byte;
z:stip;
m:array[1..100]of stip;
srbal:real;
st:char;
gr:string[6];
procedure Vvod;
procedure Vyvod;
procedure Dobavit;
procedure Delete;
procedure Redakt;
procedure Vidm;
procedure Tri;
procedure Sort;
implementation
procedure Vvod;
begin
clrscr;
rewrite(f);
i:=1; st:='d';
while st='d' do
begin
clrscr;
writeln('Vvedite Grypy'); readln(z.nomgr);
writeln('Vvedite familiu'); readln(z.prizv);
writeln('Vvedite ocenky po matematike'); readln(z.mat);
writeln('Vvedite ocenky po ukrainskomy'); readln(z.ukr);
writeln('Vvedite ocenky po informatike'); readln(z.inf);
writeln('Y4astvyet li 4elovek v obwestvennoi deyatel`nosti 0-net 1-da'); readln(z.gd);
write(f,z);
i:=i+1;
writeln('Hotite prodoljit`(d/n)'); readln(st);
end;
close(f);
end;
procedure Vyvod;
begin
clrscr;
reset (f);
textcolor(yellow);
writeln(' Stipendiya ');
textcolor(13);
gotoxy(1,2); writeln('#');
gotoxy(4,2); writeln('Grypa');
gotoxy(12,2); writeln('Familiya');
gotoxy(24,2); writeln('Mat');
gotoxy(28,2); writeln('Ukr');
gotoxy(32,2); writeln('Inf');
gotoxy(36,2); writeln('Diyal`nist`');
gotoxy(50,2); writeln('stipendiya');
if filesize(f)=0 then begin textcolor (4+16);
writeln('V baze net zapisei'); textcolor(7) end else
for i:=1 to filesize(f) do
begin
read(f,z);
textcolor(2);
gotoxy(1,wherey); write(i);
gotoxy(4,wherey); write(z.nomgr);
gotoxy(12,wherey); write(z.prizv);
gotoxy(24,wherey); write(z.mat);
gotoxy(28,wherey); write(z.ukr);
gotoxy(32,wherey); write(z.inf);
gotoxy(36,wherey);
if z.gd=1 then write('y4astvyet') else write('ne y4astvyet');
gotoxy(50,wherey);
if (z.mat=5) and (z.ukr=5) and (z.inf=5) and ( z.gd=1) then write('+50%')
else
if (z.mat=5) and (z.ukr=5) and (z.inf=5) and (z.gd=0) then write('+25%')
else
if (z.mat>=4) and (z.ukr>=4) and (z.inf>=4) then write('Zvu4aina stupendiya')
else
if (z.mat>=3) and (z.ukr>=3) and (z.inf>=3) and (z.gd=1) then write('Zvu4aina stupendiya')
else write('Net stipendii');
writeln;
end;
close(f);
readkey;
end;
Procedure Dobavit;
begin
clrscr;
reset(f);
seek(f,filesize(f));
i:=filesize(f);
st:='d';
while st='d' do
begin
clrscr;
textcolor(2);
writeln('Vvedite Grypy'); readln(z.nomgr);
writeln('Vvedite familiu'); readln(z.prizv);
writeln('Vvedite ocenky po matematike'); readln(z.mat);
writeln('Vvedite ocenky po ukrainskomy'); readln(z.ukr);
writeln('Vvedite ocenky po informatike'); readln(z.inf);
writeln('Y4astvyet li 4elovek v obwestvennoi deyatel`nosti 0-net 1-da'); readln(z.gd);
write(f,z);
i:=i+1;
writeln('Hotite prodoljit`(d/n)'); readln(st);
end;
close(f);
end;
procedure Delete;
begin
clrscr;
i:=1;
reset(f);
textcolor(yellow);
writeln(' Stipendiya ');
textcolor(13);
gotoxy(1,2); writeln('#');
gotoxy(4,2); writeln('Grypa');
gotoxy(12,2); writeln('Familiya');
gotoxy(24,2); writeln('Mat');
gotoxy(28,2); writeln('Ukr');
gotoxy(32,2); writeln('Inf');
gotoxy(36,2); writeln('Diyal`nist`');
gotoxy(50,2); writeln('stipendiya');
if filesize(f)=0 then begin textcolor (4+16);
writeln('V baze net zapisei'); textcolor(7) end else
while not (eof(f)) do
begin
read(f,z);
textcolor(2);
gotoxy(1,wherey); write(i);
gotoxy(4,wherey); write(z.nomgr);
gotoxy(12,wherey); write(z.prizv);
gotoxy(24,wherey); write(z.mat);
gotoxy(28,wherey); write(z.ukr);
gotoxy(32,wherey); write(z.inf);
gotoxy(36,wherey);
if z.gd=1 then write('y4astvyet') else write('ne y4astvyet');
gotoxy(50,wherey);
if (z.mat=5) and (z.ukr=5) and (z.inf=5) and ( z.gd=1) then write('+50%')
else
if (z.mat=5) and (z.ukr=5) and (z.inf=5) and (z.gd=0) then write('+25%')
else
if (z.mat>=4) and (z.ukr>=4) and (z.inf>=4) then write('Zvu4aina stupendiya')
else
if (z.mat>=3) and (z.ukr>=3) and (z.inf>=3) and (z.gd=1) then write('Zvu4aina stupendiya')
else write('Net stipendii');
writeln;
i:=i+1;
end;
close(f);
writeln;
reset(f);
writeln('Zadaite nomer udalyaemoi zapisi'); readln(i);
if i>filesize(f) then write('Error')
else
begin
assign(f1,'rabota2.dat');
reset(f); rewrite(f1);
for n:=1 to filesize(f) do
begin
read(f,z);
if filepos(f)<>i then write(f1,z);
end;
close(f1); close(f);
erase(f); rename(f1,'stipendiya.dat');
write('Zapis` ydalena');end;
readkey;
end;
procedure Redakt;
begin
clrscr;
reset (f);
textcolor(yellow);
writeln(' Stipendiya ');
textcolor(13);
gotoxy(1,2); writeln('#');
gotoxy(4,2); writeln('Grypa');
gotoxy(12,2); writeln('Familiya');
gotoxy(24,2); writeln('Mat');
gotoxy(28,2); writeln('Ukr');
gotoxy(32,2); writeln('Inf');
gotoxy(36,2); writeln('Diyal`nist`');
gotoxy(50,2); writeln('stipendiya');
if filesize(f)=0 then begin textcolor (4+16);
writeln('V baze net zapisei'); textcolor(7) end else
for i:=1 to filesize(f) do
begin
read(f,z);
textcolor(2);
gotoxy(1,wherey); write(i);
gotoxy(4,wherey); write(z.nomgr);
gotoxy(12,wherey); write(z.prizv);
gotoxy(24,wherey); write(z.mat);
gotoxy(28,wherey); write(z.ukr);
gotoxy(32,wherey); write(z.inf);
gotoxy(36,wherey);
if z.gd=1 then write('y4astvyet') else write('ne y4astvyet');
gotoxy(50,wherey);
if (z.mat=5) and (z.ukr=5) and (z.inf=5) and ( z.gd=1) then write('+50%')
else
if (z.mat=5) and (z.ukr=5) and (z.inf=5) and (z.gd=0) then write('+25%')
else
if (z.mat>=4) and (z.ukr>=4) and (z.inf>=4) then write('Zvu4aina stupendiya')
else
if (z.mat>=3) and (z.ukr>=3) and (z.inf>=3) and (z.gd=1) then write('Zvu4aina stupendiya')
else write('Net stipendii');
writeln;
end;
close(f);
reset(f);
writeln('Vvedite nomer zapisi'); readln(i);
if i>filesize(f) then write ('takoi zapisi nety')
else
begin
seek(f,i-1);
writeln('Vvedite Grypy'); readln(z.nomgr);
writeln('Vvedite familiu'); readln(z.prizv);
writeln('Vvedite ocenky po matematike'); readln(z.mat);
writeln('Vvedite ocenky po ukrainskomy'); readln(z.ukr);
writeln('Vvedite ocenky po informatike'); readln(z.inf);
writeln('Y4astvyet li 4elovek v obwestvennoi deyatel`nosti 0-net 1-da'); readln(z.gd);