GeoSELECT.ru



Программирование / Реферат: Разработка базы данных, отражающей учет успеваемости студентов (Программирование)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Разработка базы данных, отражающей учет успеваемости студентов (Программирование)


Министерство образования

Российской Федерации


Хабаровский Государственный Технический Университет



Кафедра: «Программное обеспечение»



КУРСОВАЯ РАБОТА


По теме «Разработка базы данных,
отражающей учет успеваемости студентов»



Выполнил студент

гр. ПО-02 Самойленко П.
Р.

Проверил преподаватель

Белоусова Людмила

Васильевна


Хабаровск 2001
Содержание:

1. Задание на разработку, постановка задачи.
2. Описание базы данных.
3. Описание средств, используемых при создании программы.
4. Первоначальные данные.
5. Интерфейс программы.
6. Описание используемых переменных и процедур.
7. Возможности полученного программного продукта.
Постановка задачи.
Построить систему управления базой данных (в дальнейшем-СУБД), отражающую
учет успеваемости студентов вуза. При этом надо предусмотреть, что данные
могут вноситься разными людьми. Построить базу данных, которая была бы
максимально гибкой. В базе данных должны содержаться данные о студентах,
оценках, преподавателях и предметах.
Описание базы данных.
База данных нормализована и состоит из четырех таблиц. Она разбита на
четыре таблицы, дабы быть максимально гибкой. При этом разные таблицы могут
заполняться разными людьми, а потом объединяться в одну общую базу данных.
Например, таблицу о студентах заполняют на кафедре, на которой учиться
студент, таблицу о преподавателе и предметах – на кафедре этих
преподавателей, а оценки ставит преподаватель.
Структура таблиц
|Название столбца|Описание |
|Таблица студентов (tt1) |
|T1 |Номер студенческого билета |
|T2 |Фамилия студента |
|T3 |Имя |
|T4 |Отчество |
|T5 |Стипендия |
|Таблица предметов(tt2) |
|T1 |Номер предмета |
|T2 |Название предмета |
|T3 |Номер преподавателя |
|T4 |Часы |
|T5 |Курс |
|Таблица преподавателей(tt3) |
|T1 |Номер учителя |
|T2 |Фамилия учителя |
|T3 |Его имя |
|T4 |Отчество |
|T5 |Дата принятия преподавателя на работу |
|Таблица успеваемости(tt4) |
|T1 |Код факта сдачи учебной дисциплины |
|T2 |Оценка |
|T3 |Дата сдачи |
|T4 |Номер студенческого билета |
|T5 |Код учебного предмета |

Все атрибуты имеют строковый тип данных. Причем столбец T1 у каждой из
таблиц является первичным ключом, то есть данные в нем уникальны.
Изобразим связь между таблицами:



Связь эта осуществляется через уникальные поля каждой из таблиц. Из схемы
видно, что связь между преподавателями и например, студентами,
осуществляется только через таблицу предметов. Такая организация базы
данных позволяет избежать дублирования данных. Например, если бы у нас
таблица предметов была объединена с таблицей преподавателей, то мог
выползти такой случай – один преподаватель ведет два предмета,
следовательно его фамилия, имя и отчество будут повторятся в таблице
дважды. А это уже называется избыточностью данных.

Описание средств, используемых при создании программы

Данный программный продукт работает в текстовом режиме, периодически
меняя цвет выводимых символов с помощью процедуры textcolor(). Эта
процедура принадлежит модулю crt. Помимо нее из этого модуля используется
еще две процедуры: clrscr – для отчистки экрана, да gotoxy – для перехода
на заданные координаты экрана.
В программе используются списки, записи, собственные модули. Какие же
преимущества дают использованные средства?
Списки позволяют рационально использовать память компьютера и выделять ее
динамически, не занимая ее попусту. Правда при использовании списков я
заметил значительное увеличение кода программы по сравнению со случаем,
если бы мы использовали массивы и записи. Но работать с записями намного
эффективнее, особенно при создании баз данных. При работе над данной СУБД я
использовал стандартные процедуры для работы с указателями:
New() – выделение памяти для переменной
Dispose() - Возвращение памяти в кучу.
Указатель в моем случае указывает на следующий кортеж в данной таблице.
Четыре таблицы хранятся в динамическом списке. Список заканчивается, как
только следующий элемент принимает значение nil, то есть ни на что не
указывает.
Записи помогают структурировать данные, избежать избыточности.
Модуль я использую для предопределения в нем типов и заполнения записей,
значения которых будут потом использованы в основной программе. В этих
записях я храню массивы строк – строк меню. Таким образом, этот код не
«захламляет» код основной программы. И добавлять новые элементы в меню
намного проще – не надо переделывать всю программу.
Первоначальные данные
Для примера я ввел некоторые данные и сохранил в файле pasha. Вот эти
данные, выведенные с помощью команды – «Сохр. в текст. файл»:
Студенты
+-------------------------------------------------------------------------
-+
¦ Студенческий¦ Фамилия¦ Имя¦ Отчество¦
Стипендия¦
+--------------+--------------+--------------+--------------+-------------

¦ 3412¦ Поляков¦ Анатолий¦ Алексеевич¦
54.50¦
¦ 3413¦ Старова¦ Любовь¦ Михайловна¦
17.00¦
¦ 3414¦ Гриценко¦ Владимир¦ Николаевич¦
0.00¦
¦ 3415¦ Котенко¦ Анатолий¦ Николаевич¦
0.00¦
¦ 3416¦ Нагорный¦ Евгений¦ Васильевич¦
25.50¦
+-------------------------------------------------------------------------
-+
Предметы
+-------------------------------------------------------------------------
-+
¦ Код предмета¦ Название¦ Код преподав.¦ Время учебы¦
Курс¦
+--------------+--------------+--------------+--------------+-------------

¦ 2001¦ Физика¦ 4001¦ 34¦

¦ 2002¦ Химия¦ 4002¦ 68¦

¦ 2003¦ Математика¦ 4003¦ 68¦

¦ 2004¦ Философия¦ 4005¦ 17¦

¦ 2005¦ Экономика¦ 4004¦ 17¦

+-------------------------------------------------------------------------
-+
Преподаватели
+-------------------------------------------------------------------------
-+
¦ Код преподав.¦ Фамилия¦ Имя¦ Отчество¦ Начало
работы¦
+--------------+--------------+--------------+--------------+-------------

¦ 4001¦ Викулина¦ Валентина¦ Ивановна¦
01/04/1984¦
¦ 4002¦ Костыркин¦ Олег¦ Владимирович¦
01/09/1997¦
¦ 4003¦ Казанко¦ Виталий¦ Владимирович¦
01/09/1988¦
¦ 4004¦ Позднякова¦ Любовь¦ Алексеевна¦
01/09/1998¦
¦ 4005¦ Загарийчук¦ Игорь¦ Дмитриевич¦
10/05/1989¦
+-------------------------------------------------------------------------
-+

Оценки
+-------------------------------------------------------------------------
-+
¦ Код сдачи¦ Оценка¦ Дата сдачи¦ Студенческий¦ Код
предмета¦
+--------------+--------------+--------------+--------------+-------------

¦ 1001¦ 5¦ 10/06/1999¦ 3412¦
2001¦
¦ 1002¦ 4¦ 10/06/1999¦ 3413¦
2003¦
¦ 1003¦ 3¦ 11/06/1999¦ 3414¦
2005¦
¦ 1004¦ 4¦ 12/06/1999¦ 3412¦
2003¦
¦ 1005¦ 5¦ 12/06/1999¦ 3416¦
2004¦
+-------------------------------------------------------------------------
-+
Эти данные будут использоваться в примерах.

Интерфейс программы

Для того, чтоб понять, что делает программа рассмотрим ее меню:



На рисунке 1 представлено главное меню программы, которое появляется при
ее запуске. Тут:
«Загрузка» - ввод базы данных из типизированного файла.
«Сохр. в тип. файл» - сохранение базы данных в типизированном файле.
«Сохр. в текст. файл» - сохранение выбранной таблицы в текстовой файл.
«Просмотр» - просмотр данных таблиц.
«Корректировка» - изменение записей таблиц.
«Сортировка» - сортировка записей по определенному полю.
«Запросы» - поиск данных в четырех таблицах, соответствующие заданному
условию.
«Выход» - выход из программы.
Главное меню содержит вложенные. Например на 2 рисунке показано меню,
служащее для выбора таблицы (одной из четырех). Вход в него может быть
осуществлен по разному. То есть это меню вы будете проходить при просмотре
данных, при корректировке и при сохранении в текстовой файл. Это меню в
комментариях не нуждается.
При выборе «Корректировка» вы перейдете к меню, показанному на рисунке 3.
«Добавление» - добавление нового кортежа в заданную с помощью предыдущего
меню таблицу.
«Удаление» - удаление строки из таблицы, причем запись в таблице ищется
по первому столбцу.
«Изменение» - изменение свойств существующей в базе данных строки.
Последнее подменю – это подменю запросов, на котором надо остановиться
поподробнее. Рассмотрим рисунок:
«Найти оценку» - найти оценку студента по его фамилии и предмету, который
он сдавал.
«Кто принимал экзамен» - фамилия преподавателя, принимавшего данный
предмет.
«Найти размер стипендии» - размер стипендии выбранного студента.
«Вывод по оценке» - показать всех студентов, получивших данную оценку.
«Дата сдачи экзамена» - найти даты, когда принимался данный предмет.
В запросах используются реальные названия предметов, фамилии студентов, а
не их номера (для студентов например номер соответствует номеру
студенческого билета).
Больше в программе меню такого типа нет, но есть много строчного ввода,
например выполним запрос с поиском оценок. После запроса экран будет
выглядеть так (искали четверочников):
Результат запроса отображается красным цветом.
Описание используемых процедур.

В приложении используются как глобальные, так и локальные переменные. К
глобальным переменным относятся:

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, от которого зависит, нужно ли затирать
таблицу сразу или она должна повисеть на экране, пока пользователь не ввел
какие либо данные. Например при удалении записей из таблицы, пользователю
будет удобнее, если он будет содержание таблицы перед глазами. Например
покажем содержание таблицы студентов, которые будут выведены после нажатии
на кнопку «Просмотр»:

Следующая процедура - 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;

procedure obrabotka(iz,t:integer; var rab:cc); {Обработка записей}
var dlud:string;
bis:boolean;
tems,temr,tem:cc;
begin
clrscr;
if iz=1 then begin {добавление записи}
if rabnil then begin
tem:=rab;
while tem^.slednil do tem:=tem^.sled;
new(tem^.sled);
tem:=tem^.sled;
end
else begin
new(rab);
tem:=rab;
end;
writeln(mm[t,1]);readln(tem^.tabl.t1);
writeln(mm[t,2]);readln(tem^.tabl.t2);
writeln(mm[t,3]);readln(tem^.tabl.t3);
writeln(mm[t,4]);readln(tem^.tabl.t4);
writeln(mm[t,5]);readln(tem^.tabl.t5);
tem^.sled:=nil;
tem:=rab;
izm:=0;
nast:=menu1;
menus(nast,nast.m);
tek:=2; iz:=0;
end
else if iz=2 then begin {Удаление записи}
tems:=rab;
tabl1(tek,rab,true);
writeln('Введите уникальный номер'); readln(dlud);
bis:=true;
if rab^.tabl.t1 = dlud then begin
rab:=rab^.sled;
bis:=false;
end
else begin
while temsnil do begin
if tems^.sled^.tabl.t1=dlud then begin
tem:=tems^.sled;
tems^.sled:=tems^.sled^.sled;
dispose(tem);
bis:=false;
break;
end;
tems:=tems^.sled;
end;
end;
if bis then writeln('Данной записи не обнаруженно');
nast:=menu1;
menus(nast,nast.m);
tabl1(tek,rab,false);
izm:=0;
tek:=2;
end
else if iz=3 then begin {изменение данных}
tems:=rab;
tabl1(tek,rab,true);
writeln('Введите уникальный номер'); readln(dlud);
bis:=true;
while temsnil do begin
if tems^.tabl.t1=dlud then begin
writeln(mm[t,1]);readln(tems^.tabl.t1);
writeln(mm[t,2]);readln(tems^.tabl.t2);
writeln(mm[t,3]);readln(tems^.tabl.t3);
writeln(mm[t,4]);readln(tems^.tabl.t4);
writeln(mm[t,5]);readln(tems^.tabl.t5);
break;
end;
tems:=tems^.sled;
end;
if bis then writeln('Данной записи не обнаруженно');
nast:=menu1;
menus(nast,nast.m);
tabl1(tek,rab,false);
izm:=0; tek:=2;
end;
end;

procedure zapros(num:integer); {Запросы}
var str1,str2,str3:string;
tem1,tem2:cc;
nay:boolean;
zz:tabl2;
begin
clrscr;
nay:=false;
case num of
2:begin {Найти оценку}
tem1:=tt1;
writeln('Введите фамилию'); readln(str1);
writeln('Введите название предмета');readln(str2);
while tem1nil do begin
if tem1^.tabl.t2=str1 then begin str1:=tem1^.tabl.t1; break; end;
tem1:=tem1^.sled;
end;
tem1:=tt2;
while tem1nil do begin
if tem1^.tabl.t2=str2 then begin str2:=tem1^.tabl.t1; break; end;
tem1:=tem1^.sled;
end;
tem1:=tt4;
while tem1nil do begin
if ((tem1^.tabl.t5=str2) and (tem1^.tabl.t4=str1)) then begin
textcolor(red);
writeln('Оценка этого студента-',tem1^.tabl.t2);
nay:=true; break;
end;
tem1:=tem1^.sled;
end;
end;
3:begin {Преподаватель}
writeln('Выедите название предмета');
readln(str1);
tem1:=tt2;
while tem1nil do begin
if tem1^.tabl.t2=str1 then begin str1:=tem1^.tabl.t3; break; end;
tem1:=tem1^.sled;
end;
tem1:=tt3;
while tem1nil do begin
if tem1^.tabl.t1=str1 then begin
textcolor(red);
writeln('Преподаватель-');
with tem1^.tabl do write(' ',t2,', ',t3,', ',t4);
nay:=true; break;
end;
tem1:=tem1^.sled;
end;
end;
4:begin {Найти размер стипендии}
writeln('Введите фамилию студента');
readln(str1);
tem1:=tt1;
while tem1nil do begin
if tem1^.tabl.t2=str1 then begin
textcolor(red);
writeln('Стипендия-',tem1^.tabl.t5);
nay:=true; break;
end;
tem1:=tem1^.sled;
end;
end;
5:begin {Вывод всех студентов с избранной оценкой}
writeln('Введите оценку');
readln(str1);
tem1:=tt4; tem2:=tt1;
textcolor(red);
while tem1nil do begin
if tem1^.tabl.t2=str1 then begin
str2:=tem1^.tabl.t4;
while tem2nil do begin
if tem2^.tabl.t1=str2 then begin
with tem2^.tabl do
writeln('Студент-',t3,' ',t4,' ',t2);
nay:=true;
end;
tem2:=tem2^.sled;
end;
end;
tem2:=tt1; tem1:=tem1^.sled;
end;
end;
6:begin {Найти дату сдачи предмета}
writeln('Введите название предмета');
readln(str1);
tem1:=tt2;
while tem1nil do begin
if tem1^.tabl.t2=str1 then begin str1:=tem1^.tabl.t1; break; end;
tem1:=tem1^.sled;
end;
tem1:=tt4;
while tem1nil do begin
if tem1^.tabl.t5=str1 then begin
textcolor(red);
writeln('Дата сдачи-',tem1^.tabl.t3);
nay:=true;
end;
tem1:=tem1^.sled;
end;
end;
end;
textcolor(red);
if not nay then writeln('Запрос невыполним');
textcolor(3); readln;
nast:=menu1; menus(nast,nast.m);
tek:=2;
end;

procedure writetip(temr:cc);
begin
clrscr;
write('Введите имя файла');
writeln('в котором хотите сохранить данные');
readln(names);
for i:=1 to 4 do begin
if temrnil then begin temr:=nil; end;
case i of
1:begin temr:=tt1; namer:='1'+names; end;
2:begin temr:=tt2; namer:='2'+names; end;
3:begin temr:=tt3; namer:='3'+names; end;
4:begin temr:=tt4; namer:='4'+names; end;
end;
assign(outf,namer); rewrite(outf);
while temrnil do begin
write(outf, temr^.tabl);
temr:=temr^.sled;
end;
CLOSE(outf);
end;
nast:=menu1; menus(nast,nast.m); tek:=2;
end;

procedure readtip(temr:cc);
var tems:cc;
begin
clrscr;
write('Введите имя файла');
writeln('из которого надо взять данные'); readln(names);
for i:=1 to 4 do begin
if temrnil then begin temr:=nil; end;
if temsnil then begin tems:=nil; end;
case i of
1:begin new(tt1); temr:=tt1; namer:='1'+names; end;
2:begin new(tt2); temr:=tt2; namer:='2'+names; end;
3:begin new(tt3); temr:=tt3; namer:='3'+names; end;
4:begin new(tt4); temr:=tt4; namer:='4'+names; end;
end;
assign(outf,namer); reset(outf);
if eof(outf) then begin
case i of
1:begin dispose(tt1);tt1:=nil;end;
2:begin dispose(tt2);tt2:=nil;end;
3:begin dispose(tt3);tt3:=nil;end;
4:begin dispose(tt4);tt4:=nil;end;
end;
end
else begin
tems:=temr;
while temrnil do begin
if eof(outf) then break;
read(outf,temr^.tabl);
if eof(outf) then break;
new(temr^.sled);
temr:=temr^.sled;
end;
temr^.sled:=nil;
case i of
1:tt1:=tems;
2:tt2:=tems;
3:tt3:=tems;
4:tt4:=tems;
end;
end;
CLOSE(outf);
end;
nast:=menu1; menus(nast,nast.m); tek:=2;
end;

procedure main;
begin
key:=#0;
if nast.st[1]=menu1.st[1] then begin {Если меню - основное}
case tek of
2:readtip(temr);
3:writetip(temr);
4,5,7:begin
nast:=menu2; menus(nast,nast.m);
if tek=7 then issor:=true;
if tek=4 then vfile:=true
else if tek=5 then vfile:=false;
tek:=2;
end;
6:begin
nast:=menu3; menus(nast,nast.m); tek:=2;
end;
8:begin
nast:=menu4; menus(nast,nast.m); tek:=2;
end;
9: begin
exist:=true;
end;
end;
end

else if nast.st[1]=menu3.st[1] then begin {Если текущее меню-menu3}
case tek of
2,3,4:begin
izm:=tek-1;
nast:=menu2; menus(nast,nast.m); tek:=2;
end;
5:begin
nast:=menu1;
menus(nast,nast.m); tek:=2;
end;
end;
end

else if nast.st[1]=menu4.st[1] then begin {Если текущее меню-menu4}
case tek of
2,3,4,5,6:zapros(tek);
7:begin
nast:=menu1;
menus(nast,nast.m); tek:=2;
end;
end;
end

else if nast.st[1]=menu2.st[1] then begin {Если текущее меню-menu2}
if izm>0 then begin
case tek of
2:obrabotka(izm, tek-1,tt1);
3:obrabotka(izm, tek-1,tt2);
4:obrabotka(izm, tek-1,tt3);
5:obrabotka(izm, tek-1,tt4);
6:begin
nast:=menu1; menus(nast,nast.m); izm:=0; tek:=2;
end;
end;
end
else if issor=true then begin
issor:=false;
case tek of
2:sort(izm, tek-1,tt1);
3:sort(izm, tek-1,tt2);
4:sort(izm, tek-1,tt3);
5:sort(izm, tek-1,tt4);
6:begin
nast:=menu1; menus(nast,nast.m); izm:=0; tek:=2;
end;
end;
end

else begin
case tek of
2:if vfile then tabl11(tek,tt1)
else tabl1(tek,tt1,false);
3:if vfile then tabl11(tek,tt2)
else tabl1(tek,tt2,false);
4:if vfile then tabl11(tek,tt3)
else tabl1(tek,tt3,false);
5:if vfile then tabl11(tek,tt4)
else tabl1(tek,tt4,false);
6:begin
nast:=menu1; menus(nast,nast.m); izm:=0; tek:=2;
end;
end;
end;
end;
end;

begin
clrscr;
textBackground(black);
tek:=2; kr:='-';
exist:=false;
nast:=menu1; menus(nast,nast.m);
while 1>0 do begin
if keypressed then key:=readkey;
case key of
#80:ramka('+');
#72:ramka('-');
#27:exist:=true;
#13:main;
end;
if exist then exit;
krutis;
end;
end.
Текст модуля Tips.pas
Unit tips;
interface
type
pered=record
st:array[1..12] of string;
m:byte;
end;

tabl2=record
t1,t2,t3,t4,t5:string[12];
end;
cc=^tab;
tab=record
tabl:tabl2;
sled:cc;
end;

var
menu1,menu2,menu3,menu4:pered;
mm:array[1..5,1..5] of string[50];
implementation
begin
with menu1 do begin
st[1]:='БАЗА ДАННЫХ';
st[2]:='Загрузка';
st[3]:='Сохр. в тип. файл';
st[4]:='Сохр. в текст. файл';
st[5]:='Просмотр';
st[6]:='Корректировка';
st[7]:='Сортировка';
st[8]:='Запросы';
st[9]:='Выход';
m:=9;
end;
mm[1,1]:='Студенческий';
mm[1,2]:='Фамилия';
mm[1,3]:='Имя';
mm[1,4]:='Отчество';
mm[1,5]:='Стипендия';
mm[2,1]:='Код предмета';
mm[2,2]:='Название';
mm[2,3]:='Код преподав.';
mm[2,4]:='Время учебы';
mm[2,5]:='Курс';
mm[3,1]:='Код преподав.';
mm[3,2]:='Фамилия';
mm[3,3]:='Имя';
mm[3,4]:='Отчество';
mm[3,5]:='Начало работы';
mm[4,1]:='Код сдачи';
mm[4,2]:='Оценка';
mm[4,3]:='Дата сдачи';
mm[4,4]:='Студенческий';
mm[4,5]:='Код предмета';

with menu2 do begin
st[1]:='ПРОСМОТР';
st[2]:='Студенты';
st[3]:='Предметы';
st[4]:='Преподаватели';
st[5]:='Оценки';
st[6]:='Выход';
m:=6;
end;
with menu3 do begin
st[1]:='КОРРЕКТИРОВКА';
st[2]:='Добавление';
st[3]:='Удаление';
st[4]:='Изменение';
st[5]:='Выход';
m:=5;
end;
with menu4 do begin
st[1]:='ЗАПРОСЫ';
st[2]:='Найти оценку';
st[3]:='Кто принимал экзамен';
st[4]:='Найти размер стипендии';
st[5]:='Вывод по оценке';
st[6]:='Дата сдачи экзамена';
st[7]:='Выход';
m:=7;
end;
end.
-----------------------
[pic]

[pic]

Рис. 1

[pic]

Рис. 2

Рис. 3

[pic]

[pic]

Рис. 4

[pic]

[pic]







Реферат на тему: Разработка верхнего уровня Информационной Системы Университета

Реферат

ОТчЕТ 91 С., 34 РИСУНКА, 15 ТАБЛИЦ, ИСТОчНИКА, 3 ПРИЛОЖЕНИя

АЛГОРИТМ, БЛОК СХЕМА, ОБЪЕКТ УПРАВЛЕНИЯ,
ИНФОРМАЦИОННАЯ СИСТЕМА УНИВЕРСИТЕТА,
ПАКЕТ, СООБЩЕНИЕ, УСТРОЙСТВО, ФУНКЦИОНАЛЬНА СХЕМА

Объект исследования представляет собой систему обмена и передачи
информации между студентами, преподавателями университета и сторонними
лицами. В процессе проектирования была разработана полномасштабная
функциональная схема верхнего уровня и схема ее положения и внедрения в
существующую Информационную Систему Университета. Представлено описание
функционирования верхнего уровня ИСУ. Описана входная и выходная
информация. Разработана структура и формат пакетов, циркулирующих в ИСУ.
Спроектированы модульные схемы алгоритмов. Описаны все информационные
массивы и переменные, используемые для четкого и надежного функционирования
ИСУ. Разработаны способы и средства, обеспечивающие надежность ИСУ.



Содержание

ВВЕДЕНИЕ 0
1. Характеристика существующей Информационной Системы Университета 0
2. Описание и характеристика задач 0
2.1. Краткое описание всех задач поставленных перед ИСУ 0
2.2. Описание задач первой группы 0
2.3. Описание задач второй группы 0
2.4. Требования к программе 0
2.4.1. Требования к функциональным характеристикам 0
2.4.2. Требования к составу и параметрам технических средств 0
2.4.3. Требования к информационной и программной совместимости 0
2.5. Предварительная оценка технико–экономических показателей 0
3. Полномасштабная функциональная схема верхнего уровня ИСУ 0
4. Описание функционирования верхнего уровня ИСУ (Сервер) 0
4.1. Инициализация системы 0
4.2. Прием сообщений от нижнего уровня 0
4.3. Отправка сообщений на нижний уровень 0
4.4. Другие функции выполняемые в системе 0
4.5. Администрирующие функции системы 0
4.6. Функции работы с клиентом 0
5. Описание функционирования верхнего уровня ИСУ (Клиент) 0
5.1. Регистрация пользователя 0
5.2. Отправка объявления Серверу 0
5.3. Прием сообщений от Сервера 0
6. Входная и выходная информация 0
7. Формат и структура пакетов, циркулирующих в ИСУ 0
8. Модульная схема алгоритмов 0
8.1. Алгоритм процедуры (Control) 0
8.2. Алгоритм процедуры (Order) 0
8.3. Алгоритм процедуры перемещения данных (Datas_up) 0
8.4. Алгоритм процедуры перемещения данных (Datas_Down) 0
8.5. Алгоритм инициализации системы(Init) 0
8.6. Алгоритм процедуры ожидания (Waiting) 0
8.7. Алгоритм процедуры обработки объявлений (Processing) 0
8.8. Алгоритм процедуры взаимодействия с удаленным клиентом
(Interaction) 0
8.9. Алгоритм процедуры получения приоритета (Get_priority) 0
8.10. Алгоритм процедуры приема сообщения (Get_message) 0
8.11. Алгоритм процедуры отправки объявления (Send_message) 0
8.12. Другие процедуры ИСУ. 0
9. Описание информационных массивов 0
9.1. Информационные массивы Сервера 0
9.1.1. Массив объявлений 0
9.1.2. Динамический массив 0
9.1.3. Оперативная справка 0
9.1.4. Долгосрочная справка 0
9.1.5. Массив сообщений в системе 0
9.1.6. Массив сообщений 0
9.1.7. Временный массив объявлений 0
9.1.8. Массив не опубликованных объявлений 0
9.1.9. Устройства 0
9.1.10. База данных пользователей 0
9.2. Информационные массивы Клиента 0
10. Надежность ПО 0
10.1. Аналитические модели надежности 0
10.2. Динамические модели надежности 0
10.3. Статические модели надежности 0
10.4. Эмпирические модели надежности 0
10.5. Количественный расчет надежности 0
Заключение 0
Список использованных источников 0
Приложение 1 - Функциональная схема "Сервер". Подсистемы Управления и
Интерфейсная. 0
Приложение 2 - Функциональная схема "Сервер". Подсистема взаимодействия с
"Клиентом". 0
Приложение 3 – Функциональная схема "Клиент". 0


Перечень условных обозначений, символов, едИниц и терминов

ID – ИДЕНТИФИКАТОР ПРИСУТСТВИя (IDENTIFICATION)
Админ – Администратор системы
БДП – База данных пользователей
Вх – Входной
Вых – Выходной
ИСУ – Информационная Система Университета
ЛВС – Локальная вычислительная сеть
Мас (Mas) – Массив
П – Процедура
ПК – Персональный компьютер
ПО – Програмное обеспечение
Т – Таймер



Введение

Наступившее третье тысячелетие характеризуется большим потоком
информации. Сейчас не секрет, что именно информация считается одним из
двигателей прогресса. Она является всеобщей и универсальной
производительной силой общества /1/. Применение информации снижает энтропию
общественного производства. Для различных государственных и не
государственных структур обладание достоверной и оперативной информацией
считается, чуть ли не секретным оружием. Имея доступ к необходимой
информации, осуществляется планирования производства, планов переговоров,
давление на партнеров и конкурентов, повышения эффективности принятых
решений. Для обычных людей обладание информацией позволяет экономить при
приобретении различных видов продукции, выбирать того или иного поставщика
или производителя.
Информация лежит в основе управления. Этот принцип представлен на
рисунке 1.



Для ее передачи, обработки было придумано огромное количество
устройств, способов, средств и алгоритмов. Несомненно, на данный момент
Internet занимает первые и лидирующие позиции как источник всемирной
информационной базы. Все большее совершенствование персональных компьютеров
позволяет многим людям присоединиться к этой всемирной информационной сети.
Предприятия, правительственные организации переходят или собираются в
ближайшем будущем перейти на электронные средства предоставления
информации.
Под электронными средствами понимается не только персональные
компьютеры, но и различные бегущие строки, графические экраны, мониторы,
информационные табло, такие как:
табло для котировок акций;
табло для казино;
табло процентных ставок;
табло для футбольных, баскетбольных и др. полей.
Все эти электронные устройства в большинстве своем оснащенные
автоматическим или автоматизированным управлением позволяют упростить и
повысить эффективность работу людей.
В основе диплома лежит оперативные, качественные и своевременные
способы предоставления информации конечным пользователям. Для этого были
выбраны выше описанные средства предоставления информации, объединенные в
единую сеть с единым центром автоматизированного управления. Что позволяет
в короткие сроки информировать людей, о различных аспектах работы
университета.
Информационная Система Университета (ИСУ) позволяет не только
опубликовывать различные объявления кафедр, деканатов, но и включает
возможность размещения различных поздравлений, рекламы, экстренных
сообщений. Что позволит открыть еще одну статью доходов университета.
Повысит его статус и имидж.

1. Характеристика существующей Информационной Системы Университета

Что значит информационная система университета? Это способ донести
информацию до ее потребителя. Информация может быть различного характера и
предназначается различным потребителям. Основные потребители информации это
студенты. Источники информации также различны, это могут быть кафедры,
деканаты, различные другие обучающие учреждения. Также к источникам можно
отнести различные торговые предприятия или предприятия, оказывающие какие
либо услуги клиентам, которыми могут быть студенты или преподаватели
университета.
Большое количество информации предназначено ограниченному кругу людей.
Это может быть, какое либо объявление кафедры или деканата предназначенное
студентам определенной группы. Деканат курирует работу всего факультета, и
объявления деканата касаются всех студентов данного факультета. Кафедра
действует более уже, и любые объявления касаются только студентов той
специальности, к чьей кафедре они прикреплены.
Для донесения необходимой информации студентам, каждая кафедра и
деканат имеют свои доски объявления. Доска объявления представляет собой
квадратную или прямоугольную доску, либо рейки на которые натянута материя.
На данные доски вывешиваются бумажные объявления о том или ином событии.
Прикрепляться объявления могут различным способом. Это могут быть иголки,
скрепки, булавки, кнопки или скотч. Объявления, вывешиваемые на длительный
срок, могут помещаться под стекло.
Информация, касающаяся большинства людей, вывешивается на доску
объявления находящуюся в холе университета. Любой студент или преподаватель
может повесить свое объявление на данную доску. Это также верно и для
различных торговых и производственных организаций.
Недостатки данной бумажной системы являются:
неконтролируемое вывешивание объявлений;
объявления, потерявшие свою актуальность, продолжают находиться на доске
объявлений;
возможны случайные обрывы, в случае важности вывешенной информации
возникает необходимость постоянного контроля за объявлением;
ни кто не гарантирует, что вывешенное объявление, ни кто не сорвет и не
выбросит;
при потери объявления, восстановление его занимает достаточно много
времени. Это связано с тем, что бумажное объявление следует написать или
если оно набрано на персональном компьютере, его нужно распечатать, для
того чтобы распечатать, нужен принтер и т.д.;
также большое количество бумажных объявлений можно увидеть на стеклах и
стенах университета, но это зависит только от культуры студентов,
преподавателей и других людей, посещающих университет;
постоянная нехватка иголок, скрепок и т.д. не всегда гарантирует
своевременное вывешивание объявления.
Предлагаемая система на базе электронных средств предоставления
информации не в коем случае не претендует на универсальность. У нее также
есть свои недостатки и достоинства. Но она способна улучшить качество,
надежность и своевременность предоставления информации потребителям.


2. Описание и характеристика задач


2.1. Краткое описание всех задач поставленных перед ИСУ

Задачи, поставленные перед Информационной Системой Университета можно
разделить на 2 группы. Задачи, обеспечивающие функционирование системы и
задачи, выполняемые самой системой. Данное разделение весьма условно, так
как большинство задач можно отнести как к первой, так и ко второй группе.
К первой группе относятся задачи обеспечивающее надежное
функционирование системы, качественное выполнение всех функций, быстрота
работы системы в целом, не должно быть потерь информации во время
функционирования системы, устранение ошибок взаимодействия всех частей ИСУ,
минимизация исходного текста программы, способность системы однозначно
реагировать на любое внешнее или внутреннее воздействие, отсутствие
неопознанных или неописанных сообщений в системе.
Ко второй группе относятся задачи: корректный вывод объявлений на
любое из устройств функционирующих в системе, способность удаленной подачи
объявления, возможность выделения объявлений по важности, способность
запрета подачи объявления, какому либо пользователю или группе
пользователей, способность получения информации о функционировании системы
в любой момент времени, способность определения кто, когда и сколько раз
подавал свои объявления в систему, полный сбор всей статистической
информации.

2.2. Описание задач первой группы

Обеспечение надежности связано с тем, что во время функционирования
системы большой объем информации циркулирующей в системе находиться во
временных массивах оперативной памяти, система должна в случае отключения
восстановить всю исходную информацию на время выхода системы из строя. Это
обеспечивается за счет введения некоторой избыточности в хранение
информации, а именно все переменные, отвечающие за правильное
функционирование системы, имею свои копии на жестком диске, и при
восстановлении ИСУ вся информация находящаяся на диске переписывается во
временные массивы, что позволяет полностью восстановить систему на момент
отключения.
При выходе из строя, каких либо устройств системы, система остается
работоспособной. Это осуществляется за счет четкого разграничения верхнего
уровня системы и нижнего. Система остается работоспособной даже в случае
отказа работы локальной сети, в которой функционирует ИСУ. В данном случае
все объявления можно подавать через администратора системы или через
терминал, который непосредственно подключен к серверу обеспечивающего
работу ИСУ.
Задачи качества и быстродействия выполняются за счет детальной
проработки всех функций выполняемых в системе. Под детальной проработкой
понимаются рассмотрение всех возможных ситуаций возникающих в системе и
оптимизация реакций на них. Четкое разделение задач. Слаженная и
однозначная работа всех систем ИСУ.
Обеспечение отсутствия потерь информации также связано с некоторой
избыточностью. Т.е. вся информация поступающая в систему сохраняется во
временных массивах. Структура данных массив имеет несколько копий, при
поступлении нескольких сообщений они сохраняются в данных массивах, и
ожидают своей очереди, пока сервер не закончит обработку предыдущих
сообщений.
Оптимизация исходного текста программы обеспечивается за счет
применения методов технологии программирования и выбора языка
программирования.
Способность системы однозначно реагировать на любое внешнее или
внутреннее воздействие, отсутствие неопознанных или неописанных сообщений в
системе обеспечиваются за счет детального рассмотрения всех возможных
ситуаций возникающих в системе и вариантов реагирования на них.

2.3. Описание задач второй группы

Корректный вывод объявлений на любое из устройств, функционирующих в
системе, обеспечивается за счет проработки правил взаимодействия всех
устройств включенных в ИСУ.
Способность удаленной подачи объявления обеспечивается за счет
включения ИСУ в локальную сеть университета и разработке приложения
отвечающего за корректное взаимодействие с сервером. Данное приложение
взаимодействует с частью сервера, которая отвечает за правильный прием
сообщений от клиента, обработку всех сообщений принятых от клиента и в
случае обнаружения ошибок обладает возможностью информировать клиента.
Удаленная подача объявлений может быть расширенна за счет возможности
подачи объявления по средствам глобальной сети Internet. Учитывая тот факт,
что локальная сеть университета, имеет выход в Internet, но в целях
обеспечения надежности системы нельзя непосредственно подать объявление, не
находясь в стенах университета. Подача объявления возможна по средствам
оформления электронного письма на имя администратора системы. После
получения письма администратор принимает решения об опубликовании данного
объявления в системе с соответствующим приоритетом. В противном случае
администратор имеет возможность ответить отказом автору письма с
обоснованием или отсутствием объяснения отказа.
Администратор системы имеет возможность в любой момент времени
считать, просмотреть или распечатать необходимую статистическую информацию.
Это возможно за счет постоянного слежения и запоминание системы всех своих
действий.
Все эти задачи более детально будут рассмотрены и описаны по ходу
проектирования системы.

2.4. Требования к программе


2.4.1. Требования к функциональным характеристикам

Требование к выполнению функций:
работа в режиме реального масштаба времени;
обеспечить надежность функционирования системы и защиту от сбоев;
должен осуществляться принцип интегральной обработки информации, т.е.
полное использование АСУ для автоматического обеспечения максимального
числа функций для объекта и результатов пользователя АСУ;
ввод информации должен производиться только однажды, в систему не вводились
данные, которые могут быть выработаны внутри системы.
Функции, выполняемые программой.
Интуитивно понятный интерфейс. Регистрация событий на объекте,
отображение всех действий выполняемых на нижнем уровне в реальном масштабе
времени Запись всех событий в базу данных. Управление всей системой или
отдельными объектами.
Поддерживать базу данных пользователей, Функции добавления, удаления,
редактирования данных о пользователе.
Просмотр и печать отчетов по времени, проведенному сотрудником на
рабочем месте, опозданиям и переработкам, выбранных по дате, типу и номеру
карты, фамилии и т.д.
Требование к надежности.
Требования к надежности программного обеспечения, как к АСУ реального
масштаба времени:
соблюдение рангов и приоритетов подпрограмм, где подсистема реализующая
управление имеет более высокий ранг выполнения, чем остальные подсистемы;
система должна осуществлять проверку выполнения команд и передавать
информацию обо всех своих действиях;
опрос состояния объекта управления и осуществление управления;
осуществление механизма проверки данных получаемых от объекта на
достоверность;
программа должна вести протоколы текущего состояния, прошедших событий,
аварийных ситуаций.
Протокол должен представлять собой структуру данных, хранящуюся на
жестком диске компьютера хранящую в себе данные о состоянии объекта на
промежутке времени. Администратору должна быть предоставлена возможность,
осуществлять такие операции над протоколом: просмотр и печать.
Режим редактирования должен быть защищен паролем от
несанкционированного доступа.
Новые значения должны немедленно вводиться в действие.
Программа должна также соответствовать следующим требованиям
надежности:
контроль выполнения большинства операций в программе, анализ их результатов
на присутствие ошибок, выяснение причины ошибок (например, с помощью
анализа результатов работы процедур и функций программы, отслеживания
возникновения особых случаев), исправление ошибочных ситуаций при помощи
специальных процедур обработки ошибок и особых случаев;
защита от некорректных действий пользователя программы. Данный вид защиты
может осуществляться с использованием некоторых специальных свойств пунктов
меню программы и кнопок панели инструментов программы (а также кнопок в
диалогах и формах). При невозможности выполнения какого-либо действия в
определенный момент времени (это зависит от текущей выполняющейся операции)
соответствующий этому действию пункт меню или кнопка должны быть отмечены
"потухшим" изображением и являться недоступными пользователю в этот момент
времени. Должны быть доступны только те пункты меню и кнопки, нажатие
которых активизирует действия, не "конфликтующие" с текущей выполняющейся
операцией или текущим режимом работы программы.

2.4.2. Требования к составу и параметрам технических средств

Для эксплуатации программы требуется IBM-совместимый персональный
компьютер.
К комплектации и параметрам компьютера предъявляются следующие
требования:
процессор Pentium 366;
объем ОЗУ – 64 МБ;
жесткий диск емкостью 3,2 ГБ;
видеоадаптер;
монитор SVGA;
принтер для печати отчетов.
Принимая во внимание то, что эксплуатироваться программа будет в среде
операционной системы Windows NT, которая предъявляет довольно высокие
требования к параметрам и быстродействию компьютера.

2.4.3. Требования к информационной и программной совместимости

Поставленная задача должна быть реализована программным путем, т.е.
написана на каком-либо языке программирования, должна быть определена
операционная система. Соответственно перечисленным критериям можно провести
характеристику вариантов решения поставленной задачи.
Для того чтобы приступить к написанию программы обеспечивающую
работоспособность будущей Информационной Системы Университета, следует
рассмотреть возможные типы интерфейса программы. Среди существующих
вариантов можно выделить два основных типа: на основе меню и на основе
языка команд.
Интерфейсы типа меню облегчают взаимодействие пользователя с
компьютером, поскольку снимают необходимость заранее изучать язык
общения с системой. Такой способ особенно удобен для начинающих и
непрофессиональных пользователей.
Интерфейс на основе языка команд требует знания пользователем
нужных команд и их синтаксиса. Достоинство командного языка заключается в
его мощности и гибкости.
Указанные два основных типа интерфейса представляют собой крайние
случаи, между которыми существует множество промежуточных вариантов. Меню и
командные языки дополняют друг друга, поэтому в интерфейсах многих
современных систем присутствуют оба этих средства. В связи с тем, что
программой, возможно, будут пользоваться люди мало знающих компьютер, но
желающих опубликовать свое объявление в ИСУ, следует остановиться на
интерфейсе экранная форма. Это обеспечить комфортность работы, как
администратора системы, так и рядового пользователя. Основные преимущества
данного интерфейса:
пользователь может отредактировать некоторый ответ перед вводом;
он может временно пропустить вопросы и возвращаться к ответу на
предыдущий вопрос, т.е. пользователь может работать с формой до тех пор,
пока он, удовлетворенный своей работой, не нажмет определенную клавишу,
означающую конец ввода;
компьютерная система может проверить каждый ответ непосредственно после
ввода или же выдавать список ошибок только после заполнения формы целиком.
В начале хотелось бы рассмотреть операционную систему MS DOS, которая
соответствует интерфейсу командной строки. Преимуществами данной системы
являются: низкие требования к ресурсам компьютера, простота ее устройства,
что предоставляет программисту определенную свободу действий. В то же
время она обладает большим количеством недостатков некоторые, из которых
хотелось бы перечислить: очень неразвитый интерфейс с пользователем,
поэтому большая нагрузка ложиться на программиста при реализации более
развитого и понятного интерфейса, данная ОС не имеет возможности адресовать
более 1 Мб оперативной памяти, что накладывает определенные ограничения при
программировании. Система MS DOS не поддерживает режим многозадачности,
поэтому программу защиты необходимо реализовывать в виде резидентной
программы, что является кропотливой и трудной работой. Исходя из
вышеперечисленного, можно сделать вывод, что реализация данного проекта в
системе MS DOS /2/ не является оптимальным решением. Можно рассмотреть
графическую надстройку MS DOS оболочку Windows 3.x, данная оболочка
предоставляет программисту больше возможностей при построении развитого
графического интерфейса, но она наследует такие недостатки, как очень
неразвитую систему поддержки многозадачности, что является необходимым при
реализации данного проекта.
В настоящее время наиболее распространенной операционной системой
является — система Windows 95 фирмы Microsoft, эта ОС имеет ряд очень
выгодных преимуществ во первых это высокоразвитый графический интерфейс,
что очень ценится пользователями. Предоставляет программисту большое
количество разнообразных функций API Win32, которые дают широкие
возможности по построению того же интерфейса, более удобное управление
памятью компьютера, которая перестала быть сегментированной и имеет
ограничение при адресации 4 Гб, что вполне достаточно. Еще одним
преимуществом является встроенная поддержка сетевых коммуникаций, что при
реализации работы является насущной необходимостью. Предоставлены такие
механизмы, передачи данных между программами, как DDE — динамический обмен
данными, буфер обмена и OLE 2 — связывание и внедрение объектов. Достаточно
хорошо реализован механизм не вытесняющей многозадачности и
многопоточности. Операционная система Windows 95 избавила программистов от
необходимости писать в программах вставки на языке Ассемблер, что является
трудным занятием. Во многом эта ОС подходит для реализации работы, но в
ней отсутствует возможность управлять приоритетами программ, так для
обеспечения надежности при достижении необходимой частоты опроса подсистема
управления должна иметь более высокий ранг приоритета выполнения по
сравнению с остальной частью.
Операционная система Windows NT 4.0 /3/ включает в себя все
достоинства Windows 95, и также является наиболее устойчивой к сбоям в
программном обеспечении. Включа

Новинки рефератов ::

Реферат: Контрольная по педагогике (Педагогика)


Реферат: Крещение на Руси (История)


Реферат: Гражданское право (Гражданское право и процесс)


Реферат: Проект организации бухгалтерского учета в условиях внутрихозяйственного коммерческого расчета (Бухгалтерский учет)


Реферат: Основы социокультурного проектирования (Социология)


Реферат: Политический конфликт в истории человеческих отношений (История)


Реферат: Анализ состояния и перспективы развития транспортной системы (Транспорт)


Реферат: Обмен веществ и энергии в живых организмах (Биология)


Реферат: Движение - это жизнь и здоровье (Спорт)


Реферат: Национально-освободительное движение на Украине в 1-ой половине XIX века (История)


Реферат: Институты самоуправления в дореформенной России (История)


Реферат: Президент Российской Федерации (Право)


Реферат: Исследование телевизионного индикатора (Программирование)


Реферат: Учет уставного капитала (Бухгалтерский учет)


Реферат: Криминологическая характеристика и профилактика преступлений, относящихся к компетенции ОВД (Криминология)


Реферат: Социальное страхование (Страхование)


Реферат: Культура древней Греции (История)


Реферат: Современные теории лидерства (Менеджмент)


Реферат: Сознание как отражение и деятельность (Философия)


Реферат: Крылатые ракеты (Военная кафедра)



Copyright © GeoRUS, Геологические сайты альтруист