на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Создание информационного банка данных "Успеваемость студентов"
p align="left">Разработка меню

Меню проекта располагается в верхней строке экрана. Своим присутствием оно создает значительные удобства пользователям для работы с базой данных. После открытия проекта пользователям необходимо запустить на выполнение меню и из него можно выбирать нужные команды.

В меню программы имеются две вкладки: «Поиск» и «Фильтр».

В вкладке меню «Поиск» находятся еще четыре команды: «Найти», «поиск вперед», «поиск назад», «по всем группам» (Рисунок 6.2).

Рисунок 6.2 - Вкладка главного меню «Поиск»

Команда «Найти» означает поиск данных определенного студента либо в определенной группе, либо какой-либо группы в определенном факультете (Рисунок 6.3).

Рисунок 6.3 - Окно «Поиск»

При поиске активизируются команды «поиск вперед», «поиск назад». При нажатии этих команд идет дальнейший поиск входных данных. При этом, если эти данные не найдены, выдается сообщение об этом (Рисунок 6.4).

Рисунок 6.4 - Сообщение о результате поиска

Команда «по всем группам» предназначена для поиска нужных фамилий студентов не в одной группе, а во всех группах всех факультетов (Рисунок 6.5).

Рисунок 6.5 - Окно поиска по всем группам

Во вкладке «Фильтр» имеется две команды: «Включить», «Отключить». При выборе комнады «Включить» открывается форма для фильтрации фамилий студентов. Здесь пользователь вводит фамилию студента, котрого он ищет (Рисунок 6.6).

Рисунок 6.6 - Окно фильтрации

При нажатии кнопки Пуск происходит фильтрация в нужной группе по введенной фамилии (Рисунок 6.7).

Рисунок 6.7 - Фильтрация по фамилии

Если пользователь выбирает команду «Отключить» из главного меню, то фильтрация отключается.

Заключение

Информационный банк данных «Успеваемость студентов», разработанный в ходе выполнения курсового проекта, является актуальным на сегодняшний день, так как все вузы нуждаются в автоматизации управления. Нами были приобретены навыки программирования на языке Object Pascal в среде Delphi 7.0. Также мы научились разрабатывать собственные алгоритмы для решения поставленных задач, овладели методами и средствами отладки и тестирования программ.

Разработанная нами программа устойчиво выполняет все свои функции, но для использования ее в вузах, она требует некоторых доработок: программным путем обеспечить безопасность данных, расширить возможности поиска (поиск по двум и более полям), и т.д.

Список используемой литературы

1. А.Я. Архангельский Программирование в Delphi 7

2. А. Микляев «Учебник пользователя IBM PC», Москва - 2000

Приложение А

Программный код информационного банка данных

1. Листинг модуля «UnitZastavka»

Var

Form5: TForm5; path:string;

procedure TForm5. FormCreate (Sender: TObject);

begin

getDir (0, path);

mediaplayer1. FileName:=path+'\BART.AVI';

mediaplayer1. Open; // проигрывается заставка

mediaplayer1. Play;

form5. Close;

form1. Top:=50;

end;

end.

2. Листинг модуля «UnitMainForm»

Var

Form1: TForm1;

Cond_of_search:TTable; Field_of_search, Require:string;

CurrentRec1, CurrentM:string; CurrentRecord, CurrentRecord_S:variant;

CurrentRec2:longint; // при возврате связи используются запомненные счетчики

DataSource_On_Off:TDataSource;

procedure TForm1. Table2CalcFields (DataSet: TDataSet);

Var r:real;

s_r:string;

begin // Вычисляемое поле «Средний балл»

r:=(Table2. FieldByName('1atest').AsInteger+

Table2. FieldByName('2atest').AsInteger+

Table2. FieldByName('3atest').AsInteger)/3;

s_r:=floatToStr(r);

Delete (s_r, 4, length (s_r));

Table2. FieldByName ('Sr_b').AsString:=s_r;

end;

procedure TForm1. Table2BeforeClose (DataSet: TDataSet);

begin // если таблица до закрытия была в режиме

with Table2 do // редактирования или вставки

if ((State=dsInsert) or (State=dsEdit))

then Post; // изменения сохраняются

end;

procedure TForm1. Table3BeforeClose (DataSet: TDataSet);

begin // если таблица до закрытия была в режиме

with Table3 do // редактирования или вставки

if ((State=dsInsert) or (State=dsEdit))

and (FieldByName('Familiya').AsString>'')

then Post; // изменения сохраняются

end;

procedure TForm1. Table4BeforeClose (DataSet: TDataSet);

begin // если таблица до закрытия была в режиме

with Table4 do // редактирования или вставки

if ((State=dsInsert) or (State=dsEdit))

then Post; // изменения сохраняются

end;

procedure TForm1. Table5BeforeClose (DataSet: TDataSet);

begin // если таблица до закрытия была в режиме

with Table5 do // редактирования или вставки

if ((State=dsInsert) or (State=dsEdit))

then Post; // изменения сохраняются

end;

procedure TForm1.mnFindClick (Sender: TObject);

begin // команда «Найти» в гл. меню

if form3. ShowModal = mrOK then

begin

mnSearchForward. Enabled:=true; // делаем доступными пункты «вперед, назад»

mnSearchBack. Enabled:=true; // до входа на Form3 они не доступны

if Form3. ComboBox1. ItemIndex<2 then begin // Выбраны группа или количество

CurrentM:='Gruppa'; // первичный ключ, поиск в Table5

Cond_of_search:= TTable (FindComponent('Table5'));

DataSource_On_Off:= TDataSource (FindComponent('DataSource5'));

end

else

begin

CurrentM:='N_stud'; // автоинкриментное поле, поиск в Table3

Cond_of_search:= TTable (FindComponent('Table3'));

DataSource_On_Off:= TDataSource (FindComponent('DataSource3'));

end;

if Cond_of_search=Table2 then // рвем связь, чтобы встать

 // на первую запись в Table3

Table2. MasterSource:=nil; // идет повторный запрос на разрыв связи

Cond_of_search. First;

CurrentRecord:=null; // если не находим,

mnSearchForward. Click; // вызываем поиск вперед

end;

end;

procedure TForm1.mnSearchForwardClick (Sender: TObject);

begin // команда "Поиск вперед»

if Cond_of_search=Table3 then

Table3. MasterSource:=nil; // рвем связи

with Cond_of_search do

begin

DataSource_On_Off. DataSet:=nil; // на время поиска

 // отключаем визуальные компоненты

CurrentRecord_S:=FieldValues[CurrentM]; // запоминаем куда

 // возвращаться после поиска

CurrentRec1:=table3. FieldByName('Gruppa2').AsString;

CurrentRec2:=table3. FieldByName ('N_stud').AsInteger;

if CurrentRecord=FieldValues[CurrentM] then next; // чтобы сойти с

 // найденной записи дальше

while not Eof do

begin

if FieldValues [Field_of_search]=Require then

begin

CurrentRecord:=FieldValues[CurrentM]; // запоминаем для

 // следующего схода

if Table3. MasterSource=nil then begin // при «поиске вперед»

CurrentRec1:=table3. FieldByName('Gruppa2').AsString;

Table3. MasterSource:=DataSource5; // возвращаем связь таблиц

Table5. Locate ('Gruppa', CurrentRec1, []); // и локализуемся

 // на найденную запись

Table3. Locate ('N_stud', CurrentRecord, []);

end;

DataSource_On_Off. DataSet:=Cond_of_search; // возвращаем подключение визуальных компонентов

exit

end;

Next

end;

if Table3. MasterSource=nil then

Link_On

else

Locate (CurrentM, CurrentRecord_S, [loCaseInsensitive]); // возвращаемся по окончании поиска

 // на последнюю найденную или стартовую запись

end;

DataSource_On_Off. DataSet:=Cond_of_search; // возвращаем подключение визуальных компонентов

showmessage ('не найдено');

end;

procedure TForm1. Link_On;

begin // возвращаем связь таблиц

Table3. MasterSource:=DataSource5;

Table5. Locate ('Gruppa', CurrentRec1, []);

Table3. Locate ('N_stud', CurrentRec2, []);

end;

procedure TForm1. Link_Off;

begin

CurrentRec1:=table3. FieldByName('Gruppa2').AsString;

CurrentRec2:=table3. FieldByName ('N_stud').AsInteger;

Table3. MasterSource:=nil // рвем связь таблиц

end;

procedure TForm1.mnSearchBackClick (Sender: TObject);

begin // Команда "Поиск назад»

if Cond_of_search=Table3 then

Table3. MasterSource:=nil;

with Cond_of_search do

begin

DataSource_On_Off. DataSet:=nil; // на время поиска отключаем

 // визуальные компоненты

CurrentRecord_S:=FieldValues[CurrentM]; // запоминаем куда

 // возвращаться после поиска

CurrentRec1:=table3. FieldByName('Gruppa2').AsString;

CurrentRec2:=table3. FieldByName ('N_stud').AsInteger;

if CurrentRecord=FieldValues[CurrentM] then prior; // чтобы сойти с

 // найденной записи дальше

while not Bof do

begin

if FieldValues [Field_of_search]=Require then

begin

CurrentRecord:=FieldValues[CurrentM]; // запоминаем для

 // следующего схода при «поиске вперед»

if Table3. MasterSource=nil then begin

CurrentRec1:=table3. FieldByName('Gruppa2').AsString;

Table3. MasterSource:=DataSource5; // возвращаем связь таблиц

Table5. Locate ('Gruppa', CurrentRec1, [loCaseInsensitive]);

 // и локализуемся на найденную запись

Table3. Locate ('N_stud', CurrentRecord, [loCaseInsensitive]);

end;

DataSource_On_Off. DataSet:=Cond_of_search; // возвращаем

 // подключение визуальных компонентов

exit

end;

Prior

end;

if Table3. MasterSource=nil then

Link_On

else

Locate (CurrentM, CurrentRecord_S, [loCaseInsensitive]); // возвращаемся по окончании поиска на последнюю найденную или стартовую запись

end;

DataSource_On_Off. DataSet:=Cond_of_search; // возвращаем подключение визуальных компонентов

showmessage ('не найдено');

end;

procedure TForm1. FormClose (Sender: TObject; var Action: TCloseAction);

begin // При закрытии формы

Table4BeforeClose(Table4);

Table5BeforeClose(Table5);

Table3BeforeClose(Table3);

Table2BeforeClose(Table2);

if Table5. Modified then Table5. Post; // если в таблицах

if Table4. Modified then Table4. Post; // были изменения

if Table3. Modified then Table3. Post; // их сохраняем

if Table2. Modified then Table2. Post;

if Table1. Modified then Table1. Post;

Table5. Close;

Table4. Close;

Table3. Close;

Table2. Close;

Table1. Close;

end;

procedure TForm1. Table4AfterOpen (DataSet: TDataSet);

begin

table4. Edit; // ставим в режим редактирования

end;

procedure TForm1. Table5AfterOpen (DataSet: TDataSet);

begin

table5. Edit; // ставим в режим редактирования

end;

procedure TForm1. Table3AfterOpen (DataSet: TDataSet);

begin

table3. Edit; // ставим в режим редактирования

end;

procedure TForm1. Table2AfterOpen (DataSet: TDataSet);

begin

table2. Edit;

end;

procedure TForm1.mnFilter_OnClick (Sender: TObject);

begin // при выборе команды «Включить фильтр»

form2.show;

end;

procedure TForm1.mnFilter_OffClick (Sender: TObject);

begin // при выборе команды «Отключить фильтр»

Table3. Filtered:=false;

end;

procedure TForm1.N4Click (Sender: TObject);

begin // Команда «Поиск по всем группам»

Form4.show;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

Table4. Open; // открываем таблицы

Table5. Open;

Table3. Open;

Table1. Open;

Table2. Open;

Animate1. ResName:= 'bAvi'; // подключаем анимацию

Animate1. Active:= True;

end;

procedure TForm1.DBGrid4MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin // к Table4 подключаем Navigator

DbNavigator1. DataSource:=Datasource4;

end;

procedure TForm1.DBGrid5MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin // к Table5 подключаем Navigator

DbNavigator1. DataSource:=Datasource5;

end;

procedure TForm1.DBGrid3MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin // к Table3 подключаем Navigator

DbNavigator1. DataSource:=Datasource3;

end;

procedure TForm1.DBGrid2MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin // к Table2 подключаем Navigator

DbNavigator1. DataSource:=Datasource2;

end;

procedure TForm1. Table4AfterInsert (DataSet: TDataSet);

begin

Table4. Post;

end;

procedure TForm1. Table2AfterInsert (DataSet: TDataSet);

begin // после вставки сохраняем изменения

Table2. Post;

end;

procedure TForm1. Table5AfterInsert (DataSet: TDataSet);

begin // после вставки сохраняем изменения

Table5. Post;

end;

procedure TForm1. Table3AfterInsert (DataSet: TDataSet);

begin // после вставки сохраняем изменения

Table3. Post;

end;

end.

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.