Разработка базы данных, отражающей учет успеваемости студентов
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: первый снег сочинение, мировая экономика
| Добавил(а) на сайт: Капылюшный.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
«Кто принимал экзамен» - фамилия преподавателя, принимавшего данный предмет.
«Найти размер стипендии» - размер стипендии выбранного студента.
«Вывод по оценке» - показать всех студентов, получивших данную оценку.
«Дата сдачи экзамена» - найти даты, когда принимался данный предмет.
В запросах используются реальные названия предметов, фамилии студентов, а не их номера (для студентов например номер соответствует номеру студенческого билета).
Больше в программе меню такого типа нет, но есть много строчного ввода, например выполним запрос с поиском оценок. После запроса экран будет выглядеть так (искали четверочников):
Результат запроса отображается красным цветом.
Описание используемых процедур.
В приложении используются как глобальные, так и локальные переменные. К глобальным переменным относятся:
1) names,namer:string[10] – строковые переменные, которые вынесены в
глобальные, чтобы сделать программу более компактной. Иначе бы в разных
процедурах надо было вводить аналогичные типы данных, а так можно обойтись
лишь парой глобальных переменных.
2) key,kr:char – символьные переменные. В переменной key хранится код
нажатой клавиши. А в переменной kr находится текущее положение звездочки.
Звездочка будет рассмотрена ниже.
3) tek,i,j,izm:integer – целочисленные переменные. Из них i и j
–циклические, временные переменные. Tek и izm показывают, какое меню
активно в текущий момент. Они помогают понять программе от какого меню к
какому перешли, тоесть помогает восстановить последовательность действий.
4) exist,vfile,issor:boolean – Логические переменные. Exist – служит для
выхода из программы. Vfile – позволяет пускать одну процедуру по двум путям
– либо выводить данные на экран, либо в файл. Issor – показывает меню
выбора таблиц, что следующим шагом должна быть сортировка данной таблицы.
5) nast:pered – Типизированная переменная, в которой хранятся строки
текущего меню. Описание типа pered имеется в модуле: pered=record st:array[1..12] of string; m:byte; {количество строк в меню} end; temr,tt1,tt2,tt3,tt4:cc – Таблицы базы данных. Тут tt1 – таблица с
данными о студентах, tt2 – предметы, tt3 – преподаватели, tt4 – оценки
(успеваемость). Temr – временная таблица. Все эти переменные являются
динамическими списками. Они описаны в файле tips.pas: tabl2=record {Сама таблица} t1,t2,t3,t4,t5:string[12]; {Состоит из строк} end; cc=^tab; tab=record {Создание динамического списка} tabl:tabl2; sled:cc; end;
Программа отвечает на то, какую клавишу нажал пользователь и передает управление процедуре main. Процедура readkey используется в основном блоке программы. Для работы с управляющими клавишами используются их коды в таблице ISCII. Тут:
80 – курсор вверх
72 – курсор вниз
27 – ESC
13 – Enter
При нажатии на клавишу «Ввод» управление передается продцедуре main. При этом используются глобальные переменные.
В процедуре main управление переходит к подпрограмме, согласно текущему меню, но порой надо знать откуда был осуществлен вход. Как я уже говорил, зайти в меню выбора таблиц можно по разному. Все меню имеют разные заголовки, которые и используются для их идентификации. При нажатии на кнопку «Выход», текущем становится первоначальное меню.
Интерфейсная часть программы состоит из трех процедур: 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;
С помощью этой процедуры на экране меняются меню. Нужно учесть, что мы
первоначально знаем, из сколки строк состоит каждое меню, что упрощает
задачу. Заголовок и содержание меню пишутся разными цветами. Изменение
цвета выводимых символов идет с помощью команды textcolor, параметром
котором является предопределенная константа.
Следующая процедура:
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;
Эта процедура работает таким образом – обращение к ней идет из основного
блока программы, в котором стоит бесконечный цикл. На экране отображается
что то похожее на бенгальский огонь. Это достигается путем
последовательного вывода на одном и том же месте символов: , |, /, —. В
переменной tek у нас содержится номер активной строки, а относительно нее
мы и должны поставить звездочку.
Следующая процедура: 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;
Данная процедура имеет параметр символьного типа. По содержанию ch определяется – вверх или вниз сдвинулась активная строка. Обращение к этой процедуре идет из основного блока программы. Больше процедур такого рода нет (ко всем другим процедурам обращение идет из процедуры main).
Эта процедура затирает элемент, который был активен перед этим цветом по умолчанию (голубым) и стирает предыдущее положение звездочки. После этого исходя из значения ch изменяется значение tek и выделяется элемент, на который был осуществлен переход. В подпрограмме вставлены два условия: if tek=1 then tek:=nast.m else if tek=nast.m+1 then tek:=2;
Они срабатывают когда активным является верхний элемент меню и пользователь нажал кнопку вверх, тогда текущей становится последняя строка, и наоборот – текущая строка является последней, а пользователь нажал кнопку вниз, тогда активной станет первая строка активного меню.
Процедуры следующего типа осуществляют загрузку и выгрузку данных из
файла. Я не буду здесь приводить полный текст процедур, так как его можно
посмотреть в приложении. Чтение осуществляется с помощью readetip, а запись
– writetip. В этих процедурах используются глобальные переменные. Загрузка
идет посредством таблиц tt1, tt2, tt3, tt4. При работе пользователь
работает как бы с одним файлом, хотя реально каждая из таблиц сохраняется в
свой файл. При запросе пользователь вводит название файла, а потом к этому
названию добавляется слева цифра – 1, 2, 3 или 4. Например если при
сохранении в типизированный файл имени сохраняемого файла присвоить
значение pasha, то таблица tt1 будет сохранена в файле 1pasha, tt2 –
2pasha, tt3 – 3pasha, tt4 – 4pasha. При выгрузке из файла присвоение имен
идет таким же образом. Для сохранения в текстовой файл используется
процедура tabl11(t:integer;rab:cc), где rab – сохраняемая таблица, а t –
помогает найти заголовки столбцов текущей таблицы. Результат выполнения
данной процедуры можно посмотреть выше, где показаны таблицы первоначальных
данных. Для вывода содержимого таблицы на экран используется процедура
tabl1(t:integer;rab:cc;yd:boolean), действие которой аналогично предыдущей, только добавляется параметр yd, от которого зависит, нужно ли затирать
таблицу сразу или она должна повисеть на экране, пока пользователь не ввел
какие либо данные. Например при удалении записей из таблицы, пользователю
будет удобнее, если он будет содержание таблицы перед глазами. Например
покажем содержание таблицы студентов, которые будут выведены после нажатии
на кнопку «Просмотр»:
Рекомендуем скачать другие рефераты по теме: скачать реферат по истории, скачать шпаргалки по праву.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата