Помощь в написании студенческих работ
Антистрессовый сервис

Программная реализация. 
Компьютерный учет посещаемости и успеваемости

РефератПомощь в написанииУзнать стоимостьмоей работы

На форме расположены две кнопки «Работа с табелем посещаемости» и «Работа с аттестационной ведомостью». При первоначальной загрузке кнопка «Работа с аттестационной ведомостью» не активна, так как прежде чем начать работу с аттестационной ведомостью, необходимо провести работу с табелем посещаемости. При нажатии на кнопку «Работа с табелем посещаемости» открывается форма для работы с табелем… Читать ещё >

Программная реализация. Компьютерный учет посещаемости и успеваемости (реферат, курсовая, диплом, контрольная)

Программный продукт «Компьютерный учет посещаемости и успеваемости» условно разделен на две части — это просчет и анализ посещаемости, и просчет и анализ успеваемости учащихся.

Программа состоит из 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» («Сводная рапортичка»).

Показать весь текст
Заполнить форму текущей работой