Разработка базы данных, отражающей учет успеваемости студентов
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: первый снег сочинение, мировая экономика
| Добавил(а) на сайт: Капылюшный.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
Следующая процедура - obrabotka(iz,t:integer; var rab:cc). Эта процедура вызывается при корректировке записей. Через параметр iz процедура выбирает путь дальнейшего хода. То есть надо ли добавить запись, изменить или удалить. Параметр rab – это таблица, которая передается в процедуру, и параметр var показывает, что данную таблицу можно изменять непосредственно из процедуры.
В ней используются локальные переменные – dlud:string; bis:boolean; tems,temr,tem:cc;
Здесь все переменные типа cc – временные, dlud служит для ввода данных, а bis показывает, выполнимо ли выбранное действие или нет.
Продцедура sort(iz,t:integer; var rab:cc) осуществляет сортировку записей в выбранной таблице по выбранному полю. Ее работа и параметры с переменными аналогичны предыдущей процедуре.
При запросах выполняется процедура zapros(num:integer), где через параметр num передается, какой именно запрос должен выполняться. Потом через условие case идет обработка запросов. Как показано на схеме взаимодействия таблиц, чтобы перейти от студентам к преподавателям надо пройти через таблицу оценок. Связь между таблицами осуществляется по уникальным полям. Например для нахождении оценки студента надо сначала из таблицы студентов найти номер его студенческого, а потом найти номер сдаваемого предмета из таблицы, а уже после этого, используя полученные номера, найти из таблицы успеваемости полученную студентом оценку. То есть связь идет по трем таблицам. В запросах я старался как можно больше показать возможности моей базы данных. На последнем рисунке показан один из запросов и результат его выполнения. Возможность создания гибких запросов является важнейшей задачей программирования баз данных.
Возможности полученного
программного продукта
Таким образом мы построили гибкую модель базы данных, в которой легко
создать нужный запрос, данные представлены в удобном для пользователя виде.
Интерфейс программы построен без излишков и настроен на максимальное
удобство пользователя. Программа позволяет заполнять базу данных
одновременно несколькими пользователями, каждый из которых будет заполнять
свою таблицу. Так как программа работает с динамическими списками, то она
быстра и позволяет избежать избыточности данных в таблицах.
Текст программы Kurs.pas
program Delphins; uses crt,tips; var names,namer:string[10]; key,kr:char; tek,i,j,izm:integer; exist,vfile,issor:boolean; nast:pered; temr,tt1,tt2,tt3,tt4:cc; outf:file of tabl2;
procedure menus(m:pered;max:byte); {Вывод меню}
begin
clrscr;
For i:=1 to max do begin if i=1 then begin textcolor(1); gotoxy(9,2); write(m.st[i]); end else begin if i=2 then textcolor(9) else textcolor(3); gotoxy(8,i+3);write(m.st[i]); end; end;
end;
procedure krutis; {Звездочка рядом с активным элементом} begin textcolor(14); if kr='/' then kr:='-' else if kr='-' then kr:='' else if kr='' then kr:='|' else kr:='/'; gotoxy(6,tek+3);write(kr); textcolor(3); end;
procedure ramka(ch:char); {перемещение указателя} begin gotoxy(6,tek+3);Writeln(' '); textcolor(3);gotoxy(8,tek+3);write(nast.st[tek]); if ch='+' then tek:=tek+1 else tek:=tek-1; if tek=1 then tek:=nast.m else if tek=nast.m+1 then tek:=2; key:=#0; textcolor(9);gotoxy(8,tek+3);write(nast.st[tek]); krutis; end;
procedure tabl11(t:integer;rab:cc); {Вывод таблицы в файл}
var ooutf:text;
tem:cc;
begin
clrscr; writeln('Введите имя файла'); readln(names); assign(ooutf,names); rewrite(ooutf); writeln(ooutf,menu2.st[t]); writeln(ooutf,'+------------------------------------------------------
-----------------+'); writeln(ooutf,'¦',mm[t-1,1]:14,'¦',mm[t-1,2]:14,'¦',mm[t-
1,3]:14,'¦',mm[t-1,4]:14,'¦',mm[t-1,5]:14,'¦'); writeln(ooutf,'+--------------+--------------+--------------+---------
--+--------------¦'); tem:=rab; while temnil do begin
writeln(ooutf,'¦',tem^.tabl.t1:14,'¦',tem^.tabl.t2:14,'¦',tem^.tabl.t3:14,'¦
',tem^.tabl.t4:14,
'¦',tem^.tabl.t5:14,'¦'); tem:=tem^.sled; end; writeln(ooutf,'+------------------------------------------------------
-----------------+'); close(ooutf); nast:=menu1; menus(nast,nast.m); tek:=2;
end;
procedure tabl1(t:integer;rab:cc;yd:boolean); {Вывод таблицы на экран}
var tem:cc;
begin
clrscr; writeln(menu2.st[t]); writeln('+------------------------------------------------------------
-----------+'); writeln('¦',mm[t-1,1]:14,'¦',mm[t-1,2]:14,'¦',mm[t-1,3]:14,'¦',mm[t-
1,4]:14,'¦',mm[t-1,5]:14,'¦'); writeln('+--------------+--------------+--------------+--------------+
-----------¦'); tem:=rab; while temnil do begin
writeln('¦',tem^.tabl.t1:14,'¦',tem^.tabl.t2:14,'¦',tem^.tabl.t3:14,'¦',tem^
.tabl.t4:14,
'¦',tem^.tabl.t5:14,'¦'); tem:=tem^.sled; end; writeln('+------------------------------------------------------------
-----------+'); if not yd then begin readln; nast:=menu1; menus(nast,nast.m); tek:=2; end; yd:=false;
end;
procedure sort(iz,t:integer; var rab:cc); {Сортировка по полю} var po:integer; te1,te2,tem:cc; str1,str2:string; ttrtt:tabl2; begin tabl1(tek,rab,true); writeln('Введите номер столбца по которому надо отсортировать данные'); readln(po); te1:=rab; while te1nil do begin te2:=te1^.sled; while te2nil do begin case po of
1:begin str1:=te1^.tabl.t1; str2:=te2^.tabl.t1; end;
2:begin str1:=te1^.tabl.t2; str2:=te2^.tabl.t2; end;
3:begin str1:=te1^.tabl.t3; str2:=te2^.tabl.t3; end;
4:begin str1:=te1^.tabl.t4; str2:=te2^.tabl.t4; end;
5:begin str1:=te1^.tabl.t5; str2:=te2^.tabl.t5; end; end; if str1>str2 then begin ttrtt:=te1^.tabl; te1^.tabl:=te2^.tabl; te2^.tabl:=ttrtt; end; te2:=te2^.sled; end; te1:=te1^.sled; end; tabl1(tek,rab,false); end;
Рекомендуем скачать другие рефераты по теме: скачать реферат по истории, скачать шпаргалки по праву.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата