飞机订票系统分析与设计.docx
- 文档编号:3896880
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:23
- 大小:623.75KB
飞机订票系统分析与设计.docx
《飞机订票系统分析与设计.docx》由会员分享,可在线阅读,更多相关《飞机订票系统分析与设计.docx(23页珍藏版)》请在冰豆网上搜索。
飞机订票系统分析与设计
长沙理工大学
《程序设计实践》课程设计报告
张昭
学院计通学院专业运算机科学与技术
班级运算机03-05学号28
学生姓名张昭指导教师卢曼莎
课程成绩完成日期2006年9月20号
飞机订票系统分析与设计
学生姓名:
张昭指导教师:
卢曼莎
摘要:
随着城市生活节拍的加速,飞机已经成为人们利用愈来愈频繁的交通工具,随之而来的问题是,如何能让旅客最快、最便利的订到机票。
这就需要一个适合的订票系统来处置航班、机票、旅客等信息,方便售票人员查询,插入,删除各类信息。
本课程设计结合实际的订票、售票制度,通过实际的需求分析,采纳功能壮大的VC作为开发工具、SQL作为数据库开发出来的飞机订票治理系统。
本文第一论述了飞机订票治理系统的需求分析,刻画了本飞机订票治理系统的大体模型图。
通过对数据库技术的现状与进展、数据库系统的选择原那么、系统开发工具的选择一系列问题的分析,确信了系统的开发平台。
详细给出了从飞机订票治理系统分析到整体设计详细设计与实现及测试的各个环节,最后对本系统做出了客观评判,指明了系统的现实意义、缺点和系统的升级方向。
关键词:
飞机订票系统;数据库;SQL
1需求分析
为了方便旅客,拟开发一个机票预订系统。
旅行社工作人员把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时刻、旅行目的地等)输入系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞前一天凭票通知和帐单交款取票,系统校对无误即印机票给旅客。
用数据流图来刻画系统的逻辑模型:
票预订系统的大体系统模型如下:
信息取票信息
机票
旅行社工作人员是数据源点,旅客是数据终点。
图1-1大体模型
1、进一步细化大体系统模型,“信息处置”、“订票处置”、“取票处置”是系统必需完成的要紧功能,将代替“订票系统”,可得
D1订票信息
取票信息
旅客信息
信息
取票信息机票
D2取票信息
图1-2细化模型图
增加“订票信息”和“取票信息”两个数据存储。
2、
再进一步细化可得
D1订票信息D3订票清单D2取票信息
取票信息
订票信息订票清单
订票
清单
旅客信息订票信息
信息信息
取票信息取票信息
取票信息
取票信息
机票
D2取票信息
图1-3最终模型图
将、、和放在同一个边界内,那个系统将联机地接收信息、信息处置订票处置、更新订票清单处置及取票处置;将、2.4和放在同一边界内,以批量方式产生信息给旅客。
数据字典
表1-1数据字典
1为把客户的数据要求清楚明确的表达出来,成立一个ER模型。
图1-4ER模型图
2、
IPO图能够方便地刻画输入数据。
对数据的处置和输出数据之间的关系。
下面用改良的IPO图表来描述
图1-5IPO图表
可采纳VB、VF、VC、PB等算法来完成上述模块
2整体设计
通过需求分析时期的分析进程,已粗略的表现了整个设计进程。
整体设计时期的大体目的是用比较抽象归纳的方式确信系统如何完成预定的任务,也确实是说,应该确信系统的物理配置方案,而且进而确信组成系统的每一个程序的结构。
因此,整体设计时期要完成两个小时期,第一要进行系统设计,从需求分析时期的数据流图假想完成系统功能的最正确物理方案,然后进行软件结构设计,确信软件有哪些模块组成和这些模块之间的动态挪用关系。
用结构图来刻画软件结构
将需求分析时期的数据流图进一步细化,经分析从而取得软件结构图,
如下:
无票
退票或换票
D1订票信息D3订票清单D2取票信息
订票信息订票清单取票信息
订票
旅客订票取票
信息信息清单信息
信息
取票取票信息
取票
信息信息机票
取票信息机票
取票信息
D2取票信息
犯错
图2-1数据流图
(二)由上面的数据流图可软件结构图
图2-2软件结构图
3详细设计
详细设计时期的关键任务是确信如何具体地实现所需要的目标系统,也确实是要设计出程序的“蓝图”,除应该保证程序的靠得住行之外,使下一步即将要编的程序可读性好,容易明白得,容易测试和容易修改,保护是详细设计时期最重要的目标。
1)选择PAD图作为完成详细设计的工具,依照整体设计中的数据流图可得PAD图为:
p1
p2
c
p3def
def
p1:
信息处置
p2:
订票处置
p3:
取票处置
c:
旅客信息
图3-1PAD图
2)在整体设计中得出了软件结构设计以后,在详细设计时期,可与利用面向数据结构地址法来设计每一个模块的处置进程。
选用Jackson方式来刻画数据结构。
第一、取得数据结构的Jackson图:
输入数据结构输出数据结构
由数据结构的Jackson图处处刻画程序结构的Jackson图
4编码
人和运算机通信仍然必需利用人工设计的语言,也既是程序设计语言。
编码确实是把软件设计的结果翻译成运算性能够“明白得”的形式——用某种程序设计语言书写的程序。
机票预定系统采纳PB(PowerBuilder)语言来编写程序。
大体界面:
W_message
W_plane_message
图4-1大体界面
工作前的预备工作
第一在powerbuilder中创建Adaptiveserveranywhere本地数据库
第二将powerbuilder与数据库连接即连库
接着在powerbuilder中操作Adaptiveserveranywhere数据库的表
在利用数据库表之前第一要创建表。
利用powerbuilder的数据库画板创建表
进入columns试图工作区
Columnname
DataType
Width
Null
Default
Passenger-name
Char
12
No
(None)
Passenger-sex
Char
12
Yes
(None)
Passenger-number
Integer
18
No
(None)
Passenger-company
Char
20
Yes
(None)
Passenger-time
Timestamp
8
No
(None)
Passenger-address
Char
20
No
(None)
Passenger-planeid
Char
12
No
(None)
表4-1passenger表
在创建一个名为plane_message的表如下
Columnname
DataType
Width
Null
Default
Passenger-name
Char
12
No
(None)
Passenger-sex
Char
12
Yes
(None)
Passenger-number
Integer
18
No
(None)
Passenger-company
Char
20
Yes
(None)
Passenger-time
Timestamp
8
No
(None)
Passenger-planeid
Char
12
No
(None)
Passenger-startandend
Time
16
No
(None)
Passenger-type
Char
8
No
(None)
Passenger-start
Char
20
No
(None)
Passenger-end
Char
20
No
(None)
Passenger-id
Integer
10
No
(None)
Passenger-price
Double
8
No
(None)
表4-1plane_mesage表
(一)、创建界眼前的还要做的预备工作
(1)第一建数据库,在连接数据库。
(2)建表
(3)填入数据
(4)成立数据窗
(5)修改题目存盘d—plane
(6)成立窗口(W—man)
主窗口(W—man)代码:
dw-1.SettransObject(SQLCA)
dw-1.Retrieve()
(7)窗口open(打开)事件的代码:
=ProfileString(“”,“Database”,“DBMS”,“”)
SQLCA.Database=ProfileString(“”,“Database”,“DataBase”,“”)
SQLCA.LogID=ProfileString(“”,“Database”,“LogID”,“”)
SQLCA.LogPass=ProfileString(“”,“Database”,“LogPassword”,“”)
SQLCA.ServerName=ProfileString(“”,“Database”,“ServerName”,“”)
SQLCA.UserID=ProfileString(“”,“Database”,“UserID”,“”)
SQLCA.DBPass=ProfileString(“”,“Database”,“DatabasePassword”,“”)
SQLCA.Lock=ProfileString(“”,“Database”,“Lock”,“”)
SQLCA.DbPam=ProfileString(“”,“Database”,“DbPam”,“”)
CONNECT;
W_message:
信息输入窗口
创建选项:
Title=“信息录入”;WindowType=“response!
”;
dw_message.DataObject=“d_message_Input”;
gb_message.Text=“旅客信息”;
gb_condition.Text=“查询条件”;
me_passenger_name.Text=“姓名”;
sle_passenger_name.Text=“”;
me_passenger_number.Text=“身份证号码”;
sle_passenger_number.Text=“”;
me_sex.Text=“性别”;
sle_sex.Text=“”;
me_company.Text=“工作单位”;
sle_company.Text=“”;
me_time.Text=“旅行时刻”;
em_time.MaskDataType=“datemask!
”;
em_time.Mask=“yy/mm/dd”;
me_address.Text=“旅行目的地”;
sle_address.Text=“”;
me_planeid.Text=“航班”;
sle_planeid.Text=“”;
cd_save.Text=“保留”;
cd_exit.Text=“退出”;
cd_delete.Text=“删除”;
cd_add.Text=“增加”;
cd_retrieve.Text=“检索”;
cd_=TRUE
窗口的open事件代码为:
dw_message.SetTransObject(SQLCA)
dw_message.Retrieve()
sle_passenger.number.SetFocus()
Windows_cen(this)
“身份证号码”编辑框(sle_passnger-number)的modified事件代码为:
Stringls_passenger_number
Longll_rows
ls_passenger_number=Trim(sle_passenger_number.text)
IFls_passenger_number=“”THEN
dw_message.SetFilter(“”)
dw_message.Filter()
sle_passenger_name.Text=“”
em_credit.Text=“0”
ELSE
Kw_message.SetFilter(“passenger_number=”’+ls_passenger_number+”’”)
dw_massage.Filter()
ll_rows=dw_message.Retrieve()
IFll_rows<>OTHEN
sle_passenger_name.Text=dw_message.Object.Passenger_name[1]
em_credit.Text=string(dw_message.object.Credit[1])
sle_passenger_number.SetFocus()
ELSE
sle_passenger_name.SetFocus()
ENDIF
ENDIF
“姓名”编辑框(sle_passenger_name)的modified事件代码为:
sle_passenger_name.SetFocus()
“性别”编辑框(sle_passenger_sex)的modified事件代码为:
sle_passenger_sex.SetFocus()
“工作单位”编辑框(sle_passenger_company)的modified事件代码为:
sle_passenger_company.SetFocus()
“旅行时刻”编辑框(sle_passenger_time)的modified事件代码为:
sle_passenger_time.SetFocus()
“旅行目的地”编辑框(sle_passenger_address)的modified事件代码为:
sle_passenger_address.SetFocus()
“航班”编辑框(sle_passenger_planeid)的modified事件代码为:
sle_passenger_planeid.SetFocus()
“增加”编辑框(cd_add)的clicked事件代码为:
Open(w_message_add)
IF
sle_passenger_name.Text=“”OK
sle_passenger_sex.Text=“”OK
sle_passenger_number.Text=“”OK
sle_passenger_company.Text=“”OK
sle_passenger_time.Text=“”OK
sle_passenger_address.text=“”OK
sle_passenger_planeId.Text=“”OK
messagebox(“提示”其输入姓名、性别、身份证号码、工作单位、旅行时刻、旅行目的地和航班!
”)
RETURN
ENDIF
sl_row=dw_message_input.InsetRow(0)
dw_message.Input.ScrollToRow(sl_row)
dw_message.Input.SetRow(sl_row)
dw_message.Input.SetFocus()
“删除”按钮(cd_delete)的clicked事件代码为:
intli_ret
li_ret=MessageBox(“提示”,“确实要删除吗?
”Exclamation!
Yes/No!
)
IFli_ret=1THEN
dw_message.DeleteRow(0)
IFdw_message.Update()=1THEN
COMMIT;
ELSE
ROLLBACK;
ENDIF
ENDIF
“保留”按钮(cd_save)的clicked事件代码为:
stringls_passenger_name,ls_passenger_number,ls_passenger_company,
ls_passenger_time,ls_passenger_address,ls_passenger_planeId
intli_credit
decimalldec_message
ls_passenger_name=Trim(ls_passenger_name.text)
ls_passenger_sex=Trim(ls_passenger_sex.text)
ls_passenger_number=Trim(ls_passenger_number.text)
ls_passenger_company=Trim(ls_passenger_company.text)
ls_passenger_time=Trim(ls_passenger_time.text)
ls_passenger_address=Trim(ls_passenger_address.text)
ls_passenger_planeid=Trim(ls_passenger_planeid.text)
li_credit=Integer(em_credit.text)
ldec_message=Dec(en_message.text)
INSERTINTO“message”
(“Passenger_name”,
“Passenger_sex”,
“Passenger_number”,
“Passenger_company”,
“Passenger_time”,
“Passenger_address”,
“Passenger_planeId”,
“Credit”,
“Message”)
VALVES(:
ls_passenger_name,
:
ls_passenger_sex,
:
ls_passenger_number,
:
ls_passenger_company,
:
ls_passenger_time,
:
ls_passenger_address,
:
ls_passenger_planeId,
:
ls_Credit,
:
ldec_Message);
IFSQLCA.SQLcode<>0THEN
ROLLBACK;
MessageBox(“错误”,“存盘失败”,Stopsign!
)
RETURN
ENDIF
COMMIT;
MessageBox(“提示”,“存盘成功!
”)
sle_passenger_name.Text=“”
sle_passenger_sex.Text=“”
sle_passenger_number.Text=“”
sle_passenger_company.Text=“”
sle_passenger_time.Text=“”
sle_passenger_address.Text=“”
sle_passenger_planeId.Text=“”
sle_passenger_number.SetFocus()
dw_message.Retrieve()
“检索”按钮(cd_retrieve)的clicked事件代码为:
Longll_rows
Stringls_passenger_name,ls_passenger_number
IFTrim(sle_passenger_name.text)=“”andTrim(sle_passenger_number.text)=“”
THEN
MessageBox(“提示”,“请输入姓名或身份证好嘛!
”)
sle_passenger_number.SetFocus()
RETURN
ENDIF
ls_passenger_number=Trim(sle_passenger_number.text)
IFLen(ls_passenger_number)>0
THEN
dw_message_input.SetFilter(“passenger_number=’”+ls_passenger_number+’””)
dw_message_input.Filter()
ll_rows=dw_message_input.Retrieve()
IFll_rows=0,THEN
MessageBox(“提示”,“无记录!
”)
RETURN
ENDIF
sle_passenger_name.Text=dw_message_Input.Object_name[1]
RETURN
ENDIF
ls_passenger_name=Trim(sle_passenger_name.text)
dw_message_input.SetFilter(“passenger_name=’”+ls_passenger_name+’””)
dw_message_input.Filter()
ll_rows=dw_message_input.Retrieve()
IFll_rows=0
THEN
MessageBox(“提示”,“无记录!
”)
ENDIF
=dw_message_input_object_p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 系统分析 设计