Порядок выводимых строк может быть изменен с помощью опционального (дополнительного) предложения 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) Наименование.
Разработка программного обеспечения по автоматизации учебного процесса в колледже «Учет посещаемости».