Диплом: Автоматизация продажи железнодорожных билетов ООО «Four cardinal points Train»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
121
13. Рубенкинг Нил Дж. Язык программирования Delphi для
«чайников». Введение в Borland Delphi 2006  М.: Диалектика, 2007.  336 с.
14. Вендров А.М. CASEтехнологии. Современные методы и средства
проектирования информационных систем.  М.: Финансы и статистика, 2000.
15. Маклаков С. В. Создание информационных систем с AllFusion
Modeling Suite.  М.: Диалог-МИФИ, 2005.
16. Хотяшов Э.Н. Проектирование машинной обработки
экономической информации. М.:Финансы и статистика, 2001.-246 с.
17. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и
сопровождение. Теория и практика = Database Systems: A Practical Approach to
Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. —
1436 с.
18. Оскерко В.С., Пунчик З.В. Практикум по технологиям баз данных.
– Мн.: «БГЭУ», 2004. – 170 с.
19. Соммервилл Иан. Инженерия программного обеспечения / Пер. с
англ. 6-е издание.  М.: Вильямс, 2002. 624 с.
20. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология
разработки программного обеспечения. М.: ИД «ФОРУМ»; ИНФРА-М,
2008.  С. 400.
21. Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование
информационных систем. М.: Интернет-университет информационных
технологий  ИНТУИТ.ру, 2005.
22. СанПиН 2.2.2/2.4.1340-03. Санитарно-эпидемиологические
правила и нормативы. Гигиенические требования к персональным
электронно-вычислительным машинам и организации работы. – М:
Издательство стандартов, 2003.
23. P 2.2.2006—05 Руководство по гигиенической оценке факторов
рабочей среды и трудового процесса. Критерии и классификация условий
труда – М.: Федеральный центр Госсанэпиднадзор Минздрава России, 2003
122
24. СанПиН 2.2.4.1294-03 Гигиенические требования к аэроионному
составу воздуха производственных и общественных помещений М.:
Федеральный центр Госсанэпиднадзор Минздрава России, 2003
25. СанПиН 2.2.2/2.4.1340-03 Гигиенические требования к
персональным электронно-вычислительным машинам и организации работы
– М.: Федеральный центр Госсанэпиднадзор Минздрава России, 2003
26. ГОСТ 12.2.032-78. ССБТ. Рабочее место при выполнении работ
сидя. Общие эргономические требования.
27. СанПиН 2.2.4.548—96 Гигиенические требования к микроклимату
производственных помещений – М.: Федеральный центр Госсанэпиднадзор
Минздрава России, 2003
28. Гетия И.Г., Шумилин В.К., Леонтьева И.Н., Гетия СИ., Кривенцов
СМ., Комиссарова Т.А., Скребенкова Л.Н., Костюченко В.Е, Экология
компьютерной техники, Учебное пособие, М:, МГУПИ, 2007
Пекарь лекарь Карабас лес закат рассвет гитара солнце
123
ПРИЛОЖЕНИЕ А
Листинги основных модулей программы
Листинг модуля uMain.pas
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, jpeg;
type
TfmMain = class(TForm)
BitBtn1: TBitBtn;
bbtSellerARM: TBitBtn;
bbtOperARM: TBitBtn;
bbtInfo: TBitBtn;
Image1: TImage;
procedure bbtInfoClick(Sender: TObject);
procedure bbtSellerARMClick(Sender: TObject);
procedure bbtOperARMClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
uses uTrainSearch, uSellerARM, uOperARM, uConnect, uDM;
{$R *.dfm}
procedure TfmMain.bbtInfoClick(Sender: TObject);
begin
fmTrainSearch.Caption := 'Справочная - поиск поезда';
fmTrainSearch.bbtTicketCell.Visible := False;
fmTrainSearch.ShowModal;
end;
procedure TfmMain.bbtSellerARMClick(Sender: TObject);
begin
fmSellerARM.ShowModal;
end;
procedure TfmMain.bbtOperARMClick(Sender: TObject);
begin
fmOperARM.ShowModal;
end;
procedure TfmMain.FormShow(Sender: TObject);
begin
fmConnect.Connect; //Подключение к БД
124
with DM do
begin
qrStation.Open;
qrTrain.Open;
qrPath.Open;
qrTimetable.Open;
qrCarriage.Open;
qrStock.Open;
qrStock1.Open;
qrSeat.Open;
qrTicket.Open;
qrCarriageSeat.Open;
qrCarriageType.Open;
qrCarriageCateg.Open;
qrCarriageClass.Open;
qrTicketSeats.Open;
qrAllTickets.Open;
end;
end;
end.
Листинг модуля uConnect.pas
unit uConnect;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TfmConnect = class(TForm)
Label1: TLabel;
edServer: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
edUser: TEdit;
Label2: TLabel;
edPass: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Connect;
end;
var
fmConnect: TfmConnect;
implementation
uses uDM, IniFiles;
var
CancelConnect: Boolean;
ServerName, UserID, Password: string;
PersistSec: Boolean;
{$R *.dfm}
125
procedure TfmConnect.Connect;
var
IniFile: TIniFile;
APchar: array[0..254] of Char;
begin
if not Assigned(DM) then
Application.CreateForm(TDM, DM);
//Загрузка данных о сервере базы данных на удаленном компьютере из
//инициализационного файла, если он существует:
ServerName := '(local)';
GetWindowsDirectory(APchar, 255);
if FileExists(string(APchar)+'\Station.ini') then
begin
IniFile := TIniFile.Create(string(APchar)+'\Station.ini');
try
PersistSec := IniFile.ReadBool('Base', 'PersistSec', False);
ServerName := IniFile.ReadString('Base', 'ServerName', '(local)');
UserID := IniFile.ReadString('Base', 'UserID', 'sa');
Password := IniFile.ReadString('Base', 'Password', '');
finally
IniFile.Free;
end;
end;
CancelConnect := False;
if not Assigned(fmConnect) then
Application.CreateForm(TfmConnect, fmConnect);
while (not DM.ADOConnection1.Connected) and (not CancelConnect) do
begin
//Задание параметров подключения к серверу БД:
DM.ADOConnection1.ConnectionString :=
'Provider=SQLOLEDB.1;Persist Security Info=' + BoolToStr(PersistSec,
True) + ';User ID=' +
UserID + ';Initial Catalog=Вокзал;Data Source=' + ServerName +
';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;' +
'Use Encryption for Data=False;Tag with column collation when
possible=False';
if PersistSec then
DM.ADOConnection1.ConnectionString :=
DM.ADOConnection1.ConnectionString + ';Password=' + Password
else
DM.ADOConnection1.ConnectionString :=
DM.ADOConnection1.ConnectionString + ';Integrated Security=SSPI';
//Попытка подключения к БД:
try
DM.ADOConnection1.Open;
except
on E: Exception do
begin
Application.MessageBox(PChar('Ошибка подключения к базе данных!' +
Chr(13) +
'Строка ошибки:' + Chr(13) + E.Message), 'Ошибка',
MB_OK+MB_ICONERROR);
edServer.Text := ServerName;
RadioButton1.Checked := not PersistSec;
RadioButton2.Checked := PersistSec;
edUser.Text := UserID;
edPass.Text := Password;
fmConnect.ShowModal;
126
end;
end;
end;
if CancelConnect then
Application.Terminate;
end;
procedure TfmConnect.BitBtn1Click(Sender: TObject);
//Запись в ini-файл имени сервера:
procedure SaveToFile;
var
IniFile: TIniFile;
APchar: array[0..254] of Char;
f: File;
begin
GetWindowsDirectory(APchar, 255);
if not FileExists(string(APchar)+'\Station.ini') then
begin
//Создание файла, если он не существует:
AssignFile(f, string(APchar)+'\Station.ini');
Rewrite(f);
CloseFile(f);
end;
IniFile := TIniFile.Create(string(APchar)+'\Station.ini');
try
IniFile.WriteString('Base', 'ServerName', ServerName);
IniFile.WriteBool('Base', 'PersistSec', PersistSec);
if PersistSec then
begin
IniFile.WriteString('Base', 'UserID', UserID);
IniFile.WriteString('Base', 'Password', Password);
end;
finally
IniFile.Free;
end;
end;
begin
ServerName := edServer.Text;
PersistSec := RadioButton2.Checked;
UserID := edUser.Text;
Password := edPass.Text;
SaveToFile;
Close;
end;
procedure TfmConnect.BitBtn2Click(Sender: TObject);
begin
CancelConnect := True;
end;
end.
Листинг модуля uTrainSearch.pas
unit uTrainSearch;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
127
Dialogs, StdCtrls, Grids, DBGrids, Buttons, ComCtrls;
type
TfmTrainSearch = class(TForm)
DBGrid1: TDBGrid;
edSearch: TEdit;
Label4: TLabel;
Label1: TLabel;
bbtStationFrom: TBitBtn;
bbtStationTo: TBitBtn;
edStationFrom: TEdit;
edStationTo: TEdit;
MonthCalendar1: TMonthCalendar;
MonthCalendar2: TMonthCalendar;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
bbtSearch: TBitBtn;
Label6: TLabel;
DBGrid2: TDBGrid;
bbtTrainInfo: TBitBtn;
bbtTicketCell: TBitBtn;
bbtTicketPres: TBitBtn;
BitBtn2: TBitBtn;
procedure bbtStationFromClick(Sender: TObject);
procedure bbtStationToClick(Sender: TObject);
procedure bbtSearchClick(Sender: TObject);
procedure edSearchChange(Sender: TObject);
procedure bbtTrainInfoClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtTicketCellClick(Sender: TObject);
procedure bbtTicketPresClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmTrainSearch: TfmTrainSearch;
implementation
uses uDM, DB, uInfoStockAndPath, uTicketCell, uTicketPres;
var Station1, Station2: Integer;
{$R *.dfm}
//Фиксируем станцию отправления:
procedure TfmTrainSearch.bbtStationFromClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation1').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
edStationFrom.Text :=
DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station1 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Фиксируем станцию прибытия:
procedure TfmTrainSearch.bbtStationToClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation2').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
128
edStationTo.Text := DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station2 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Поиск рейсов на заданный диапазон дат и для заданных станций отправления и
прибытия:
procedure TfmTrainSearch.bbtSearchClick(Sender: TObject);
begin
DM.qrTrainSearch.Close;
DM.qrTrainSearch.Parameters.ParamByName('pDate1').Value :=
MonthCalendar1.Date;
DM.qrTrainSearch.Parameters.ParamByName('pDate2').Value :=
MonthCalendar2.Date;
DM.qrTrainSearch.Open;
end;
//Поиск станции по частичному совпадению названия:
procedure TfmTrainSearch.edSearchChange(Sender: TObject);
begin
DM.qrStation.Locate('НазваниеСтанции', edSearch.Text, [loPartialKey,
loCaseInsensitive])
end;
//Вывод на экран формы "Состав и путь следования поезда" и поиск на этой
форме
//информации о выбранном поезде:
procedure TfmTrainSearch.bbtTrainInfoClick(Sender: TObject);
begin
if DM.qrTrainSearch.Active then
if DM.qrTrainSearch.RecordCount<>0 then begin
fmInfoStockAndPath.dblcbN.KeyValue :=
DM.qrTrainSearch.FieldByName('NПоезда').Value;
fmInfoStockAndPath.dblcbNClick(Self);
fmInfoStockAndPath.ShowModal;
end;
end;
procedure TfmTrainSearch.FormShow(Sender: TObject);
begin
edStationFrom.Clear;
edStationTo.Clear;
MonthCalendar1.Date := Now;
MonthCalendar2.Date := Now;
DM.qrTrainSearch.Close;
end;
//Вывод на экран формы продажи билета и поиск на этой форме
//выбранного поезда, станции, даты:
procedure TfmTrainSearch.bbtTicketCellClick(Sender: TObject);
begin
if DM.qrTrainSearch.Active then
if DM.qrTrainSearch.RecordCount<>0 then begin
fmTicketSell.dblcbN.KeyValue :=
DM.qrTrainSearch.FieldByName('NПоезда').Value;
fmTicketSell.dblcbStationFrom.KeyValue := Station1;
fmTicketSell.dblcbStationTo.KeyValue := Station2;
fmTicketSell.dblcbDateFrom.KeyValue := MonthCalendar1.Date;
DM.qrTimetable.Locate('Дата',
DM.qrTrainSearch.FieldbyName('Дата').AsString, []);
fmTicketSell.dblcbDateFrom.KeyValue :=
DM.qrTimetable.FieldbyName('ID').Value;
fmTicketSell.dblcbNClick(Self);
129
fmTicketSell.ShowModal;
end;
end;
//Вывод на экран формы информации о билетах в наличии и поиск на этой форме
//выбранного поезда, станции, даты:
procedure TfmTrainSearch.bbtTicketPresClick(Sender: TObject);
begin
if DM.qrTrainSearch.Active then
if DM.qrTrainSearch.RecordCount<>0 then begin
fmTicketPres.dblcbN.KeyValue :=
DM.qrTrainSearch.FieldByName('NПоезда').Value;
fmTicketPres.dblcbStationFrom.KeyValue := Station1;
DM.qrTimetable.Locate('Дата',
DM.qrTrainSearch.FieldbyName('Дата').AsString, []);
fmTicketPres.dblcbDateFrom.KeyValue :=
DM.qrTimetable.FieldbyName('ID').Value;
fmTicketPres.dblcbNClick(Self);
fmTicketPres.ShowModal;
end;
end;
procedure TfmTrainSearch.BitBtn2Click(Sender: TObject);
begin
Close;
end;
end.
Листинг модуля uTrainSearch.pas
unit uTrainSearch;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Buttons, ComCtrls;
type
TfmTrainSearch = class(TForm)
DBGrid1: TDBGrid;
edSearch: TEdit;
Label4: TLabel;
Label1: TLabel;
bbtStationFrom: TBitBtn;
bbtStationTo: TBitBtn;
edStationFrom: TEdit;
edStationTo: TEdit;
MonthCalendar1: TMonthCalendar;
MonthCalendar2: TMonthCalendar;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
bbtSearch: TBitBtn;
Label6: TLabel;
DBGrid2: TDBGrid;
bbtTrainInfo: TBitBtn;
bbtTicketCell: TBitBtn;
bbtTicketPres: TBitBtn;
BitBtn2: TBitBtn;
procedure bbtStationFromClick(Sender: TObject);
procedure bbtStationToClick(Sender: TObject);
130
procedure bbtSearchClick(Sender: TObject);
procedure edSearchChange(Sender: TObject);
procedure bbtTrainInfoClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtTicketCellClick(Sender: TObject);
procedure bbtTicketPresClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmTrainSearch: TfmTrainSearch;
implementation
uses uDM, DB, uInfoStockAndPath, uTicketCell, uTicketPres;
var Station1, Station2: Integer;
{$R *.dfm}
//Фиксируем станцию отправления:
procedure TfmTrainSearch.bbtStationFromClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation1').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
edStationFrom.Text :=
DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station1 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Фиксируем станцию прибытия:
procedure TfmTrainSearch.bbtStationToClick(Sender: TObject);
begin
DM.qrTrainSearch.Parameters.ParamByName('pStation2').Value :=
DM.qrStation.FieldByName('ID').AsInteger;
edStationTo.Text := DM.qrStation.FieldByName('НазваниеСтанции').AsString;
Station2 := DM.qrStation.FieldByName('ID').AsInteger;
end;
//Поиск рейсов на заданный диапазон дат и для заданных станций отправления и
прибытия:
procedure TfmTrainSearch.bbtSearchClick(Sender: TObject);
begin
DM.qrTrainSearch.Close;
DM.qrTrainSearch.Parameters.ParamByName('pDate1').Value :=
MonthCalendar1.Date;
DM.qrTrainSearch.Parameters.ParamByName('pDate2').Value :=
MonthCalendar2.Date;
DM.qrTrainSearch.Open;
end;
//Поиск станции по частичному совпадению названия:
procedure TfmTrainSearch.edSearchChange(Sender: TObject);
begin
DM.qrStation.Locate('НазваниеСтанции', edSearch.Text, [loPartialKey,
loCaseInsensitive])
end;
//Вывод на экран формы "Состав и путь следования поезда" и поиск на этой
форме
//информации о выбранном поезде:

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")