Аналіз успішності групи

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Міністерство внутрішніх справ України

Харківський національний університет внутрішніх справ

Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій

Кафедра інформаційних систем і технологій в діяльності ОВС

 

 

 

 

 

Курсова робота

з дисципліни "Основи програмування та алгоритмічні мови"

на тему: "Аналіз успішності групи"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Харків

Зміст

 

Вступ

1. Основна частина

1.1 Неформальна постановка задачі

1.2 Формальна постановка задачі

1.3 Структура зберігаючих даних

2. Алгоритми

2.1 Алгоритм основної програми

3. Вихідний код програми

Висновок

Список використаної літератури

 

Вступ

 

Вчителі витрачають дуже багато часу на те щоб перевірити оцінки та зробити аналіз успішності групи, адже вся інформація яка у них є вона в письмовому виді і таку інформацію не завжди легко обробляти. Таким чином потрібно розробити програму яка автоматизовано буде обробляти надану їй інформацію.

Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування.

 

1. Основна частина

 

1.1 Неформальна постановка задачі

 

Розробити програму "аналіз успішності групи" для збереження та перегляду всієї інформації що стосується навчання.

  1. Введення і збереження інформації стосовно оцінок групи:
  2. Фамілія курсанта
  3. Оцінка по математики
  4. Оцінка по хімії
  5. Оцінка по фізиці
  6. Оцінка по історії
  7. Можливість редагування даної бази
  8. Організація пошуку за критеріями
  9. Аналіз успішності курсанта
  10. Можливість перегляду всіх існуючих документів
  11. Можливість видалення всієї бази.
  12. Зручний інтерфейс для користувача
  13. Швидкість та простота роботи в даній програмі

 

1.2 Формальна постановка задачі

 

Вихідні дані:

Позначимо через множину В = {B1, B2, … , Bi} всіх курсантів, тоді Bi={Z1, Z2, … , Zj}, де Zj оцінка з певного предмету.

Таким чином отримуемо матрицю всіх відомостей R=||Rij||

Результат:

Множина Tij, яка формуються з вхідних даних а саме множини Bij

Математична модель:

 

1.3 Структура зберігаючих даних

 

G структура для введення даних

  • Im поле для введення фамілії курсанта
  • m - Поле для введення оцінки по матиматиці
  • xi - Поле для введення оцінки по хімії
  • fi - Поле для введення оцінки по фізики
  • is - Поле для введення оцінки по історії

pamka малює рамочку в певних координатах

vo процедура для введення відомостей

por процедура яка виконує аналіз та виводить його на екран

ud процедура яка видаляє базу

zapask процедура яка відповідає за створення головного меню

 

2. Алгоритми

 

2.1 Алгоритм основної програми

 

 

3. Вихідний код програми

 

uses crt,dos;

type g=record {an u gr}

im:string[25];

m,xi,fi,is:integer;

end;

var a:char;

b,i,p:byte;

s1,s2,s3,s4:string;

gr:g; f:file of g;

{-------------------}

procedure pamka (x1,y1,x2,y2:integer);

var i,c:integer;

begin

textcolor(7);

gotoxy(x1,y1);

write(#201);

for i:=1 to x2-x1-1 do

begin

gotoxy(x1+i,y1);

write(#205);

end;

gotoxy(x2,y1);

write(#187);

for i:=1 to y2-y1-1 do

begin

gotoxy(x2,y1+i);

write(#186);

end;

gotoxy(x2,y2);

write(#188);

for i:=1 to x2-x1-1 do

begin

gotoxy(x2-i,y2);

write(#205);

end;

gotoxy(x1,y2);

write(#200);

for i:=1 to y2-y1-1 do

begin

gotoxy(x1,y1+i);

write(#186);

end;

end;

procedure vo;

var i,n:integer;

begin

window(1,1,40,25);

textbackground(2);

clrscr;

pamka(1,1,39,3);

gotoxy(6,2);

textcolor(3);

write(Zapolnenie ranga uspevaemosti);

pamka(1,3,39,25);

window(2,4,38,24);

write(vvedi kolichestvo kyrs. v grupe-);readln(n);

assign(f,qw.qw);

rewrite(f);

for i:=1 to n do

begin

seek(f,filesize(f));

clrscr;

writeln(Krsant#,i);

write(vvedi familiu kursanta- );readln(gr.im);

write(vvedi otcenku po matem-);readln(gr.m);

write(vvedi otcenku po ximii-);readln(gr.xi);

write(vvedi otcenku po fizike-);readln(gr.fi);

write(vvedi otcenku po istorii-);readln(gr.is);

write(f,gr);

end;

close(f);

end;

{............................}

procedure por;

var i,s,k,k1,s1,s2,s3,s4,min,max,j,l,s5:integer;z:real;

begin

if fsearch(qw.qw,qw.qw)= then

begin

window(1,1,40,25);

textbackground(2);

clrscr;

pamka(1,1,39,3);

gotoxy(6,2);

textcolor(3);

write(Analis ranga uspevaemosti);

pamka(1,3,39,25);

window(2,4,38,24);

textcolor(132);

writeln(FAIL NE NAIDEN);

end

else

begin

window(1,1,40,25);

textbackground(2);

clrscr;

pamka(1,1,39,3);

gotoxy(6,2);

textcolor(3);

write(Analis ranga uspevaemosti);

pamka(1,3,39,25);

textcolor(0);

window(2,4,38,24);

assign(f,qw.qw);

reset(f);

s:=0;k:=0;k1:=0; s1:=0;s2:=0;s3:=0;s4:=0; min:=9999;max:=-9999;j:=0;l:=0;

for i:=0 to filesize(f)-1 do

begin

s5:=0;

seek(f,i);

read(f,gr);

s5:=gr.m+gr.is+gr.xi+gr.fi;

if 5<min then

begin

min:=s5;j:=i;

end;

if s5>max then

begin

max:=s5;l:=i;

end;

s:=s+gr.m+gr.is+gr.xi+gr.fi;

s1:=s1+gr.m;

s2:=s2+gr.is;

s3:=s3+gr.xi;

s4:=s4+gr.fi;

k:=k+4;

k1:=k1+1;

end;

seek(f,j);

read(f,gr);

writeln(kursant-,gr.im, imeet samiy nizkiy bal);

seek(f,l);

read(f,gr);

writeln(kursant-,gr.im, imeet samiy visokiy bal);

writeln(obsh. sr.bal v grupe- ,s/k:1:1);

writeln(sr.bal po matem.- ,s1/k1:1:1);

writeln(sr.bal po istorii- ,s2/k1:1:1);

writeln(sr.bal po ximii- ,s3/k1:1:1);

writeln(sr.bal po fizike- ,s4/k1:1:1);

close(f);

end;

readln;

end;

{................................}

procedure ud;

begin

if fsearch(qw.qw,qw.qw)= then

begin

window(1,1,40,25);

textbackground(2);

clrscr;

pamka(1,1,39,3);

gotoxy(6,2);

textcolor(3);

write(Udalenie ranga uspevaemosti);

pamka(1,3,39,25);

window(2,4,38,24);

textcolor(132);

writeln(FAIL NE NAIDEN);

readln;

end

else

begin

assign(f,q