Рефераты. База данных "Пассажирские железнодорожные перевозки"

Листинг программного модуля:

if (StringGrid1.Cells[ACol,ARow] <> '*') and (StringGrid1.Cells[ACol,ARow] <> 'X') then

begin

if (ComboBox1.Text <> '') and (ComboBox2.Text <> '') and (RzDateTimeEdit1.Text <> '') then

begin

if MessageDlg('Приступить к гегистрации пассажира?',mtConfirmation,[mbYes,mbNo],0) = mrYes then

begin

Application.CreateForm(TFormTicket, FormTicket);

with FormTicket do

begin

Label2.Caption:= DBGrid1.Fields[0].Text;

Label3.Caption:= DBGrid1.Fields[2].Text;

Label6.Caption:= FormatDateTime('dd.mm',RzDateTimeEdit1.Date);

Label17.Caption:= IntToStr(ACol);

Label15.Caption:= IntToStr(ARow);

Label10.Caption:= ComboBox1.Text;

Label11.Caption:= ComboBox2.Text;

time:=TStringList.Create;

time.Text:=StringReplace(StringGrid1.Cells[0,ARow],' ',#13#10,[rfreplaceall]);

Label13.Caption:= time[1];

time.Destroy;

Label19.Caption:= FormatDateTime('dd.mm',RzDateTimeEdit1.Date);

SQLString:='select * from stationofreis where no_reisa="'+DBGrid1.Fields[0].Text+'"';

Query2:= CreateQuery(SQLString);

Query2.Open;

Query2.First;

hour:=0;

minute:=0;

price:=0;

s:='0';

while not Query2.Eof do

begin

if Query2.Fields[1].AsString = ComboBox1.Text then

begin

Label21.Caption:=Query2.Fields[6].AsString;

s1:= Query2.Fields[6].AsFloat;

while not Query2.Eof do

begin

Query2.Next;

s2:= Query2.Fields[4].AsFloat;

if s1>s2 then

begin

Label6.Caption:= FormatDateTime('dd.mm',RzDateTimeEdit1.Date+1);

s1:=s2;

end;

if Query2.Fields[1].AsString = ComboBox2.Text then

begin

if s = '' then

begin

s:= Query2.Fields[3].AsString;

end;

Label23.Caption:=Query2.Fields[4].AsString;

s:= FloatToStr(sumhhmm(StrToFloat(s),Query2.Fields[3].AsFloat));

Label25.Caption:= s;

priceway:= price;

GetDir(0,Path);

with TIniFile.Create(Path+'\zd.ini') do

try

price:= price+Query2.Fields[2].AsFloat+StrToFloat(ReadString('cash',Label13.Caption,'no val ues'))+StrToFloat(ReadString('cash','сбор','no values'));

finally

Free;

end;

Label27.Caption:= FloatToStr(price);

// Edit3.Text:= StringReplace(Label27.Caption,',','.',[rfReplaceAll]);

{!!!!!добавить указание стоимости проезда!!!!!}

goto m1;

end;

price:=price+Query2.Fields[2].AsFloat;

s:= FloatToStr(sumhhmm(StrToFloat(s),Query2.Fields[3].AsFloat));

s:= FloatToStr(sumhhmm(StrToFloat(s),Query2.Fields[5].AsFloat));

s1:=s2;

end;

end;

Query2.Next;

end;

m1:

end;

FormTicket.ShowModal;

end;

end;

end;

г) регистрация пассажира и формирование проездного документа.

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

Листинг программного модуля:

if (Edit1.Text <> '') or (MaskEdit1.Text <> '') then

begin

dat:= FormatDateTime('ddmmyyhhmm',Now);

SQLString:='insert into tickets values("'+FormatDateTime('ddmmyyhhmm',Now)+'","'+Edit1.Text+'","'+MaskEdit1.Text+'","'+Label2.Caption+'","'+Label10.Caption+'","'+Label11.Caption+'","'+Label19.Caption+'","'+Label6.Caption+'","'+Label15.Caption+'","'+Label17.Caption+'","'+Label13.Caption+'","'+StringReplace(Label27.Caption,',','.',[rfReplaceAll])+'")';

if ExecuteSQL(SQLString) then

begin

GetDir(0,Path);

with TIniFile.Create(Path+'\zd.ini') do

try

SQLString:= 'insert into prices values("'+Label21.Caption+'","'+Label23.Caption+'","'+Label25.Caption+'","'+StringReplace(ReadString('cash',Label13.Caption,'no values'),',','.',[rfReplaceAll])+'","'+StringReplace(ReadString('cash','сбор','no values'),',','.',[rfReplaceAll])+'","'+StringReplace(FloatToStr(priceway),',','.',[rfReplaceAll])+'")';

finally

Free;

end;

ExecuteSQL('delete from prices');

if ExecuteSQL(SQLString) then

begin

// ShowMessage('Успешная регистрация');

FormTicket.Close;

SQLString:= 'select * from tickets, prices where tickets.no_ticket="'+dat+'"';

QReport.SQL.Clear;

QReport.SQL.Add(SQLString);

QReport.Open;

frReport1.LoadFromFile(Path+'\ticket.frf');

frReport1.ShowReport;

with FormPay do

begin

ComboBox1.Text:= '';

ComboBox2.Text:= '';

RzDateTimeEdit1.Text:= '';

// RzToolButton1Click(sender);

with StringGrid1 do

begin

RowCount:= 2;

ColCount:=55;

for i:=1 to ColCount-1 do

begin

ColWidths[i]:=20;

Cells[i,0]:=IntToStr(i);

end;

end;

end;

end;

end;

end else ShowMessage('Не введены обязательные данные!');

3.3 Описание интерфейса пользователя

При запуске программы на выполнение на экране компьютера появляется следующее меню изображённое на рисунке 3.

Рисунок 3 - Главное окно

Меню состоит из пунктов «Продажа билетов», «Администратор». При выборе пункта меню «Продажа билетов» появляется следующее подменю, изображённое на рисунке 4.

Рисунок 4 - Форма продажи билетов

На форме указаны «Номер рейса», «Пункт отправления», «Пункт назначения», «Дата отправления» - это поля, которые заполняются оператором; поля «Рейсы», «Состав» - отображаются сразу после запроса. Как только информация отобразилась, оператор приступает к регистрации пассажира, рисунок 5.

Рисунок 5 - Форма регистрации пассажира

После регистрации идёт оформление документа, представленного на рисунке 6.

Рисунок 6 - Проездной документ

При выборе пункта меню «Администратор», необходимо ввести пароль. Так как обычный оператор не вправе что-либо менять или исправлять в самой базе данных. Вид окошка представлен на рисунке 7.

Рисунок 7 - Ввод пароля

Появляется форма администратора с вкладками «Станции», «Рейсы», «Стоимость класса вагона», «Поезда», «Стоимость участка пути», форма изображена на рисунке 8.

Рисунок 8 - Форма администратора (вкладка «Станции»)

При выборе команды «Рейсы» на экране появляется новое окно, отображённое на рисунке 9.

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

Рисунок 9 - Рейсы (добавление)

В списке, изображенных в окне, отражаются все операции, произведенные по каждому рейсу, будь то добавление, редактирование или удаление станций и его номера. Кнопка «Добавить» предназначена для добавления из списка станций нового маршрута, содержащего полный путь рейса. Если после какой-либо корректировки данных кнопка не будет нажата, рейс не будет добавлен. При нажатии на кнопку на кнопку «Отмена» происходит возврат в предыдущее окно без сохранения. После выбора вкладки «Стоимость класса вагона» появляется новое окно, изображённое на рисунке 10.

Рисунок 10 - Вкладка «Стоимость класса вагона»

Вносятся необходимые изменения, и нажимается кнопка «Применить».

Рассмотрим вкладку «Поезда», представленную на рисунке 10. Здесь отмечаются сколько вагонов находится в составе и под каким номером какие типы вагонов. После нажатия кнопки «Применить», информация заносится в таблицу.

Рисунок 11 - Вкладка «Поезда»

На вкладке «Стоимость участка пути», изображённой на рисунке 11, администратор вносит необходимые данные: время в пути, время прибытия, стоянка, время отправления, стоимость участка. После нажатия кнопки «Применить», вне-сённые данные отображаются в верхней таблице.

Рисунок 11 - Вкладка «Стоимость пути»

Заключение

Разработанный нами программный продукт является удобным и надежным средством для быстрой регистрации пассажиров для проезда на железнодорожном транспорте.

Программный продукт выполняет следующие функции:

- возможность заказа билета из любой точки мира при наличии подключения к внутренней компьютерной сети;

- возможность добавления и редактирования маршрутов, цен на билеты.

- заказ билета на любую дату.

- быстрый расчет времени в пути.

Возможные улучшения:

- выбор пассажиром места в вагоне (верхняя, нижняя полка)

- выдача рекомендаций по оптимальному с точки зрения времени, проведенному в пути и стоимости билета, маршруту между двумя пунктами.

Список литературы:

1. ГОСТ 2.105-95 ЕСКД - общие требования к текстовым документам;

2. ГОСТ 2.304-81 ЕСКД - шрифты чертёжные;

3. ГОСТ 2.106-68 ЕСКД - текстовые документы;

4. Общие требования и правила оформления выпускных квалификационных работ, курсовых проектов, отчетов ОГУ;

5. Программирование на Delphi 6, Глушаков С.В.

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.