




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长沙理工大学程序设计实践课程设计报告张 昭学 院 计通学院 专 业 计算机科学与技术 班 级 计算机 03-05 学 号 28 学生姓名 张 昭 指导教师 卢曼莎 课程成绩 完成日期 2006 年 9 月 20 号1飞机订票系统分析与设计学生姓名:张昭 指导老师:卢曼莎摘要: 随着城市生活节奏的加快,飞机已经成为人们使用越来越频繁的交通工具,随之而来的问题是,如何能让旅客最快、最便捷的订到机票。这就需要一个合适的订票系统来处理航班、机票、旅客等信息,方便售票人员查询,插入,删除各种信息。本课程设计结合实际的订票、售票制度,经过实际的需求分析,采用功能强大的VC 作为开发工具、SQL 作为数据库开发出来的飞机订票管理系统。本文首先阐述了飞机订票管理系统的需求分析,描绘了本飞机订票管理系统的基本模型图。通过对数据库技术的现状与发展、数据库系统的选择原则、系统开发工具的选择一系列问题的分析,确定了系统的开发平台。详细给出了从飞机订票管理系统分析到总体设计详细设计与实现及测试的各个环节,最后对本系统做出了客观评价,指明了系统的现实意义、缺点以及系统的升级方向。关键词:飞机订票系统;数据库;SQL1 需求分析为了方便旅客,拟开发一个机票预订系统。旅行社工作人员把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞前一天凭票通知和帐单交款取票,系统校对无误即印机票给旅客。1.1 用数据流图来描绘系统的逻辑模型:票预订系统的基本系统模型如下:信息 取票信息机票旅行社工作人员是数据源点,旅客是数据终点。图 1-1 基本模型1、进一步细化基本系统模型, “信息处理” 、 “订票处理” 、 “取票处理”是系统旅行社工作人员 订票系统 旅客2必须完成的主要功能,将代替“订票系统” ,可得 D1 订票信息取票信息旅客信息信息取票信息 机票D2 取票信息图 1-2 细化模型图增加“订票信息”和“取票信息”两个数据存储。2、再进一步细化可得D1 订票信息 D3 订票清单 D2 取票信息取票信息订票信息 订票 清单 订票清单旅客信息 订票信息 信息 信息取票信息 取票信息取票信息取票信息机票D2 取票信息图 1-3 最终模型图旅行社工作人员1信息处理3取票处理2订票处理旅客旅行社工作人员1.1接收信息1.2信息处理2.1订票处理3.1取票信息2.2更新订票清单处理3.2打印机2.3产生订票信息处理2.4打印机旅客3将 1.1、1.2、2.2 和 3.1 放在同一个边界内,这个系统将联机地接收信息、信息处理订票处理、更新订票清单处理及取票处理;将 2.3 、2 .4 和 3.2 放在同一边界内,以批量方式产生信息给旅客。1.2 数据字典名字:旅客信息别名:描述:姓名、性别、工作单位、旅行时间、旅行目的地、身份证号码定义:旅客信息=姓名+ 性别+工作单位+身份证号码+旅行时间+旅行目的地位置:接收信息信息处理订票处理更新订票清单处理名字:身份证号码别名:描述:在订票清单中唯一被标志的关键城定义:身份证号码=18 个字符位置:订票信息订票清单取票信息名字:姓名别名:描述:在订票清单中除身份证号码外另一个被标识的城定义:姓名=10 个字符位置:订票清单订票信息取票信息名字:机票别名:描述:旅客凭此来坐飞机定义:机票=日期+ 源地点+目的地点+航班+ 坐次+起飞时间位置:输出到打印机名字:取票通知别名:描述:取票证据之一定义:取票通知=姓名+ 身份证号码+取票时间+ 航班位置:取票信息取票处理打印机4表 1-1 数据字典1 为把客户的数据要求清晰明确的表达出来,建立一个 ER 模型。图 1-4 ER 模型图名字:取票信息别名:取票证据描述:旅客凭此证据在飞机起飞前一天取票定义:取票信息=取票通知+账单位置:取票信息打印机名字:帐单别名:描述:取票凭证之一定义:帐单=姓名+ 身份证号码+交款数额位置:取票信息打印机性别 旅行时间旅行目的地名字 旅客工作单位订票/取票机票起飞时间日期 源地点 目的地点 航班 坐次信息处理旅行社工作人员身份证号码52、 IPO 图能够方便地描绘输入数据。对数据的处理和输出数据之间的关系。下面用改进的 IPO 图表来描述图 1-5 IPO 图表可采用 VB、VF 、VC、PB 等算法来完成上述模块IPO 表系统:机票预订系统 作者:丁霞模块:信息处理 日期:编号:1注释:注释:处理:盘但是订票还是取票,并调用相应的功能模块。局部数据元素:系统:机票预订系统 作者:丁霞模块:取票模块 日期:编号:3注释:被调用:信息处理调用:输入:姓名、身份证号码、航班、日期输入:机票处理:将输入的信息传给本模块,校对无误后打印机票局部数据元素: 被调用: 调用:订票模块和取票模块输入:订票信息取票信息输出:订票信息取票信息IPO 表系统:机票预订系统 作者:丁霞模块:订票模块 日期:编号:2注释:被调用:信息处理 调用:输入:姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地输出:取票信息处理:将旅客信息输给本模块,根据旅客要求安排航班,并给旅客在飞机起飞前一天取票的证据即取票通知和账单局部数据元素;62 总体设计经过需求分析阶段的分析过程,已粗略的表现了整个设计过程。总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。因此,总体设计阶段要完成两个小阶段,首先要进行系统设计,从需求分析阶段的数据流图设想完成系统功能的最佳物理方案,然后进行软件结构设计,确定软件有哪些模块组成以及这些模块之间的动态调用关系。用结构图来描绘软件结构将需求分析阶段的数据流图进一步细化,经分析从而得到软件结构图,如下:无票 退票或换票D1 订票信息 D3 订票清单 D2 取票信息订票信息 订票清单 取票信息订票 旅客 订票 取票信息 信息 清单 信息信息 取票 取票信息取票信息 信息 机票取票信息 机票取票信息D2 取票信息出错图 2-1 数据流图(二)由上面的数据流图可软件结构图 旅行社工作人员1.1接收信息1.2信息处理2.1订票处理3.1取票处理2.2更新订票清单处理3.2打印机2.3产生订票信息处理2.4打印机旅客7图 2-2 软件结构图3 详细设计详细设计阶段的关键任务是确定怎样具体地实现所需要的目标系统,也就是要设计出程序的“蓝图” ,除了应该保证程序的可靠行之外,使下一步即将要编的程序可读性好,容易理解,容易测试和容易修改,维护是详细设计阶段最重要的目标。1)选择 PAD 图作为完成详细设计的工具,根据总体设计中的数据流图可得 PAD 图为: p1.1p1 p2p1.2cp3 p2.1 def p3.1def p2.2p1:信息处理 p2:订票处理 p2.3 p3.2p3:取票处理c:旅客信息 p2.4图 3-1 PAD 图机票预定系统信息处理 取票信息 机票订票处理系统取票处理系统旅客订票信息旅客取票信息订票信息姓名性别旅行时间身份证号码旅行目的地工作单位取票信息取票通知帐单接收信息P1P2P382)在总体设计中得出了软件结构设计之后,在详细设计阶段,可与使用面向数据结构地方法来设计每个模块的处理过程。选用 Jackson 方法来描绘数据结构。首先、得到数据结构的 Jackson 图: 输入数据结构 输出数据结构由数据结构的 Jackson 图到处描绘程序结构的 Jackson 图订票处理信息处理接收信息旅客信息 取票信息机票取票处理取票信息取票通知 帐单机票取票处理取票信息取票信息 账单订票处理信息处理接收信息旅客信息 取票信息94 编码人和计算机通信仍然必须使用人工设计的语言,也既是程序设计语言。编码就是把软件设计的结果翻译成计算机可以“理解”的形式用某种程序设计语言书写的程序。机票预定系统采用 PB(Power Builder)语言来编写程序。基本界面:W_ messageW_ plane_ message图 4-1 基本界面旅客信息姓名性别身份证号码工作单位旅行时间旅行目的地航班姓名性别身份证号码工作单位旅行时间旅行目的地航班查询条件姓名 身份证号码增加 删除 保存 检索 退出姓名 性别 身份证号码工作单位旅行时间航班 起止时间机型 源地点目的地坐次 票价查询条件姓名 身份证号码查询 删除 退出10工作前的准备工作首先在 power builder 中创建 Adaptive server anywhere 本地数据库其次将 power builder 与数据库连接即连库接着在 power builder 中操作 Adaptive server anywhere 数据库的表在使用数据库表之前首先要创建表。使用 power builder 的数据库画板创建表进入 columns 试图工作区Column name Data Type Width Null DefaultPassenger-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-plane id Char 12 No (None)表 4-1 passenger 表在创建一个名为 plane_ message 的表如下Column name Data Type Width Null DefaultPassenger-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-plane id Char 12 No (None)Passenger-start and endTime 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-1 plane_mesage 表(一) 、创建界面前的还要做的准备工作(1) 首先建数据库,在连接数据库。(2) 建表(3) 填入数据(4) 建立数据窗(5) 修改标题存盘 dplane(6) 建立窗口(W man)主窗口(W man)代码:dw- 1. Settrans Object ( SQLCA )dw- 1. Retrieve ()(7) 窗口 open(打开)事件的代码:SQLCA.DBMS=Profile String (“PB.INI”, “Database”, “DBMS ” ,“”)SQLCA. Database=Profile String (“PB.INI”, “Database”, “Data Base”, “”)SQLCA. Log ID=Profile String (“PB.INI”, “Database”, “Log ID”,“”)SQLCA. Log Pass=Profile String (“PB.INI”, “Database”, “Log Pass word”, “”)SQLCA. Server Name=Profile String (“PB.INI”, “Database”, “Server Name”, “” )11SQLCA. User ID=Profile String (“PB.INI”, “Database”, “User ID ”, “”)SQLCA. DB Pass=Profile String (“PB.INI”, “Database”, “Database Password”, “”)SQLCA. Lock=Profile String (“PB.INI”, “Database”, “Lock”, “”)SQLCA. Db Pam = Profile String (“PB.INI”, “Database”, “Db Pam”, “”)CONNECT;W_ message:信息输入窗口创建选项:Title= “ 信息录入 ”;Window Type= “response!”;dw _ message. Data Object = “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. Mask Data Type = “date mask!”;em_ time. Mask = “yy/mm/dd”;me_ address. Text = “旅行目的地 ”;sle_ address. Text = “”;me_ plane id. Text = “航班”;sle_ plane id. Text = “”;cd_ save. Text = “ 保存”;cd_ exit. Text = “退出”;cd_ delete. Text = “删除”;cd_ add . Text = “增加” ;cd_ retrieve. Text = “检索” ;cd_ exit.Cancel =TRUE窗口的 open 事件代码为:dw_ message. Set Trans Object (SQLCA)dw_ message. Retrieve ()sle_ passenger. number . Set Focus ()Windows_ cen (this)“身份证号码”编辑框(sle_ passnger-number)的 modified 事件代码为:String ls_ passenger_ numberLong ll_ rowsls_ passenger_ number = Trim(sle _ passenger_ number. text)IF ls_ passenger_ number = “”THENdw_ message. Set Filter (“”)dw_ message. Filter ()sle_ passenger_ name. Text = “”em_ credit. Text = “0”12ELSEKw_ message. Set Filter (“passenger _number =”+ ls _ passenger _number +”)dw_ massage. Filter ()ll_ rows = dw _ message. Retrieve ()IF ll_ rows0 THENROLLBACK;Message Box(“错误”, “存盘失败”, Stop sign!)RETURNEND IFCOMMIT;14Message Box( “提示”, “存盘成功!”)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_ plane Id . Text = “”sle_ passenger_ number. Set Focus ()dw_ message. Retrieve ()“检索”按钮(cd_ retrieve)的 clicked 事件代码为:Long ll_ rowsString ls_ passenger_ name , ls_ passenger_ numberIF Trim (sle_ passenger_ name. text)= “”and Trim (sle_ passenger_ number. text)= “”THENMessage Box( “提示”, “请输入姓名或身份证好嘛!”)sle_ passenger_ number. Set Focus()RETURNEND IFls_ passenger_ number = Trim(sle_ passenger_ number. text)IF Len (ls_ passenger_ number)0 THENdw_ message_ input. Set Filter (“passenger_ number =”+ ls_ passenger _ number +”)dw_ message_ input . Filter ()ll_ rows = dw_ message_ input. Retrieve ()IF ll_rows=0,THENMessage Box( “提示”, “无记录!”)RETURNEND IF sle_ passenger_ name. Text = dw_ message_ Input. Object_ name1RETURNEND IFls_ passenger_ name = Trim (sle _ passenger_ name . text)dw_ message _ input. Set Filter (“passenger_ name =”+ ls_ passenger_ name +”)dw_ message_ input . Filter ()ll_ rows = dw_ message_ input. Retrieve ()IF ll_rows=0 THENMessage Box(“提示”, “无记录!”)END IFsle_passenger_number.text=dw_message_input_object_passenger_number1右边数据窗口控件(dw_ message _input)的 clicked 事件代码为:String ls_ passenger_ numberLong ll_ rowsIF row = 0 THEN row = 1ls_ passenger_ number = this. Object. Passenger_ number row15dw_ message_ input. Set Filter (“passenger_ number =”+ ls_ passenger_ number +”)dw_ message_ input . Filter ()ll_ rows = dw_ message_ input. Retrieve ()“退出”按钮(cd_ exit) 的 clicked 事件代码为:Close (parent)5 测试软件测试在软件生命周期中横跨两个阶段。通常在编写出每个模块之后就对他做必要的测试(称为单元测试) ,模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一阶段。在这个阶段结束后,对软件系统还应该进行各种综合测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 破伤风考试题及答案
- 药物使用风险评估试题及答案
- 考试遴选笔试试题及答案
- 文化产业管理证书考试全局观试题及答案
- 文化产业管理证书考试的前沿研究与行业动态试题及答案
- 行车规章考试试题及答案
- 社会工作考研试题及答案
- 西医临床备考有效性试题及答案总结
- 药剂学未来发展中的新机遇与挑战试题及答案
- 系统复习2025年育婴师考试的试题及答案
- 短期资金拆借合同样本
- 汽车液压主动悬架系统的设计与仿真
- 公共卫生应急管理体系建设的调研报告
- 数学-天一大联考2025届高三四省联考(陕晋青宁)试题和解析
- 客户体验与满意度提升作业指导书
- 2023 年浙江省事业单位 招聘考试真题及答案解析
- 供配电与照明知到智慧树章节测试课后答案2024年秋内蒙古建筑职业技术学院
- 店面装修施工方案范文
- 法律职业伦理知到智慧树章节测试课后答案2024年秋温州大学
- 2025年山西地质集团招聘笔试参考题库含答案解析
- 《1+X服装陈列设计》课件-服装店展示空间分类
评论
0/150
提交评论