Постановка задачи
Создать приложение, имитирующее регистрацию автомобилей на стоянке в аэропорту г. Алматы. Надо определить, сколько времени пробыл на стоянке автомобиль с данным номером, сколько пришлось заплатить. Составить отчетность, сколько автомобилей на указанную дату стояло на стоянке. Вывести количество автомобилей на стоянке на данный момент.
Таблица 1
Автостоянка |
Код, Владелец, Марка, Номер, Цвет, Дата прибытия, Оплата, Оплачено |
Требования к функциональным характеристикам
1.1 Система должна обеспечивать возможность выполнения следующих функций:
- ввод информации о новых автомобилях на стоянке;
- редактирование текущей информации о владельце и его машине;
- получение сведений о текущих машинах на стоянке.
1.2 Результаты:
- поиск по владельцу
- поиск по марке
- поиск по цвету машины
- поиск по номеру машины
- поиск по дате прибытия
- отчет по дате регистрации
Разработка программы
Работа выполняется в среде объектного программирования Delphi 7.
База данных была разработана в СУБД Аксес. Осуществлялась свзять между СУБД Аксес и Delphi 7. Форму представления база имееть в Delphi 7.
Минимальные требования:
операционная система Windows 7, Windows XP;
оперативная память 32 Мб;
процессор Intel Pentium 3, Athlon AMD;
видеокарта с памятью 32 МБ;
свободное пространство 20 МБ;
Рисунок 1
Разработка пользовательского интерфейса
Для удобного восприятия и приятного использования приложения был разработан пользовательский интерфейс. Включающий в себя, все необходимые и понятные для управления элементы.
Рисунок 2
Для защиты информации был предусмотрел ввод с помощью пароля. Это позволяет защитить базу от нежелательного доступа к ней.
На первой странице пользователю будет представлена возможность доступа к базе (рисунок 2). При правильном введении пароля открывается сама база (рисунок 1). Тут спокойно можно просматривать текущую информацию о автомобилях на стоянке. Она включает в себя:
- Код – ID человека, порядок, самое старшее число определяет общее колтичество зарегестрированных машин;
- Владелец – указывается имя (фамилия) владельца транспорта; - Марка – указывается характерная марка транспорта;
- Номер – основной параметр транспорта, уникальный для каждой машины;
- Цвет – цветовая палитра машины, удобно если она является особенной;
- Дата прибытия – указывается дата, в которой машина находилась на стоянке;
- Оплата – стоимость стоянки за промежуток времени который, транспорт находился на стоянке;
- Оплачено – указывается была ли осуществлена оплата.
Код программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2,unit4, unit3;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Clear;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text='123' then
begin
form3.Show;
form1.Visible:=false;
end
else
begin
edit1.Clear;
showmessage('Неверный пароль');
end;
end;
end.
*****************
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids;
type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Label5: TLabel;
Edit5: TEdit;
Button7: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit2, unit1, unit4;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form1.Close;
form3.Close;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
dbgrid2.DataSource:=datamodule2.DataSource2;
datamodule2.ADOQuery1.Active:=false;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.SQL.Add('select *');
datamodule2.ADOQuery1.SQL.Add('from Автостоянка');
datamodule2.ADOQuery1.SQL.Add('where Владелец='''+Edit1.Text+'''');
datamodule2.ADOQuery1.Active:=true;
edit1.Clear;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
dbgrid2.DataSource:=datamodule2.DataSource2;
datamodule2.ADOQuery1.Active:=false;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.SQL.Add('select *');
datamodule2.ADOQuery1.SQL.Add('from Автостоянка');
datamodule2.ADOQuery1.SQL.Add('where Марка='''+Edit2.Text+'''');
datamodule2.ADOQuery1.Active:=true;
edit2.Clear;
end;
procedure TForm3.Button4Click(Sender: TObject);
begin
dbgrid2.DataSource:=datamodule2.DataSource2;
datamodule2.ADOQuery1.Active:=false;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.SQL.Add('select *');
datamodule2.ADOQuery1.SQL.Add('from Автостоянка');
datamodule2.ADOQuery1.SQL.Add('where Цвет='''+Edit3.Text+'''');
datamodule2.ADOQuery1.Active:=true;
edit3.Clear;
end;
procedure TForm3.Button5Click(Sender: TObject);
begin
dbgrid2.DataSource:=datamodule2.DataSource2;
datamodule2.ADOQuery1.Active:=false;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.SQL.Add('select *');
datamodule2.ADOQuery1.SQL.Add('from Автостоянка');
datamodule2.ADOQuery1.SQL.Add('where Дата_прибытия='''+Edit5.Text+'''');
datamodule2.ADOQuery1.Active:=true;
edit4.Clear;
end;
procedure TForm3.Button6Click(Sender: TObject);
begin
form4.Visible:=true;
form3.Visible:=false;
end;
end.
**************
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, QRCtrls, QuickRpt, ExtCtrls;
type
TForm4 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
QuickRep1: TQuickRep;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
QRSysData1: TQRSysData;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRDBText7: TQRDBText;
QRDBText8: TQRDBText;
PageFooterBand1: TQRBand;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses unit2, unit1, unit3;
{$R *.dfm}
procedure TForm4.Button2Click(Sender: TObject);
begin
form3.Show;
form4.Visible:=false;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
edit1.Clear;
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
datamodule2.ADOQuery1.Active:=false;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.SQL.Add('select *');
datamodule2.ADOQuery1.SQL.Add('from Автостоянка');
datamodule2.ADOQuery1.SQL.Add('where Дата_прибытия='''+Edit1.Text+'''');
datamodule2.ADOQuery1.Active:=true;
quickrep1.PreviewModal;
edit1.Clear;
end;
end.
