Смекни!
smekni.com

Учет посещаемости в рабочее время (стр. 9 из 10)

Порядок выводимых строк может быть изменен с помощью опционального (дополнительного) предложения ORDER BY в конце SQL-запроса.

Способ упорядочивания определяется дополнительными зарезервированными словами ASC и DESC. Способом по умолчанию - если ничего не указано - является упорядочивание “по возрастанию” (ASC). Если же указано слово “DESC”, то упорядочивание будет производиться “по убыванию”.[2]


4 ПРОЦЕСС РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

В результате разработки программного продукта получилась рабочая программа по чету посещаемости студентов.

На главной форме выбирается специальность, группа, студент, дата, количество пропущенных часов, по какой причине. После нажатия на кнопку «Утвердить» выбранные данных заносятся в базу данных. Так же с этой формы осуществляется переход на другие формы.

Используемыекомпоненты: DataSource, DBGrid, ADOQuery, ADOTable, Label, Button, ComboBox, DateTimePicker, MainMenu.

Кодпрограммы:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, DB, ADODB, Grids, DBGrids, ComCtrls, Menus;

type

TForm1 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

ADOQuery1: TADOQuery;

ADOTable1: TADOTable;

ADOTable2: TADOTable;

ADOTable3: TADOTable;

Label8: TLabel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Button1: TButton;

ComboBox6: TComboBox;

ComboBox5: TComboBox;

ComboBox4: TComboBox;

ComboBox3: TComboBox;

ComboBox2: TComboBox;

ComboBox1: TComboBox;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

DateTimePicker1: TDateTimePicker;

N3: TMenuItem;

N4: TMenuItem;

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit3, Unit2, Unit7;

{$R *.dfm}

procedure TForm1.ComboBox1Change(Sender: TObject);

var pr:String;

begin

ADOTable1.Open;

ADOTable1.First;

ComboBox2.Items.Clear;

While not ADOTable1.Eof do

begin

if ADOTable1.Fieldbyname('Spesi').AsString=ComboBox1.Text Then

ComboBox2.Items.Add(ADOTable1.fieldbyname('Gruppa').AsString);

ADOTable1.Next;

end;

ADOTable1.Close;

ComboBox2.Sorted:=True;

end;

procedure TForm1.ComboBox2Change(Sender: TObject);

var pr1:String;

begin

ADOTable2.Open;

ADOTable2.First;

ComboBox3.Items.Clear;

While not ADOTable2.Eof do

begin

if ADOTable2.Fieldbyname('Gruppa').AsString=ComboBox2.Text Then

ComboBox3.Items.Add(ADOTable2.fieldbyname('FIO').AsString);

ADOTable2.Next;

end;

ADOTable2.Close;

ComboBox3.Sorted:=True;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

ADOTable3.Insert;

ADOTable3.FieldByName('Spesi').AsString:=Combobox1.Text;

ADOTable3.FieldByName('Gruppa').AsString:=Combobox2.Text;

ADOTable3.FieldByName('FIO').AsString:=Combobox3.Text;

ADOTable3.FieldByName('Date').AsString:=DateToStr (DateTimePicker1.Date);

ADOTable3.FieldByName('Uvazh').AsString:=Combobox4.Text;

ADOTable3.FieldByName('Neuvazh').AsString:=Combobox5.Text;

ADOTable3.FieldByName('Bolezn').AsString:=Combobox6.Text;

ADOTable3.Post;

ADOTable3.Close;

ADOTable3.Open;

ComboBox3.ClearSelection;

ComboBox4.Text:='0';

ComboBox6.Text:='0';

ComboBox5.Text:='0';

end;

procedure TForm1.N1Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

form7.ADOTable1.UpdateBatch;

Form7.Show;

end;

end.

На форме корректировки данных осуществляется изменение или удаление ранее введенных данных.

Используемыекомпоненты: DataSource, DBGrid, ADOTable, MainMenu, Label, DBNavigator.

Кодпрограммы:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls;

type

TForm2 = class(TForm)

DBNavigator1: TDBNavigator;

DBGrid1: TDBGrid;

ADOTable1: TADOTable;

DataSource1: TDataSource;

MainMenu1: TMainMenu;

N1: TMenuItem;

DataSource2: TDataSource;

DBNavigator2: TDBNavigator;

DBGrid2: TDBGrid;

ADOTable2: TADOTable;

Label1: TLabel;

procedure N1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.N1Click(Sender: TObject);

begin

close;

end;

end.

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

Используемыекомпоненты: DataSource, DBGrid, ADOQuery, GroupBox, CheckBox, ADOTable, Label, Button, MainMenu.

Кодпрограммы:

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, Menus;

type

TForm3 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

ADOQuery1: TADOQuery;

GroupBox1: TGroupBox;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Label6: TLabel;

Edit9: TEdit;

Button2: TButton;

Button3: TButton;

Label7: TLabel;

MainMenu1: TMainMenu;

Label8: TLabel;

N2: TMenuItem;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Label9: TLabel;

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit4, Unit5, Unit6, Unit1;

{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);

Var s, a,b,c,d:real;

begin

ADOQuery1.First;

a:=0;

b:=0;

c:=0;

d:=0;

while not ADOQuery1.Eof do begin

a:=a+ADOQuery1.FieldByName('Uvazh').AsFloat;

b:=b+ADOQuery1.FieldByName('Bolezn').AsFloat;

c:=c+ADOQuery1.FieldByName('Neuvazh').AsFloat;

d:=a+b+c;

ADOQuery1.Next;

end;

Edit6.Text:=FloatToStr(a);

Edit7.Text:=FloatToStr(b);

Edit8.Text:=FloatToStr(c);

Edit9.Text:=FloatToStr(d);

d:=100/d;

edit10.Text:=FloatToStr(a*d) ;

edit11.Text:=FloatToStr(b*d) ;

edit12.Text:=FloatToStr(c*d) ;

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

if CheckBox1.Checked then

begin

Form4.QRLabel10.Caption:=Edit9.Text;

Form4.QRLabel11.Caption:=Edit6.Text;

Form4.QRLabel12.Caption:=Edit7.Text;

Form4.QRLabel13.Caption:=Edit8.Text;

Form4.QRLabel14.Caption:=Edit1.Text;

Form4.QuickRep1.Preview;

end;

if CheckBox2.Checked then

begin

Form5.QRLabel9.Caption:=Edit9.Text;

Form5.QRLabel10.Caption:=Edit6.Text;

Form5.QRLabel11.Caption:=Edit7.Text;

Form5.QRLabel12.Caption:=Edit8.Text;

Form5.QRLabel13.Caption:=Edit2.Text;

Form5.QuickRep1.Preview;

end;

if CheckBox3.Checked then

begin

Form6.QRLabel8.Caption:=Edit9.Text;

Form6.QRLabel9.Caption:=Edit6.Text;

Form6.QRLabel10.Caption:=Edit7.Text;

Form6.QRLabel11.Caption:=Edit8.Text;

Form6.QRLabel12.Caption:=Edit3.Text;

Form6.QuickRep1.Preview;

end;

end;

procedure TForm3.Button1Click(Sender: TObject);

var s:String;

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

if CheckBox1.Checked then

ADOQuery1.SQL.Add('SELECT *FROM Student WHERE (((Student.Spesi)="'+Edit1.Text+'"));');

if CheckBox2.Checked then

ADOQuery1.SQL.Add('SELECT * FROM Student WHERE (((Student.Gruppa)="'+Edit2.Text+' "));');

if CheckBox3.Checked then

ADOQuery1.SQL.Add('SELECT * FROM Student WHERE (((Student.FIO)="'+Edit3.Text+' "));');

if CheckBox4.Checked then

ADOQuery1.SQL.Add('SELECT * FROM Student WHERE (((Student.Date)="'+Edit4.Text+' "));');

//ShowMessage(ADOQuery1.SQL.Text);

ADOQuery1.Active:=True;

end;

procedure TForm3.N2Click(Sender: TObject);

begin

close;

end;

end.

На форме справочников добавляются группы и фамилии студентов, а также специальности и группы.

Используемыекомпоненты: DataSource, DBGrid, ADOTable, Label, MainMenu,DBNavigator.

Кодпрограммы:

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, Menus;

type

TForm7 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

ADOTable1: TADOTable;

Label1: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

DBNavigator1: TDBNavigator;

procedure N1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

{$R *.dfm}

procedure TForm7.N1Click(Sender: TObject);

begin

form7.Close;

end;

Все найденные результаты на форме статистики можно вывести на экран в виде отчета и распечатать его.

Используемыекомпоненты:QRLabel, QuickRep, PageHeaderBand, TitleBand, DetailBand, SummaryBand, QRDBText.


5 ПРОГРАММНАЯ И ЭКСПЛУАТАЦИОННАЯ ДОКУМЕНТАЦИЯ

Ведомость эксплуатационных документов (ГОСТ 19.507-79).

К эксплуатационных документации относится следующий комплекс документов:

1) описание программы (ГОСТ 19.402-78), в котором содержатся сведения о логической структуре и функционировании программного продукта;

2) техническое задание (ГОСТ 19.201-78), определяющее требования, предъявляемые к программному продукту, необходимые стадии и сроки разработки, виды испытаний;

3) руководство оператора (ГОСТ 19.505-79) - сведения, необходимые для обеспечения процедуры общения оператора с ЭВМ в процессе выполнения (работы) программного продукта;

Описание программы (ГОСТ 19.402-78).

1) Общие сведения.

Программный продукт «Учет посещаемости» поможет в контроле за посещаемостью студентов. Использование данного программного продукта позволяет:

- Организовать ввод количества пропущенных часов за каждый день по уважительным (болезнь, отпускные) и неуважительным причинам по каждой специальности, группе, студенту

- Организовать возможность подведения итогов посещаемости по каждому студенту, по каждой группе, специальности и в целом по колледжу (процентное соотношение пропущенных часов по болезни, по уважительным причинам, по неуважительным причинам, количество прогулов на 1 человека, общее количество пропущенных часов по группе, по специальности, по колледжу)

- Обеспечить формирование списков студентов, имеющих наибольшее количество пропущенных часов по итогам текущего месяца, с начала учебного года

- Обеспечить формирование отчета.

В данном программном продукте использовался язык программирования Delphi, базы данных были созданы с использованы MSACCESS.

2) Описание логической структуры.

В процессе работы над программным продуктом была разработана его структура, которая состоит из нескольких форм. Главной формы из которой можно открыть остальные.

3) Используемые технические средства:

- процессор –Pentium 3;

- видеокарта –64 Мб;

- оперативная память – не менее 256 Мб;

- ОС – Windows XT;

- наличие Microsoft Office ACCESS;

- CD-ROM.

4) Загрузка.

Для запуска программы необходимо разместить папку «УЧЕТ ПОСЕЩАЕМОСТИ» на диске D, затем запустить EXE – файл «Учет посещаемости».

Техническое задание (ГОСТ 19.201 – 78).

1) Наименование.

Разработка программного обеспечения по автоматизации учебного процесса в колледже «Учет посещаемости».