Программная реализация.
Компьютерный учет посещаемости и успеваемости
На форме расположены две кнопки «Работа с табелем посещаемости» и «Работа с аттестационной ведомостью». При первоначальной загрузке кнопка «Работа с аттестационной ведомостью» не активна, так как прежде чем начать работу с аттестационной ведомостью, необходимо провести работу с табелем посещаемости. При нажатии на кнопку «Работа с табелем посещаемости» открывается форма для работы с табелем… Читать ещё >
Программная реализация. Компьютерный учет посещаемости и успеваемости (реферат, курсовая, диплом, контрольная)
Программный продукт «Компьютерный учет посещаемости и успеваемости» условно разделен на две части — это просчет и анализ посещаемости, и просчет и анализ успеваемости учащихся.
Программа состоит из 14 форм, из которых:
- 1. Zastav_form — форма заставки, которая появляется до полной загрузки приложения.
- 2. Parol_form — форма ввода пароля.
- 3. Pas_edit_form — форма редактирования пароля.
- 4. Vybor_form — форма представляет собой окошко выбора: либо работа с табелем посещаемости, либо с аттестационной ведомостью.
- 5. Posesh_form — форма предназначена для работы с табелем посещаемости.
- 6. Newbase_u_form — форма предназначена для ввода в базу новых групп.
- 7. Sozd_t_form — форма предназначена для создания новой таблицы посещаемости.
- 8. Otchet_form — форма выводит табель посещаемости в печатном варианте.
- 9. Uspev_form — форма предназначена для работы с аттестационной ведомостью.
- 10. Otchet_usp_f — форма выводит в печатном варианте первую страницу отчета аттестационной ведомости.
- 11. Otchet_usp2_f — форма выводит в печатном варианте вторую страницу отчета аттестационной ведомости.
- 12. Raport_form — форма предназначена для работы со сводной рапортичкой.
- 13. Raport_otch_form — форма выводит сводную рапортичку в печатном варианте.
- 14. About_form — форма рассказывает о программном продукте.
Всем этим формам соответствуют одноименные модули плюс модуль проекта. Далее следует описание основных процедур каждого модуля.
Модуль Vybor_form.
На форме расположены две кнопки «Работа с табелем посещаемости» и «Работа с аттестационной ведомостью». При первоначальной загрузке кнопка «Работа с аттестационной ведомостью» не активна, так как прежде чем начать работу с аттестационной ведомостью, необходимо провести работу с табелем посещаемости. При нажатии на кнопку «Работа с табелем посещаемости» открывается форма для работы с табелем посещаемости, а при нажатии на кнопку «Работа с аттестационной ведомостью» — форма для работы с аттестационной ведомостью.
Модуль Newbase_u_form.
На форме имеется одно окошко для ввода текста, три кнопки и компоненты для визуального отображения данных из базы.
В текстовое окошко вводится номер группы, данные о которой пользователь желает сохранить. Затем при нажатии на кнопку «Сохранить» программа создает динамическую таблицу, именем которой будет являться тот текст который пользователь ввел в текстовое окошко. Ниже приведен пример программного кода, отвечающего за эту процедуру:
Table1.Active := false; //снимается активность с таблицы.
Table1.DataBaseName:='raboch'; // прописывается альяс.
Table1.TableName:=edit1.Text; // присваивается имя таблице.
with Table1 do.
begin.
TableType:=ttParadox; // определяется тип таблицы.
with FieldDefs do.
begin // далее идет описание полей таблицы.
clear;
with AddFielddef do.
begin // создается поле таблицы — №.
Name:='№';
DataType:=ftinteger;
Required:=false;
end;
with AddFielddef do.
begin // создается поле таблицы — FIO.
Name:='FIO';
DataType:=ftstring;
size:=25;
Required:=false;
end;
with indexdefs do.
begin // создается индекс по полю №.
clear;
with addindexdef do.
begin.
name:='';
fields:='№';
options:=[ixprimary];
end;
end;
end;
CreateTable;
Active:=true;
end;
end;
После чего номер группы, который пользователь ввел в текстовое окошко, записывается в таблицу с полем Group, созданную заранее. Это делается для того чтобы впоследствии можно было увидеть список групп в компоненте Combobox, имеющихся в таблице на форме Posesh_form. Программный код, отвечающий за данную реализацию:
posesh_f.Table3.edit;
posesh_f.Table3.Insert;
posesh_f.table3.FieldByName ('Group').Value :=edit1.Text;
posesh_f.table3.Post;
posesh_f.ComboBox1.Clear;
posesh_f.Table3.First;
for i:=1 to posesh_f.Table3.RecordCount do.
begin.
posesh_f.ComboBox1.Items.Add (posesh_f.Table3.fieldbyname ('Group').value);
posesh_f.Table3.Next;
end;
Кнопка «Отмена» очищает текстовое окошко, а кнопка «Назад» возвращает пользователя на форму с табелем посещаемости.
Модуль Sozd_t_form.
На данной форме расположены следующие компоненты: текстовое окошко, три кнопки и OpenDialog (для возможности обзора существующих таблиц).
Просчет посещаемости ведется при помощи стационарной таблицы, которая называется «апрель_2004137». Компонент Table1 на форме в процессе разработки связан именно с ней, а компонент Table 2, непосредственно в процессе разработки не связан ни с чем, а входе выполнения программы именно через этот компонент сохраняются и открываются таблицы. Следовательно, при нажатии кнопки «Сохранить» происходит следующее:
- 1. Очищается первая таблица;
- 2. Снимается активность с компонентов Table 1,2;
- 3. Прописывается имя для Table 1 — апрель_2004137, а для Table 2 имя — это тот текст, который пользователь ввел в текстовое окошко;
- 4. Создаются поля — «№», «FIO» и поля-дни от «1» до «31». Поля «Всего», «Неув», «Ув» после каждой декады и по итогам месяца создаются через редактор полей таблицы. Данные поля являются полями просмотра (Lookup)
- 5. Затем данные из Table 2 переписываются в Table 1.
При нажатии кнопки «Обзор» происходит следующее:
- 1. Очищается первая таблица;
- 2. Снимается активность с компонентов Table 1,2;
- 3. Именем для Table 2 становится OpenDialog1. FileName;
- 4. Затем данные из Table 2 переписываются в Table 1.
Кнопки «Отмена» и «Назад» аналогичны вышеуказанным в модуле Newbase_u_form.
Модуль Posesh_form.
Основные компоненты формы (Рисунок 4):
Главное меню. В меню Файл, при выборе пункта «Работа с базой таблиц» управление программой предается модулю Sozd_t_form, который предназначен для создания или открытия таблиц. При выборе пункта «Работа с базой учащихся» управление передается модулю Newbase_u_form, который предназначен для работы с базами учащихся. Пункт «Работа с аттестационной ведомостью» передает управление модулю Uspev_form, который позволяет работать с аттестационной ведомостью. В меню «Редактирование» продублированы кнопки «Отчет» и «Просчитать», описание данных кнопок представлено ниже. Меню Справка содержит два пункта:
- 1. О программе
- 2. Справка
Первый пункт открывает форму About_form, на которой содержится краткая информация о создателе программного продукта, а второй подключает и демонстрирует справочную систему программы.
Компонент списка Combobox содержит список групп имеющихся в базе и позволяет автоматически заполнять табель фамилиями учащихся. Данное действие происходит при событии Change для компонента. В процедуре прописывается, что данные из таблицы, находящейся на форме необходимо перенести в таблицу 1 на форме Posesh_form. Это реализуется путем цикла от первой до последней записи таблицы, находящейся на форме Newbase_u_form.
Рисунок 4. Вид формы «Posesh_form» («Табель посещаемости»).
При активации формы Posesh_form список Combobox автоматически обновляется на основе таблицы, находящейся на форме Newbase_u_form.
Кнопочка «Сохранить». Данная кнопка предназначена для того, чтобы пользователь мог сохранить данные из стационарной таблицы в рабочую. Данный процесс практически аналогичен процессу при нажатии кнопки «Обзор» на форме Sozd_t_form, только что имена таблиц не меняются, а данные переносятся, наоборот, из первой таблицы во вторую.
Кнопочка «Отчет». Данная кнопка позволяет просмотреть табель посещаемости в то виде, в котором он будет выводиться на печать.
Кнопочка «Просчитать». Данная кнопочка предназначена для просчета за декаду или месяц количества пропусков, в том числе уважительных и неуважительных; отработанных часов и процент посещаемости. Поля «Всего», «Неув», «Уваж» являются полями просмотра для Table 1, в действительности эти поля хранятся в отдельной таблице pole. db, которая была создана заранее. Результаты просчета, записываются в таблицу pole. db, а затем в редакторе полей для Table 1 создаются одноименные поля и проводится связь между ними при помощи ключевого поля — «№».
Принцип просчета прост, если данные в поле не равны «б» или пустому значению, то считаются неуважительные часы, иначе включается счетчик для подсчета уважительных часов. Затем по формулам проводится просчет процента посещаемости, и данные выводятся в соответствующие текстовые окошки.
Кнопочки «Добавить» и «Удалить» предназначены для редактирования списка кураторов групп. Список выводится при помощи компонента CheckListBox, главное отличие которого от Combobox состоит в том, что выбор
осуществляется путем установления галочки рядом с нужным преподавателем. Поэтому добавление данных в CheckListBox аналогично добавлению данных в Combobox. Удаление происходит путем поиска в таблице, при помощи функции Locate, значения, которое выбрано в списке, и удаление этой записи из таблицы.
Модуль Uspev_form.
Основные компоненты формы (Рисунок 5):
Главное меню. Меню «Файл» включает в себя два пункта:
- 1. «Работа с базой учащихся» — программа передает управление модулю Newbase_u_form.
- 2. «Работа с табелем посещаемости» — программа передает управление модулю Posesh_form.
Меню «Редактирование» дублирует кнопки «Просчитать», «1-ая страница отчета», «2-ая страница отчета», «Сводная рапортичка».
Меню Справка содержит два пункта:
- 1. О программе
- 2. Справка
Первый пункт открывает форму About_form, на которой содержится краткая информация о создателе программного продукта, а второй подключает и демонстрирует справочную систему программы.
Кнопка «Сохранить» — аналогична предыдущим кнопкам сохранения, т. е. позволяет динамически создать таблицу. Поля предметов создаются на основе выбранных дисциплин из списка CheckListBox. Выбор в данном списке ограничен — не более 15 предметов.
Кнопка «Открыть» — также аналогична своим предшественницам, единственное отличие состоит в том, что при открытии какой-либо таблицы, в списке предметов ChecklistBox проставляются галочки напротив предметов, которые имеются в полях-предметах открытой таблицы. Пример программного кода, для этой процедуры:
var l, m, u:byte;
begin.
Table1.Active:=false;
if OpenDialog1. Execute then Table1. TableName:= OpenDialog1. FileName;
Table1.Active:=true;
for l := 2 to Table1. FieldCount — 4 do.
listbox1.Items.Add (Table1.Fields[l]. FieldName);
for u:=0 to listbox1.Items.Count-1 do.
for m:=1 to checklistbox1.Items.Count-1 do.
if listbox1. Items[u] = checklistbox1. Items[m] then.
checklistbox1.Checked[m]: =true; end;
Рисунок 5. Вид формы «Uspev_form» («Табель успеваемости»).
Кнопка «Отмена» идентична ранее описанным.
Кнопка «Просчитать». При нажатии на данную кнопку, выполняется процедура, которая на основании выбранных предметов из списка CheckListBox и при помощи оператора for-to-do выполняет следующие операции:
- 1. Выводит на экран список отличников. Проверяет все записи и если все оценки пятерки, то заносит фамилию этого ученика, в заранее созданную таблицу otlichnic.db. Эта таблица затем отображается на форме.
- 2. Выводит на экран список хорошистов. Проверяет все записи и если все оценки пятерки или четверки, то заносит фамилию этого ученика, в заранее созданную таблицу horosh.db. Эта таблица затем отображается на форме.
- 3. Выводит на экран список неуспевающих. Проверяет все записи и если среди оценок есть два и (или) н/а (не аттестация), то заносит фамилию этого ученика, в заранее созданную таблицу neuspev.db. Эта таблица затем отображается на форме.
Также данная процедура переносит значения полей «Всего», «Неув», «Уваж» за месяц из таблицы посещаемости в аналогичные поля в таблице аттестации. Именно поэтому для правильной работы программы, сначала необходимо провести работу с табелем посещаемости, а затем с аттестационной ведомостью. Также такой порядок обработки информации позволяет вывести на форму и в отчет выводимый на печать список прогульщиков, у которых число пропусков >= 30 часов. Данные об этих учащихся с общим числом их пропусков, в том числе неуважительных заносятся в заранее созданную таблицу progyl.db.
Однако основной функцией данной процедуры, является просчет таких данных, как процент качества знаний, процент успеваемости и средний балл. Данные о пропущенных и отработанных часах экспортируются из таблицы посещаемости.
Кнопка «Сводная рапортичка за месяц» передает управление программой модулю Raport_form.
Две кнопки «1-ая страница отчета» и «2-ая страница отчета» позволяют просмотреть ведомость в том виде в котором, она будет выводиться на печать.
1. «1-ая страница отчета» — выводит список учащихся с их оценками по предметам, и пропусками («Всего», «Неув», «Уваж»). Так как количество и название полей зависит от количества и названия выбранных дисциплин, то необходимо программно прописывать зависимость элементов QRDBText и QRLabel от данных таблицы. Для этого при нажатии на кнопке «Просчитать» предусмотрено, что все поля переносятся в компонент ListBox, а затем при помощи цикла просчитывается общее число полей. После чего создается счетчик и методом сравнения через условный оператор, начиная счетчик с ноля, а затем каждый раз увеличивая индексную переменную на единицу, сравнивается числовое значение счетчика и количества полей в Listbox. И до тех пор пока они неравны, данные записываются в отчет. Пример данной процедуры:
if (j (y-3)) then.
begin.
j:=j+1;
uspev_otch_f.QRLabel4.Caption:=uspev_f.Table1.Fields[j]. FieldName;
uspev_otch_f.qrdbtext2.DataSet:=uspev_f.Table1;
uspev_otch_f.qrdbtext2.DataField:=uspev_f.Table1.Fields[j]. FieldName;
end else goto m;
2. «2-ая страница отчета» — здесь выводятся результаты просчетов: список отличников, хорошистов и неуспевающих через компонент QRMemo; список прогульщиков через компоненты QRDBText и QRLabel; данные о проценте качества знаний, проценте успеваемости, среднего балла, пропущенных и отработанных часов через компоненты QRLabel.
Модуль Raport_form.
Основные компоненты формы (Рисунок 6):
Кнопочки «Сохранить», «Открыть», «Отмена» выполняют те же задачи, как и аналогичные кнопки на других формах, описанных ранее.
Кнопка «Переслать данные» служит для заполнения рапортички.
- 1. В поле «Группа» заносится имя Table 2 из формы табеля посещаемости.
- 2. В поле «Классный руководитель» — имя педагога из списка ChekListBox, находящимся также на форме табеля посещаемости.
- 3. В поле «Кол-во учащихся» — число записей Table 1 из формы табеля посещаемости.
- 4. В поля «Всего», «Неув», «Уваж», «Отработано часов» и «Процент посещаемости» — данные из текстовых окошек, идентичных по названию, с формы табеля посещаемости.
- 5. В поле «Ф.И.О. прогульщиков» — данные из таблицы progyl. db, находящейся на форме Uspev_form.
Кнопка «Отчет» — формирует сводную рапортичку в том виде, в котором она будет выводиться на печать.
Рисунок 6. Вид формы «Raport_form» («Сводная рапортичка»).