Главная Учебники - Разные Лекции (разные) - часть 32
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС Курсова робота з дисципліни "Основи програмування та алгоритмічні мови" на тему: "Аналіз успішності групи" Харків Зміст Вступ 1. Основна частина 1.1 Неформальна постановка задачі 1.2 Формальна постановка задачі 1.3 Структура зберігаючих даних 2. Алгоритми 2.1 Алгоритм основної програми 3. Вихідний код програми Висновок Список використаної літератури Вчителі витрачають дуже багато часу на те щоб перевірити оцінки та зробити аналіз успішності групи, адже вся інформація яка у них є вона в письмовому виді і таку інформацію не завжди легко обробляти. Таким чином потрібно розробити програму яка автоматизовано буде обробляти надану їй інформацію. Я вибрав мову програмування TurboPascal, з метою закріплення своїх навиків з програмування. Розробити програму "аналіз успішності групи" для збереження та перегляду всієї інформації що стосується навчання. - Введення і збереження інформації стосовно оцінок групи: o Фамілія курсанта o Оцінка по математики o Оцінка по хімії o Оцінка по фізиці o Оцінка по історії - Можливість редагування даної бази - Організація пошуку за критеріями - Аналіз успішності курсанта - Можливість перегляду всіх існуючих документів - Можливість видалення всієї бази. - Зручний інтерфейс для користувача - Швидкість та простота роботи в даній програмі Вихідні дані: Позначимо через множину В = {B1
, B2
, … , Bi
} всіх курсантів, тоді Bi
={Z1
, Z2
, … , Zj
}, де Zj
– оцінка з певного предмету. Таким чином отримуемо матрицю всіх відомостей R=||Rij
|| Результат: Множина Tij
, яка формуються з вхідних даних а саме множини Bij
Математична модель: G– структура для введення даних · Im – поле для введення фамілії курсанта · m - Поле для введення оцінки по матиматиці · xi - Поле для введення оцінки по хімії · fi - Поле для введення оцінки по фізики · is - Поле для введення оцінки по історії pamka – малює рамочку в певних координатах vo – процедура для введення відомостей por – процедура яка виконує аналіз та виводить його на екран ud – процедура яка видаляє базу zapask – процедура яка відповідає за створення головного меню 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,'qw.qw'); erase(f); writeln('FAIL UDALEN'); readln; end; end; {-------------------} procedure Rama (x1,y1,x2,y2,a,b:byte); var i:integer; begin textbackground(a); textcolor(b); window (x1,y1,x2,y2); write('Ъ'); for i:=1 to (x2-x1)-1 do begin write('Д'); end; write('ї'); for i:=2 to (y2-y1)-1 do begin gotoxy(1,i); write('і'); gotoxy(x2-x1+1,i); write('і'); end; write('А'); for i:=1 to (x2-x1)-1 do begin write('Д'); end; write('Щ'); end; {------------------------} procedure newreadkey (var a:char;var b:byte); begin b:=0; a:=readkey; if a=#0 then b:=ord(readkey); end; {------------------} procedure zapaska(i:byte;s1,s2,s3,s4:string); begin window(1,1,40,7); textbackground(1); clrscr; window(1,18,40,25); textbackground(1); clrscr; window(1,7,40,18); textbackground(0); clrscr; case i of 1: begin window(1,7,10,10); textbackground(1); clrscr; window(1,15,10,18); textbackground(1); clrscr; end; 2: begin window(10,7,20,10); textbackground(1); clrscr; window(10,15,20,18); textbackground(1); clrscr; end; 3: begin window(20,7,30,10); textbackground(1); clrscr; window(20,15,30,18); textbackground(1); clrscr; end; 4: begin window(30,7,40,10); textbackground(1); clrscr; window(30,15,40,18); textbackground(1); clrscr; end; end; window(1,12,40,14); gotoxy(1,13); write(s1); write(s2); write(s3); write(s4); end; {==================} begin window(1,1,40,25); textbackground(0); clrscr; p:=1; s1:=' Vvod '; s2:=' Analiz '; s3:=' Udal '; s4:=' Vihid '; zapaska(1,s1,s2,s3,s4); repeat newreadkey(a,b); case b of 77:p:=p+1; 75:p:=p-1; end; case p of 5: p:=4; 0: p:=1; end; case p of 1: begin if a=#13 then vo; zapaska(p,s1,s2,s3,s4); end; 2: begin if a=#13 then por; zapaska(p,s1,s2,s3,s4); end; 3: begin if a=#13 then ud; zapaska(p,s1,s2,s3,s4); end; 4: begin if a=#13 then halt; zapaska(p,s1,s2,s3,s4); end; end; until a=#27; end. В данній курсовій роботі було створено програму для автоматизації та обробки певної інформації. Програма називається "Аналіз успішності групи". В даній програмі був створений максимально простий інтерфейс, максимально спростована робота користувачем. Таким чином програма легка в використанні, в той же час вона набагато спростовує обробку певної необхідної інформації. Було створене головне поле, де графічно створені пункти вибору певного дійства яке вибрав користувач. Під слофом графіка тут розуміється псевдографіка яка доступна завдяки модулю CRT. Також в "Аналізі успішності групи" використовуються процедури з модулю DOS. Була використані приємна кольорова гама, яка надає розслабленості користувачу, а також концентрує увагу на певних важливих елементах програми. 1. Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с. 2. Сердюченко В.Я. Розробка алгоритмів та програмування на мові TurboPascal. – X.,1995. 3. Немнюгин С.А. TurboPascal. – СПб.: Питер, 2002. – 496 с.: ил.
|