长途汽车订票管理系统Word下载.docx
《长途汽车订票管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《长途汽车订票管理系统Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
其次选择开发环境,主要用了delphi软件。
然后对系统的模块划分,确定各个模块实现的功能。
接着进行模块的设计和实现,并进行测试。
测试完后,进行改错,最后美化界面,完成本次课程。
三、系统设计
1.1数据库逻辑设计结果
首先确定正确的属性关系,设计完善正确的数据库,包括各个表中的主键以及外建关系。
本次试验建了三张表。
其中车次表定义了车号、起点、终点、日期、开出时刻、到达时刻、预设座位数、剩余座位数,车号为主键。
订票表定义了姓名、身份证号、客车号、日期,身份证、车号为主键。
两张表通过车号这个外键链接。
车次信息表:
订票信息表:
管理员账号信息表:
车次表定义了客车基本信息,主键为车号。
订票表定义了用户预订客车票的信息,主键为身份证号和车号
订票表中的车号同时为车次表的外键
1.2系统功能设计
1、管理员用例图
2、用户用例图
3、系统功能结构
4、相关流程图
四、系统实现
用delphi创建五个form,分别是登录界面,管理员维护与查询界面,订票统计界面,用户订票与查询界面,订票查询界面。
各部分源代码及注释如下:
(1)登录界面
主要代码如下:
implementation
usesUnit2,unit3,Unit4,Unit5;
{$R*.dfm}
procedureTdenglu.RadioButton1Click(Sender:
TObject);
//选择管理员时的操作
begin
denglu.Label1.Hide;
denglu.Label2.Hide;
denglu.Edit1.Hide;
denglu.Edit2.Hide;
end;
procedureTdenglu.RadioButton2Click(Sender:
//用户直接查询订票
denglu.Label1.show;
denglu.Label2.show;
denglu.Edit1.show;
denglu.Edit2.show;
procedureTdenglu.RadioButton3Click(Sender:
//订票查询
procedureTdenglu.loginClick(Sender:
//判断管理员账号是否正确
varusername,password:
string;
ifRadiobutton1.Checked=truethen
messagebox(login.handle,'
请选择管理员再登录'
'
警告'
mb_ok+mb_iconwarning);
ifRadiobutton3.Checked=truethen
ifRadiobutton2.Checked=truethen
ifedit1.Text='
'
then
messagebox(login.handle,'
请输入用户名'
mb_ok+mb_iconwarning)
else
ifedit2.Text='
请输入密码'
begin
username:
=edit1.text;
password:
=edit2.text;
withADOQuery1do
close;
sql.clear;
sql.add('
select*from管理员账号whereusername='
);
+username+'
+'
andpassword='
+password+'
open;
first;
edit1.Text:
='
;
edit2.Text:
ifrecordcount=1then
Hide;
weihu.show;
end
请输入正确的账号密码'
end;
procedureTdenglu.BitBtn2Click(Sender:
//关闭界面,退出
close
procedureTdenglu.BitBtn1Click(Sender:
ifRadiobutton2.Checked=truethen//如果选择用户查询
chaxun.show;
//查询界面出现
hide;
//主界面隐藏
ifRadiobutton1.Checked=truethen//如果选择管理员
chaxun.show;
hide;
ifRadiobutton3.Checked=truethen//如果选择订票查询
jilu.show;
//订票查询界面出现
(2)管理员维护与查询主界面:
主要代码如下:
usesUnit1,Unit4;
procedureTweihu.FormCreate(Sender:
ADOQuery1.Close;
ADOQuery1.SQL.clear;
ADOQuery1.Active:
=false;
ADOQuery1.SQL.Add('
select*from车次;
ADOQuery1.Prepared;
ADOQuery1.active:
=true;
T1'
combobox1.text:
2013'
combobox2.text:
1'
combobox3.text:
combobox2.items.add('
2'
3'
combobox3.items.add('
procedureTweihu.BitBtn1Click(Sender:
//查询信息
ADOQuery1.close;
ADOQuery1.sql.Add('
select*'
from车次'
where车号='
+edit1.Text+'
and日期='
+combobox1.text+'
-'
+combobox2.text+'
+combobox3.text+'
ADOQuery1.Open;
procedureTweihu.BitBtn2Click(Sender:
//打开统计界面
tongji.show;
procedureTweihu.BitBtn3Click(Sender:
//返回登录界面
denglu.show;
procedureTweihu.BitBtn4Click(Sender:
//退出系统,关闭隐藏的登录界面
denglu.close;
procedureTweihu.FormClose(Sender:
TObject;
varAction:
TCloseAction);
begin//界面被关闭时,隐藏的登录界面会出现
end.
(3)管理员数据统计界面:
usesunit1,Unit5;
procedureTtongji.FormCreate(Sender:
//从订票表查询需要的信息显示
ADOQuery1.SQL.Clear;
select订票.车号,车次.起点,车次.终点,订票.日期,'
+
'
车次.开出时刻,到达时刻,订票.姓名,'
订票.身份证from订票,车次where订票.车号=车次.车号'
withADOQuery2do
ADOQuery2.Close;
ADOQuery2.sql.clear;
ADOQuery2.Active:
ADOQuery2.SQL.Add('
select车号,count(*)from订票groupby车号;
//计算同一车次的订票数量输出显示
ADOQuery2.Prepared;
procedureTtongji.BitBtn1Click(Sender:
//返回维护界面
weihu.