一、系统概述 ........................................................................................................................... 1
1.1、现状描述 .................................................................................................................. 2 1.2、系统目标 .................................................................................................................. 2 1.3、系统开发方法 ......................................................................................................... 2 1.4、开发计划等 ............................................................................................................. 2 二、需求分析 ........................................................................................................................... 3
2.1引言 ............................................................................................................................. 3 2.2对功能的规定 ............................................................................................................. 4 2.3 数据描述 .................................................................................................................... 5 2.4 对性能的规定 ............................................................................................................ 8 三、概要设计 ........................................................................................................................... 9
3.1引言 ............................................................................................................................. 9 3.2总体设计 ................................................................................................................... 10 3.3接口设计 ................................................................................................................... 14 3.4运行设计 ................................................................................................................... 15 3.5系统数据结构设计 ................................................................................................... 16 3.6系统出错处理设计 ................................................................................................... 18 四.详细设计 ............................................................................................................................ 18
1引言 .............................................................................................................................. 18 2程序系统的结构 .......................................................................................................... 19 3程序1(标识符)设计说明 ....................................................................................... 23 4程序2(标识符)设计说明 ....................................................................................... 25 五. 软件实现 .......................................................................................................................... 32
1、软件实现 ................................................................................................................... 32 2、软件界面截图 ........................................................................................................... 32 六、测试分析 ......................................................................................................................... 32
1、软件测试 ................................................................................................................... 32 七、收获和体会 ..................................................................................................................... 33
一、系统概述
1
1.1、现状描述
时代在进步,信息在进步,思想在进步,人们的活动范围也随之越来越大。旅游成为
人们业余活动的首选,此时,如何能方便且准确进行民航订票,这就也是随之产生的问题。如果能实现订票的自动化,无疑将给民航公司带来很大的方便。
1.2、系统目标
机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
1.3、系统开发方法
根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server结构,将机票预定系统划分为两个子系统:客户端子系统,服务器端子系统。
1.4、开发计划等
该系统计划采用客户端和服务器端结构,分别实现处理旅客数据和生成旅客所需数据功能。
1.4.1 客户端子系统
在客户端系统的功能实现上,可以分为以下几个部分: [1]旅客信息的输入和统计
旅行社把旅客要求订票的信息由专人负责输入。这部分功能是客户端子系统的基本部分,这个功能是以后各个部分的基础。系统要求做到即能够从其它子系统享一部分信息,又有方便的操作界面工手工输入旅客信息。这部分要求对输入的数据进行简单的统计,供航空公司进行查询和宏观。
[2]旅客信息的存储:
将旅客的信息存储到旅行社的客户端系统中,以备以后的取票确认以及查询。 [3]机票信息的传递及接收:
将旅客所须的机票信息由旅行社客户端由网络传到航空公司的服务器上,并 且接受航空公司返回的航班信息,然后存储起来。
[4]取票通知及帐单的生成和打印:
把已存储的从航空公司返回的航班机票信息打印出来,并且生成帐单打印出来一起交给旅客。
印出机票给已经订票的旅客:根据旅客的取票通知及帐单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。
[5]机票销售情况的核算
这一功能是在上一功能的基础上,对机票销售额进行单项核算,得到该旅行社的销售情
2
况并把核算结果作为企业报表输出。
1.4.2 服务器端的功能要求
通过计算机网络将客户端与服务器的数据库相连,将从客户端得到的信息进行处理,实现航班查询,机票生成,销售统计,综合信息查询等子系统。以计算机成本核算为中心,实现销售业务的计算机自动化,为航空公司降低成本、提高销售额、经营决策提供及时精确的依据。
在客户端系统的功能实现上,可以分为以下几个部分: [1]接收由旅行社客户端发回的所需机票信息:
通过网络接收机票信息并存入到服务器的数据库中。 [2]生成航班信息:
根据所需机票信息(时间,地点),在数据库中查询并得到正确的航班的信息(价格,时间,等级),分配所需的机票数并在数据库中做出已售出的标记。
[3]传递航班信息到客户端(旅行社):
把得到的航班信息通过网络传递到旅行社。 [4]接收旅行社的反馈信息: 对旅行社的反馈信息进行分析,把已经售出的机票进行统计,对被旅客所退掉的机票要进行数据库的恢复。
[5]印出机票给已经订票的旅客: 根据旅客的取票通知及帐单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。
[6]销售额的分析和管理
这一步骤的功能要求包括对销售的机票进行分析,这一工作是在前面的基础上,以计算机为工具,对机票预定系统的功能和目标进行扩充。它以财务管理学为理论基础,以辅助决策为目标,以机票销售数据为中心,广泛采用统计学、运筹学的分析方法,对销售信息进行深层加工,建立反映不同航班需求的模型,提供管理上所需的各种辅助决策信息和财务信息。这一要求是机票预定系统的最高目标,将通过系统运行后获得的大量销售历史数据基础上,实现这一目标。
二、需求分析
2.1引言
2.1.1 编写目的(阐明编写需求说明书的目的,指明读者对象。)
本系统的最终用户为航空公司售票员,凡是订票的客户。根据飞机订票的顾客和航空公司售票员的调查、交流和询问。得出用户的下列的实际需求。 2.1.2功能分析
根据航空公司具体情况,本系统设置客户端和服务端,其中服务端需要处理数据为系统的基本信息,包括:1、航班的基本信息;2、机票销售网点信息;3、航班查询的信息;4、订票业务的基本信息;5、退票业务的基本信息;6、机票改签业务的基本信息。
客户端包括:1、航空公司管理人员;2、销售网点的售票员;3、订票的顾客。 2.1.2 任务概述
3
航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.2对功能的规定
一、 系统的基本信息。 1、 航班的基本信息
航空公司具有若干航班,航班有出发地、目的地、出发时间、到站时间、执行飞行任务的飞机号。顾客可以任意选择航空公司的某趟航班。 2、 机票销售网点信息
航空公司有若干的机票销售网点,顾客可以到任何机票销售网点去查询航班的信息,根据顾客的意愿自己选择定哪个班次的飞机票。 3、 航班查询的信息
顾客可以去航空公司的任意一个售票网点去查询信息。当到达销售网点时,售票员根据顾客提出的出发地、目的地或出发时间等信息来查询航班的基本信息,例如:航班号、出发时间、票价、飞行的时间等信息。 4、 订票业务的基本信息
售票员根据顾客的要求进行查询,在查询的基础之上根据顾客的选择的航班信息输入顾客的信息(顾客姓名,证件号),等待顾客核对信息、确认。收款,执行出票操作。 5、 退票业务的基本信息
当顾客有突发事件或改变自己的行程计划的时候可以到售票网点去办理退票业务。售票员根据顾客出示自己的有关证件和飞机票等信息查询该班次的航班。根据航空公司的退票规定进行退票操作,收取一定的退票手续费,将剩余的票额退返回顾客,收回飞机票。 6、 机票改签业务的基本信息
当顾客有紧急事物耽误或改变自己的行程时可以去航空公司的任一售票网点去办理改签业务。当顾客到达售票网点时,售票员根据顾客出示自己的有关证件和飞机票等信息查询该班次的航班。然后收回原来的飞机票,再根据顾客提供的出发地、目的地、出发时间来查询航班,根据顾客选择的航班出票据,收取改签费。 二、 用户对系统的要求 1、 航空公司管理人员 a、 信息要求
航空公司的管理人员可以查询该公司所拥有的所有航班的信息,以便及时核对、更正信息。 b、 处理要求
班由于特殊情况:如出现恶劣的天气的时候航班以至于飞机无法起飞的时候、航班延误的时候、取消航班的时候,航空公司的管理人员就要修改航班的基本的基本信息。如修改航班的出发时间、到站时间、执行飞行任务的飞机。 c、 安全性与完整性要求 安全性要求:
4
(1) 系统应设置用户登陆账号、密码。对与不同的用户采用不同的操作权限,如售
票员无法改变航班的票价等信息,只能改变票数。保证数据库的安全,不被轻易的改变。维护了系统完整性。
(2) 航空订票系统应对于不同的数据设置不同的访问权限,访问用户可查询和
处理数据的类别额内容。
完整性要求:
(1)各种信息记录的完整性,信息记录内容不能为空; (2)据间相互的联系的正确性;
(3) 相同的数据在不同记录中的一致性。 2、 销售网点的售票员 a、 信息要求
销售网点的所有的售票人员都能查询到该公司的所有航班的所有相关信息,包括航班班次、出发地、目的地、出发时间、到达时间、票数等信息。以方便售票员方便查询航班、卖票,增加公司的收入。 b、 处理要求
当航班的信息改变时,销售员可以改变航班的信息,只不过有权限的改变,不能改变所有的航班信息。例如 当顾客订票、退票、改签时可以改变航班的票数, 但是票价售票员没有权限更改。 3、 订票的顾客 a、 信息要求
的顾客只能查询查询航班的基本信息,如航班号、出发地、目的地、出发时间、到站时间、票价、票额剩余量。 b、 处理要求
订票顾客根本没什么处理信息的要求,或者说订票的顾客没有任何权限更改航班的基本信息,只能做简单的查询操作。
2.3 数据描述
1动态数据(包括输入数据和输出数据。) 输入数据:
名字:旅客信息 别名: 描述:旅客的个人信息,用于对旅客的确认 定义:旅客信息=姓名+性别+工作单位+身份证号码+旅行时间 +旅行目的地 位置:输入到旅行社端(client端) 5 名字:订票旅客清单 别名: 描述:已订票的旅客的记录 定义:订票旅客清单=旅客信息的合集 位置:输入到旅行社端(Client端) 名字:订票信息 别名: 描述:旅客的旅行时间和目的地,用于确定旅客的航班 定义:订票信息=旅客旅行时间+旅客旅行目的地 位置:传输到航空公司端(Server端) 名字:航班机票信息 别名: 描述:旅客的航班信息,根据旅客的旅行时间和目的地确定 定义:航班机票信息=旅客机票时间+旅客机票班次 位置:传输到旅行社端(Client端)
输出数据:
名字:取票通知 别名: 描述:旅客领取机票的凭证 定义:取票通知=旅客姓名+领票时间 位置:输出到打印机
名字:售出机票信息 别名: 描述:旅客的航班机票的信息 定义:售出机票信息=旅客的航班机票 位置:输出到打印机 6 名字:旅客订票记录 别名: 描述:已订票的旅客在航空公司的记录 定义:旅客订票记录=旅客姓名+航班机票信息 位置:输出到航空公司端(Server端)
2数据词典 航班数据字典 属性号 航班号 票数 出发地 目的地 出发时间 到站时间 航空公司代码 飞机号 机票数据字典 属性号 机票号 座位号 航班号 票价 票类型
机场数据字典 属性号 机场代码 机场名 机场地址 机场电话
飞机数据字典
存储代码 Ano Aname Aaddr Aphone 类型 Char Char Char Char 长度 20 20 20 20 备注 机场的代码 机场的名字 机场的地址 机场的电话号码 存储代码 Tno Tseat Fno Tprice Tsty 类型 Char Char Char Float Char 长度 20 10 20 5 20 备注 飞机机票编号 飞机的座位号 航班代码 飞机票的价格 舱的等级 存储代码 Fno Fquan Fori Fdest Fsta Ffis Cno Fno 类型 Char Int Char Char Char Char Char Char 长度 20 8 20 20 20 20 20 20 备注 航班代码 飞机票数(飞机上的人数) 飞机起飞的城市 飞机降落的城市 飞机起飞的具体时间(年月日时分) 飞机降落的具体时间(年月日时分) 航空公司的代码 飞机编号 7
属性号 飞机号 飞机名 载客量 航程 航空公司数据字典 属性号 公司代码 公司名 公司地址 公司电话
销售网点数据字典 属性号 售点代码 售点名 售点地址 售点电话 订票数据字典 属性号 订票人身份证号 订票人名字 订票时间 售点代码 机票号 用户数据字典: 属性名 用户ID 用户密码 用户类型 存储代码 Pno Pname Plquan Plength 存储代码 Cno Cname Cadd Cphone 类型 Char Char Int Float 类型 Char Char Char Char 长度 20 20 10 20 长度 20 20 20 20 备注 飞机号 飞机的名字 飞机最大载客量 飞机飞行的最远距离 备注 航空公司的代码 航空公司的全名 航空公司具体地址 航空公司的电话号码 存储代码 Sno Sname Sadd Sphone 存储代码 Bno Bname Btime Sno Tno 存储代码 Uname Upassword Utype 类型 Char Char Char Char 类型 Char Char Char Char Chra 类型 char char tnyint 长度 20 20 20 20 长度 20 20 20 20 20 长度 20 20 1 备注 飞机票销售网点的代码 飞机票销售网点的名字 飞机票销售网点的地址 飞机票销售网点的电话 备注 订票人有效证件的号码 订票人的名字 订票的具体时间 飞机票销售网点的代码 飞机机票编号 备注 普通、售票员、公司管理人员或超级用户
2.4 对性能的规定
1精度
目标软件输入输出数据要求为三种类型:字符型、整型、双精度型。 传输过程中除字符型外一律采用double型。 2灵活性
1、 当操作行为超出操作权限的时候,系统会自动提示并拒绝操作。
2、 目标软件可运行在Windows 2000,Windows XP等操作系统上,当操作系统升级改
变后,不影响目标软件运行情况。
3、 目标软件作为航空公司管理系统的一部分,与航空公司其他管理类应用软件按照模
8
块定义接口,当其他软件接口变化时,系统会自动提示更改哪部分的定义来完成接口变更。
4、 数据传输过程中要求采用double型精度的数据类型,如果不是double型,软件将
其自动转换成double型。
5、 当操作货查询内容已过有效时限,目标软件将给出提示并自动查询相关内容。 6、 航空公司管理软件中任一一个软件出现计划变更或取消,目标软件将根据耦合度做
出判断,并自动提示出相应的更改。
3输人输出要求
对于航空订票系统的输入数据分为两种类型,如果用户已知服务器ip,用户名,密码,则输入数据为服务器ip,用户名,密码;如果用户只知道需要的资源名称和类型,则输入需要的资源名称和类型。系统输出为用户需要的资源列表。并下载用户选择的文件。
对于预览功能,用户需要选择要预览的文件,系统输出该文件的一部分或全部内容,如果用户选择保存预览内容,则保存。
三、概要设计
3.1引言
3.1.1编写目的
在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。
本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。 3.1.2背景
机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下:
客户程序 机场飞机起飞管理 (旅行社) : : (航空公司) 飞机起飞数据 网
客户程序 服务器及程序
络9
客户程序 客户程序 图3.1 系统与其他系统关系图
3.1.3定义
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。 SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。 主键:数据库表中的关键域。值互不相同。 外部主键:数据库表中与其他表主键关联的域。 ROLLBACK: 数据库的错误恢复机制。 3.1.4参考资料
[1]全永郯.城市交通控制. 北京:人民出版社,19
[2]贺国光等.ML-1型路口交通信号自学习智能式控制机.仪器仪表学报.1993,14:(2),127-131
[3]Mandal M,Chen E,Wang X. Multiresolution motion estimation techniques for video compression.Optical Engineering.1996,35: (1),128-136 [4]王珊,萨师煊.数据库系统概论.高等教育出版社,2007.04 [5]张海潘.软件工程导论.清华大学出版社,2006.10
[6]龚慰民,杨志强.VB程序设计简明教程.高等教育出版社,2006.03
3.2总体设计
3.2.1需求规定
航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要单明了,易于操作,服务器程序利于维护。 3.2.2运行环境
系统将由两部分程序组成,安装在各旅行社客户机上的客户程序及航空公司内的数据服务器程序。
根据调研得知所有旅行社的计算机配置均在Pentium 4级别以上,客户程序应能够在Pentium 4级别以上, Win XP环境下运行。 3.2.3基本设计概念和处理流程
下面将使用(结构化设计)面向数据流的方法对机票预定系统的处理流程进行分析。系统可分为两大部分:一、客户机上的程序,二、服务器上的程序。以下将分别对系统的这两大部分进行流程分析:
10
1.客户机程序流程
客户机上的输入信息为旅客资料或帐单号,还包括一个定票/领票选项。输出为打印帐单或机票,和确认或出错信息。其内部处理流程如下:
旅客资料2 3 4 经网络送服 务器程序 定票/取票 1 7 8 帐单号 5 6 打印帐单 13 12 输出确定预定信息 14 11服务器经网 络送来回答 输出错误原因 10 15 16 17 9 输出确定预定信息 14 18 19 打印机票 20
图3.2 内部处理流程图
下面对各模块(以数字表示)进行功能说明:
1.读入并确定(定票/领票) 它是一个事务处理中心,若输入是定票时转入2 ,输出则转入5。
2.读入旅客资料 读取所输入的旅客资料,并将其格式化,将格式化数据送3。 3.检验输入资料 检验格式化输入资料,初步检查输入是否有误,它是一个事务处理中心,有误则转2再次读入,检查无误则将数据送4。 4.准备服务器数据 由格式化旅客资料准备需发送到服务器的数据,将准备好的数据送7。 5.读入帐单号 读取所输入的帐单号,并将其格式化,将格式化数据送6。 6.准备服务器数据 由格式化帐单号准备需发送到服务器的数据,不同于4,它将准备的是帐单号,将准备好的数据送7。
11
客户机经网络送来的数据 来自客户机 7.准备网络数据包 将数据准备/加密成网络传输数据包。 8.网络数据发送 将数据包经网络发送到服务器程序, 它是程序与网络的接口。 9.网络数据接受 接受由服务器程序经网络传送到客户机的数据包, 它是程序与网络的接口。 10.解开/判断 解开9 所接受的数据包,并判断数据是定票数据或是领票数据,它是一事务处理中心,是定票则将数据送11,是领票则将数据送18。 11.定票成功? 由数据判断定票是否成功,它是一事务处理中心,若定票成功则将数据送11,不成功则将数据送18。 12.准备输出数据 由接收的服务器数据准备输出数据,其中关于帐单的数据将送入13,其他包括旅客资料等送入14。 13.打印帐单 由帐单信息处理帐单格式并打印出帐单。 14.输出定位确定 在屏幕上显示确定定位及其他信息。 15.判断错误 由数据判断出错误类型,将类型送到16。 16.准备错误语句 由具体错误类型准备错误语句,送17。 17.输出错误语句 在屏幕上显示错误语句。 18.领票核对成功? 由数据判断领票核对是否成功,它是一事务处理中心,若成功则将数据送19,不成功则将数据送15。 19.准备机票输出数据 由接收的服务器数据准备将打印的机票数据数,据其中关于帐单的机票的数据将送入20,其他包括旅客资料等送入14。 20.打印机票 由机票信息处理机票格式并打印出机票。 2. 服务器程序流程 7 客户机经 4 5 6 网络送来 8 9 的数据 SQL SERVER 16 17 1 2 3 (班机,票务数据库) 送客户机 13 10 11 12 14 15 图3.3 服务器程序流程图
下面对各模块(以数字表示)进行功能说明:
1.网络数据接收 接受由客户机程序经网络传送到客户机的数据包, 它是程序与网络的接口。
2.解开数据 解开/解密打包的数据,并将恢复的数据格式化送入3。 3.判断操作 由数据判断需要做什么数据库操作,它是一事务处理中心,若为定票操作则将数据送4,若为领票操作则将数据送15。 4.准备数据库查询语句 由定票数据准备访问SQL SERVER数据库所需的SQL 语句,
12
送入5。 5.数据库操作 运行SQL 语句,查询并存入数据库,获得相应的定票数据,将数据送入6。它需包括初步对查询的判断。它必须为乘客安排可抵达目的地的有座位的航班。 6.判断查询是否成功 利用查询所得的数据判断定票是否成功,它是一事务处理中心,若为定票操作成功则将数据送7,若不成功则将数据送8。 7.准备回送数据 准备定票成功后需回送客户机程序的数据,送16。 8.确定原因 由查询数据判断定票不成功的原因,送9。 9.准备回送数据 根据不成功的原因,准备需送回客户机程序的数据,送入16。 10.准备数据库查询语句 由领票数据准备访问SQL SERVER数据库所需的SQL 语句,送入11。 11.数据库操作 运行SQL 语句,查询并存入数据库获得相应的领票数据,将数据送入6。它需包括初步对查询的判断。 12.判断查询是否成功 利用查询所得的数据判断领票是否成功,它是一事务处理中心,若为领票操作得到确认则将数据送11,若不成功则将数据送8。 13.准备回送数据 准备领票确认后需回送客户机程序的数据,送16。 14.确定原因 由查询数据判断领票不能确认的原因,送15。 15.准备回送数据 根据不成功的原因,准备需送回客户机程序的数据,送入16。 16.准备网络数据包 将数据准备/加密成网络传输数据包。 17.网络数据发送 将数据包经网络发送到服务器程序, 它是程序与网络的接口。 以上显示的各模块数字相同的为同一模块;由于事务流处理上的便利,将有些功能模块,拆分到各事务流中。 3.2.4结构
下面以结构图来描述机票预定系统的软件总体结构。框内注明了模块的名字;方框之间的直线表示模块的调用关系。
1. 客户机部分
接收输入数据
机票预定系统(客户机程序) 联络服务器 输出数据 13
准备确认发送数 准备定票发送数据 检验输入 读入帐单号 读入旅客资料 确定(定票/领票) 帐单号 定票/领旅客 票
2.服务器程序部分 接收数据 判断类型 解开数据包 接收客户机数据 准备网络数据包 解开网络数据包 确认操作类型 发送数据 接收数据 定票成功? 领票成功? 判断错误类型 准备输出 准备错误信息 准备输出 打印帐单 显示确认 显示错误 打印机票 帐单 机票 图3.4客户机部分结构图 确认显示 机票预定系统(服务器部分) 数据处理、查询 发送数据 准备SQL 判断查询 数据库操作 判断原因 准备数据包 准备返回数据 准备返回数据 发送数据到客户机 图3.5服务器程序部分结构图
3.2.5功能需求与程序的关系
客户机程序主要有三大块:接收数据、网络通信及输出部分。服务器程序主要也是由三大功能:接收网络数据、数据库操作及发送网络数据部分。服务器程序需与已建立的SQL SERVER 数据库互连,其接口将于下面部分阐述。
3.3接口设计
3.3.1用户接口
14
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 MS VISUAL C++ 进行编程,在界面上可使用VISUAL C++ 所提供的可视化组件,向WINDOWS 风格靠近。 其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用VISUAL C++ 库中的错误提示函数。
3.3.2外部接口
1. 软件接口
服务器程序可使用VISUAL C++ 提供的对 SQL SERVER 的接口,进行对数据库的所有访问。
服务器程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据的保存。 在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。
2. 硬件接口
在输入方面,对于键盘、鼠标的输入,可用VISUAL C++的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用VISUAL C++的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。 的接口关系。 3.3.3内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
3.4运行设计
3.4.1运行模块组合
客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接收网络数据模块必须始终处于活动状态。接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。 3.4.2运行控制
运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。 3.4.3运行时间
在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。网络硬件对运行时间有最大的影响,当网络负载量大时,对操作反应将受到很大的影响。所以将采用高速ATM 网络,实现客户机与服务器之间的连接,以减少网络传输上的开销。其次是服务
15
器的性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间,所以必须使用高性能的服务器,建议使用 Pentium 4 处理器。硬件对本系统的速度影响将会大于软件的影响。
3.5系统数据结构设计
3.5.1逻辑结构设计要点
DBMS 的使用上系统将采用 SQL SERVER, 系统主要需要维护3张数据表:
表3.1 航班班次表
航班号 起飞日期/时间 飞行目的地 座位空数 商务仓票价 经济仓票价 航班班次表保存了所有从本地起飞的班机信息,它的主键为航班号。在定位前先查寻座位空数,在定位后将修改座位空数。
表3.2 定位信息表
航班号 帐单号 是否领票 定位信息表保存了已定位信息,主键为帐单号,外部主键为航班号。在旅客领票过程时将用到此表,领票后修改是否领票域。
表3.3 帐单信息/旅客资料表
帐单号 旅客姓名 旅客性别 旅客身份证号 工作单位 帐单信息/旅客资料表保存已定位的旅客信息资料,它的主键为旅客身份证号,外部主键为帐单号。主要用于领票时将旅客信息一同返回。
表3.4 机位信息表
班机号
机位信息
机位信息表保存各班机各机位定票状况。它的外部主键为班机号。主要用于定票时确定旅客机位,并返回。 3.5.2物理结构设计要点
物理数据结构设计主要是设计数据在模块中的表示形式。数据在模块中都是以结构的方式表示。
1.旅客信息
1.旅客姓名 String
2.旅客性别 Char
3.身份证号码 LONG INT
4.工作单位 String 用于定票时接收输入,以及领票时服务器返回。
16
2.帐单号
可使用一LONG INT 实现。
用于领票时接收输入,以及定票时服务器返回。
3.飞行目的
1. 航班号 String
2. 目的地 String
3. 起飞时间 Date/Time
4. 座位号 String
用于定票时接收输入,以及领票时服务器返回。
4.网络包 1. 网络包Head INT 2. 传输数据 String 用于数据在网络上的传输。
5.错误信息
1. 错误类型 INT
2. 输出语句 String
用于关于错误操作。
6.机票信息
1.航班号
2.目的地
3.起飞时间
4.旅客姓名
5.旅客性别
6.身份证号码
7.座位号
8.
用于打印机票准备工作。数据类型可参照上面所述。
7.帐单信息
1. 帐单号
2. 旅客姓名
3. 身份证号码
4. 航班号
5. 起飞时间
6. 目的地
17
用于打印帐单准备工作。数据类型可参照上面所述。 3.5.3数据结构与程序的关系
服务器程序在对定票/领票进行操作时需对数据库数据库数据结构,也就是数据表进行查询和修改:在定票/领票过程中都需要对数据库中的所有表,进行联合查询、修改。
物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。出错信息将送入显示模块中,机票结构,帐单结构,送入打印准备模块中准备打印格式。
3.6系统出错处理设计
3.6.1出错信息
程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。
对于软错误,须在定票/领票操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。
对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返回输入阶段。
出错信息必须给出相应的出错原因,例: 《全部班机座位已满!》 《查无此定位信息!》等。 3.6.2补救措施
所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。若真断电时,客户机上将不会有太大的影响,主要是服务器上:在断电后恢复过程可采用 SQL SERVER 的日志文件,对其进行ROLLBACK 处理,对数据进行恢复。
在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。
在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。 3.6.3系统维护设计
维护方面主要为对服务器上的数据库数据进行维护。可使用 SQL SERVER 的数据库维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。
四.详细设计
1引言
1.1编写目的
在前一阶段中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分
18
成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。
在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的 程序语言书写的程序。主要的工作有:根据在需求分析中所描述的数据、功能、运行、性能需求,并依照概要设计所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等),解决如何
接受:旅客信息及取票通知和帐单; 输出:取票通知和帐单及机票; 网络输出和加密,输入和解密;
分辨信息的种类并采取相应的处理步骤; 判断信息的正误并采取相应的处理步骤; 进行数据库的查询、修改工作;
接受并判断错误,输出相应的出错消息; 1.2背景
本机票预定系统项目主要由两部分形成: 1.各旅行社中的前台客户程序; 2.航空公司中的数据库服务器程序; 1.3定义
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。 SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。 主键:数据库表中的关键域。值互不相同。 外部主键:数据库表中与其他表主键关联的域。 ROLLBACK: 数据库的错误恢复机制。 1.4参考资料
[1]全永郯.城市交通控制. 北京:人民出版社,19
[2]贺国光等.ML-1型路口交通信号自学习智能式控制机.仪器仪表学报.1993,14:(2),127-131
[3]Mandal M,Chen E,Wang X. Multiresolution motion estimation techniques for video compression.Optical Engineering.1996,35: (1),128-136 [4]王珊,萨师煊.数据库系统概论.高等教育出版社,2007.04 [5]张海潘.软件工程导论.清华大学出版社,2006.10
[6]龚慰民,杨志强.VB程序设计简明教程.高等教育出版社,2006.03
2程序系统的结构
各模块之间的关系已由概要设计给出。 1.客户机接受信息模块结构图:
旅客信息输入界面 1 帐单和通知输入界面2 19
PersInfoExam ( ) CheckNoticeExam( )
网络接受和发送模块
图4.1 客户机接受信息模块结构图
PersInfoInput( ) IErrorHandle( ) CheckNoticeInput( PersInfoTempSave( ) JudgeOrderOrCash ( ) CheckNoticeTempSave( ) OrderTransPre ( ) CashTransPre( ) SetCSFlag( )
2.客户机输出信息模块:
网络接受和发送模块
CDataRecPre( ) DBOperaCheck( ) 20
帐单和取票通知的输出界面1 错误输出的界面3 机票的输出界面2 图4.2 客户机输出信息模块图
JudgeOrderOrCash ( ) PersInfoComp1( ) CheckNoticeComp() PersInfoComp2( ) CheckNoticeOutput() OErrorHandle() TicketOutput()
3. 网络接受和发送模块结构:
客户机 接受信息模块 或 服务器输出信息模块
RecPre( ) NErrorHandle()
21 NetCheck( ) SendPre( ) NetReceive ( ) NetMNetDataPack( )
客户机 输出信息模块 服务器输入信息模块
图4.3 网络接受和发送模块结构图
JudgeCSFlag ( )
4.服务器模块:
网络接受和发送模块 SDataRecPre( ) JudgeOrderOrCash(
22
TicketAvailable( ) InfoComp( )
DBErrorHandle( GetoutTicket( ) LockTicket( ) )
AddPers ( ) DBErrorTransPre( DelItem ( )
) GetoutCheck( )
JudgeCheckTicket( CheckTransPre( ) TicketTransPre( ) SetCSFlag( )
网络接受和发送模块
图4.4 服务器模块图
3程序1(标识符)设计说明
3.1程序描述
给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发处理等)。 3.2功能
说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。 3.3性能 1精度
目标软件输入输出数据要求为三种类型:字符型、整型、双精度型。 传输过程中除字符型外一律采用double型。
23
2灵活性
当操作行为超出操作权限的时候,系统会自动提示并拒绝操作。数据传输过程中要求采用double型精度的数据类型,如果不是double型,软件将其自动转换成double型。当操作货查询内容已过有效时限,目标软件将给出提示并自动查询相关内容。
航空公司管理软件中任一一个软件出现计划变更或取消,目标软件将根据耦合度做出判断,并自动提示出相应的更改。 3.4输人项
给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。数量和频度、输入媒体、输入数据的来源和安全保密条件等等。 3.5输出项
给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。 3.7流程逻辑
航班信息 顾 客 航班信息 航空公司管理人员 航班信息 查 询 系 统 售票人员 航班信息 图4.5航班信息查询分数据流图
顾 客 查 询 系 统 机票 订 票 系 统 机票信息 机票信息 航班信息 售票人员 航班信息 图4.6航班订票分数据流图
顾 客 查 询 系 统 机票信息 余额 机票信息 订 票 系 统 航班信息 航班信息 售票人员 图4.7航空退票分数据流图
3.8接口
1)API接口:在源代码中采用模块定义 2)与数据库的接口:1、数据库连接对象 2、数据库操作 3)结构转化操作:1、集合转化
24
2、数据库类型转化 数据库的操作分别为读和写,把这两个定义为对数据库中表的操作,再把对数据库的操作写用SQL语句的执行来实现
4)与打印机的接口:并口或USB 2.0 5)数据通信协议采用HDLC协议 3.9存储分配
根据需要,说明本程序的存储分配。
4程序2(标识符)设计说明 4.1客户机接受信息模块
1.PersInfoExam 过程:
PErrorAppear=T,判断错误类型,并将相应的 错误类型PErrorType或PErrorRank作为参数,转入IErrorHandle过程。若未发现错误,转入PersInfoInput过程。其中的错误种类有:
(1)数据类型不匹配,PErrorType =T;否则=F; 姓名 string 旅行目的地 string 性别 string 旅行时间 date 工作单位 string (年/月/日 yy/mm/dd) 身份证号码 long int 定票/取票 boolean (2)数据超出规定范围PErrorRank =T; 否则=F;等等
性别只能是‘男’或‘女’;身份证号码按规定必须是13位;旅行时间必须在定票的当天过一天以后; 等等
2、PersInfoInput 过程:
经检验无误后,将输入界面表单中的数据输入到Class PersInfo Class PersInfo{ /* 伪码 */ String name= 姓名 ;
String sex= 性别; String company= 工作单位; Long int idcode= 身份证号码;
Date stime= 旅行时间;
(syear/smonth/stime=年/月/日) String denist= 目的地 Bool ocflag= 定票/取票 } 3.PersInfoTempSave 过程:
25
对在旅客信息界面中输入的各项信息进行初步检验。若发现错误,令
将由PersInfoInput输入的旅客信息 保存在一个临时文件PersInfoTemp.txt中。以备与将来从服务器经网络传输过来的数据校验。 此类temp文件在每次软件的完全过程操作后,须删除。
4.CheckNoticeExam过程:
对在帐单和取票通知的信息界面中输入的各项信息进行初步检验。若发现错误,令CErrorAppear=T,判断错误类型,并将相应的 错误类型CErrorType或CErrorRank作为参数,转入IErrorHandle过程。若未发现错误,转入CheckNoticeInput过程。其中的错误种类有:
(1)数据结构不匹配,CerrorType=T,否则=F; 帐单号 long int 姓名 string 身份证号码 long int 付款金额 money 航班号 string 取票截止日期 date 目的地 string
(2)数据超出规定范围CErrorRank =T; 否则=F;
如帐单号不是规定的15位;金额为负;取票截止日期已过;等等 5.CheckNoticeInput过程:
经检验无误后,将输入界面表单中的数据输入到Class CheckNotice Class CheckNotic{
Long int cncode=帐单号 String name=姓名 Long int idcode=身份证号码 Money bill = 付款金额 String planecode= 航班号 Date dtime= 取票截止日期 String denist= 目的地
}
6.CheckNoticeSave 过程:
将由CheckNoticeInput输入的旅客信息 保存在一个临时文件CheckNoticeTemp.txt中。以备与将来从服务器经网络传输过来的数据校验。 此类temp文件在每次软件的完全过程操作后,须删除。
7.IErrorHandle过程:
在PersInfoExam或CheckNoticeExam过程中若发现错误,就转入本过程,执
26
行相应的处理,并输出相应的出错信息。
If (PErrorType==T)
输出“您的个人信息可能输错了位置。请重试。” If (PErrorRank==T)
输出“您的个人信息不适应规定范围。请重试。” 再转入旅客信息输入的界面中。 If (CErrorType==T)
输出“您的帐单信息可能输错了位置。请重试。” If (CErrorRank==T)
输出“您的帐单信息不适应规定范围。请重试。” 再转入帐单和取票通知信息的输入界面。 8.JudgeOrderOrCash过程:
根据PersInfoInput输入的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转入OrderTransPre或CashTransPre过程.
9.OrderTransPre过程:
定票要求传输前,作好各方面(硬件、软件)的准备。如准备好要传输的定票信息,包括旅客信息,客户机信息等等。客户机信息包括唯一序列号c_id,并设置等待标志waitflag =T和等待开始时间waitstime,等等。转入网络模块后,此过程仍处于等待状态,并一直记时,当waitflag==T且系统时间超过waitstime比如十分钟后,结束操作,输出操作超时的出错信息。当客户机接受到数据库的信息,客户机输入模块中的DataRecPre过程会置waitflag=F,这样本过程就会结束。
10.CashTranPre过程:
取票要求传输前,作好各方面(硬件、软件)的准备。如准备好要传输的取票信息,包括帐单和取票通知的信息,客户机信息等等。客户机信息包括唯一序列号c_id,并设置等待标志waitflag =T和等待开始时间waitstime,等等。转入网络模块后,此过程仍处于等待状态,并一直记时,当waitflag==T且系统时间超过waitstime比如十分钟后,结束操作,输出操作超时的出错信息。当客户机接受到数据库的信息,客户机输入模块中的DataRecPre过程会置waitflag=F,这样本过程就会结束。
11.SetCSFlag过程:
设置客户机/服务器标志CSFlag=T(表示将要进行的传输是从客户机到服务器)。以备网络模块中的JudgeCSFlag过程使用。 3.3.2客户机输出信息模块 1.CDataRecPre 过程:
作好各方面(硬件、软件)的准备,以便接受网络传输来的数据。如设置服
27
务器的空闲与否状态s_idle =F,继承正在工作联系的客户机序列号c_id 。完成后转入下一个过程DBOperaCheck。
2.DBOperaCheck过程:
检验网络传输过来的数据。若是出错信息,转入OErrorHandle过程。否则转入JudgeOrderOrCheck过程。
3.JudgeOrderOrCheck过程:
根据网络传输来的数据中的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转入PersInfoComp或CheckNoticeComp过程.
4.PersInfoComp1过程:
将数据库中的旅客信息与临时文件PersInfoTemp.txt中的旅客信息进行比较,如果吻合,就转入CheckNoticeOutput 过程。否则出错,转入OErrorHandle过程。
5.CheckNoticeOutput过程:
将帐单和取票通知输出到界面1中。注意格式。 Long int cncode =帐单号; String name= 姓名 ; String sex= 性别; String company= 工作单位; Long int idcode= 身份证号码; Date stime= 旅行时间;
(syear/smonth/stime=年/月/日) String denist= 目的地 Bool ocflag= 定票/取票 6.CheckNoticeComp 过程:
将数据库中的帐单和取票通知信息与临时文件CheckNoticeTemp.txt中的旅客信息进行比较,如果吻合,就转入PersInfoComp 过程。否则出错,转入OErrorHandle过程。
7.PersInfoComp2过程:
将数据库中的旅客信息与临时文件PersInfoTemp.txt中的旅客信息进行比较,如果吻合,就转入TicketOutput 过程。否则出错,转入OErrorHandle过程。
8.TicketOutput过程:
将机票输出到界面2。注意格式。 Long int planecode=航班号; Date/time stime=起飞时间; String name=姓名;
28
Long int idcode=身份证号码; Int seatcode = 座位号; Money price= 票价; 9.OErrorHandle 过程:
处理各个过程产生的错误,输出相应的出错信息到输出界面3 。由DBErrorCheck过程转入的,是数据库操作失效,如:所需机票已被定光;数据库中无对应的帐单或旅客信息;等等。由PersInfoComp过程转入的,是数据库处理有误,返回的旅客信息无法与原先输入的旅客信息吻合。由CheckNoticeComp过程转入的,是数据库处理有误,返回的帐单和取票通知信息无法与原先输入的帐单和取票通知信息吻合。 3.3.3网络接受和发送模块结构
1. NetCheck过程:
检查网路的工作状况。发送一些检验消息,接受一些反馈信息,查询要建立通路的终端是否有效,若有效就作好响应的准备,转入RecPre和SendPre过程;若无效就转入NErrorHandle过程。
如服务器要传输信息给某客户机,可先发检验消息,包括由服务器发送的c_id可检验相应的客户机是否仍处于等待状态,客户机再将waitflag反馈给服务器;客户机要传输信息给服务器,若服务器的s_idle=T,由客户机发送的c_id的值可赋予服务器中的c_id,再将s_idle反馈给客户机.
2. RecPre过程:
经过NetCheck过程检验网路后,作好接受数据的准备。若是服务器客户机,应该只要相应c_id的客户机做准备,激活客户机输出模块。若是客户机服务器,由于服务器始终处于活动状态,无须激活 。
3. NetReceive过程:
接受网络数据包。在分包接受的过程中,始终保持与NetMonitor过程联系,接受和反馈网络数据传输状况的信息,根据这些信息继续接受数据包,或做相应的调整。
4. NetDataDiscry过程:
将由网络传输来的数据依据一定的算法解密。 5. NetDataUnpack 过程:
将经解密后的数据(被压缩过的)依据一定的算法解压。 6. SendPre过程:
经过NetCheck过程检验网路后,作好发送数据的准备。若是服务器客户机,应该只要相应c_id的客户机做准备,激活客户机输出模块。若是客户机服务器,由于服务器始终处于活动状态,无须激活 。
29
7. NetDataPack过程:
将由服务器模块传过来的数据依据一定的算法压缩,打包。 8.NetDataEncry过程:
将准备送网络发送的数据依据一定的算法加密。 9. NetSend过程:
发送经过压缩打包和加密的数据包。在分包发送的过程中,始终保持与NetMonitor过程联系,接受和反馈网络数据传输状况的信息,根据这些信息继续发送数据包,或做相应的调整。
10. NetMonitor过程:
从服务器与某客户机建立网络联系开始,到数据传输完成,联系断开为止,NetMonitor过程始终监视着网络状况。并将状况信息随时传给NetReceive和NetSend过程,同时从这两个过程接受数据接受和发送的状况信息。如果以上的状况信息反映出错误 ,就转入NErrorHandle过程处理。
11. NErrorHandle过程:
网络模块的错误处理过程。主要的错误种类有:1.无法建立服务器与某客户机建立网络联系,由NetCheck 过程转来;2.联系建立后,网络数据传输出现错误,由NetMonitor过程转来。
12. JudgeCSFlag过程:
本过程根据由客户机输入模块中的SetCSFlag过程或服务器模块中的SetCSFlag 过程来确定网络模块完成后应转入哪一个模块,客户机输出模块或服务器模块。
3.3.4服务器模块
1.SDataRecPre过程:
作好服务器各方面(硬件、软件)的准备,以便接受网络传输来的数据。如设置服务器的空闲与否状态s_idle =F,继承正在工作联系的客户机序列号c_id 。完成后转入下一个过程JudgeOrderOrCash 。
2.JudgeOrderOrCash过程:
根据网络输入的数据中的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转入TicketAvailable或InfoComp过程。
3.TicketAvailable过程:
根据旅客信息中的旅行时间(日期)查询数据库,若Ticket表中在此日期仍有票剩余(未被定票或购票),就转入LockTicket 过程;若无余票,就转入DBErrorHandle 过程。
4.LockTicket过程:
根据旅客信息中的旅行时间(日期),在Ticket表中,把相应数量的起飞日期
30
等于此日期的机票锁住,作为已定的机票。
5.AddPers过程:
把已定票的旅客信息添加到PerInfo表中。
表3.1 PerInfo表
姓名 性别
身份证号码 工作单位 旅行目的
地
旅行时间
6.GetoutCheck过程:
把查询后许可的定票信息添加到Check表中,同时准备把此信息向网络输出。
表3.2 Check表
帐单号 姓名 身份证号码 金额 航班号 截止日期 目的地
7.InfoComp过程:
检查输入的旅客信息、帐单和取票通知信息在数据库的PersInfo和Check 表中是否有对应的项。如果有,就转入DelItem 过程;如果无,就转入DBErrorHandle过程。
8.GetoutTicket 过程:
在Ticket表中取出并删除对应的被锁住的机票信息,准备把此信息向网络输出。
9.DelItem 过程:
在数据库的PersInfo 和Check 表中,删除已取票的旅客信息、帐单和取票通知信息。
10.JudgeCheckTicket过程:
根据数据库输出的数据 判断本次输出是帐单和取票通知或机票,相应的设置标志,相应的转入CheckTransPre或TicketTransPre过程。
11.CheckTransPre过程:
帐单和取票通知 传输前,作好各方面(硬件、软件)的准备。如准备好要传输信息,包括帐单信息,要联系的客户机信息等等。客户机信息包括唯一序列号c_id。
12.TicketTransPre 过程:
31
机票 传输前,作好各方面(硬件、软件)的准备。如准备好要传输信息,包括机票信息,要联系的客户机信息等等。客户机信息包括唯一序列号c_id。
13.SetCSFlag 过程:
设置客户机/服务器标志CSFlag=F(表示将要进行的传输是从服务器到客户机)。以备网络模块中的JudgeCSFlag过程使用。
14.DBErrorHandle 过程:
判断数据库操作中出现的错误,并处理和返回到客户机上。由TicketAvailable过程转入的错误,是Ticket表中在相应日期无票剩余(全被定票或购票,或者飞机已起飞);由Infocomp 过程转入的错误,是输入的旅客信息、帐单和取票通知信息在数据库的PersInfo和Check 表中没有对应的项,说明取票信息和定票信息不符。
15.DBErrorTransPre 过程:
错误信息传输前,作好各方面(硬件、软件)的准备。如准备好要传输信息,包括错误类别信息,要联系的客户机信息等等。客户机信息包括唯一序列号c_id。接着转入网络接受和发送模块。
五. 软件实现
1、软件实现
实现环境 开发工具、
2、软件界面截图
六、测试分析
1、软件测试
模块测试结果、系统测试结果
32
七、收获和体会
姓名 总结: 姓名 总结: 姓名 总结:
33
学号 学号 学号 姓名 总结: 姓名 总结:
34
学号 学号
35
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务