飞机订票系统分析与设计.docx

上传人:b****3 文档编号:3896880 上传时间:2022-11-26 格式:DOCX 页数:23 大小:623.75KB
下载 相关 举报
飞机订票系统分析与设计.docx_第1页
第1页 / 共23页
飞机订票系统分析与设计.docx_第2页
第2页 / 共23页
飞机订票系统分析与设计.docx_第3页
第3页 / 共23页
飞机订票系统分析与设计.docx_第4页
第4页 / 共23页
飞机订票系统分析与设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

飞机订票系统分析与设计.docx

《飞机订票系统分析与设计.docx》由会员分享,可在线阅读,更多相关《飞机订票系统分析与设计.docx(23页珍藏版)》请在冰豆网上搜索。

飞机订票系统分析与设计.docx

飞机订票系统分析与设计

长沙理工大学

《程序设计实践》课程设计报告

 

张昭

 

学院计通学院专业运算机科学与技术

班级运算机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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1