资源描述
《五.详细设计说明书》
1、 引言:
1、1编写目的:
本说明书的目的为了说明程序系统的设计考虑,包括程序设计的处理流程,组织结构,功能分配,模块划分,接口设计,运行设计,出错设计等等,将比概要设计更加详细。
1、2项目背景:
【2】待开发软件名称:酒店管理系统
【2】本项目的提出者:开发小组
【3】本项目的制作者;开发小组
【4】用户和运行该程序系统的环境:开发小组人员的寝室
1、3文中特殊的定义和缩写:
1.3.1定义
顾客住宿管理:对顾客的住宿进行管理,并储存顾客的住宿记录
顾客信息:存放顾客信息,证件信息,房间信息
房间信息:房间号码,房间等级,房间价格
1、4参考资料:
以下列出在概要设计过程中所使用到的有关资料:
《软件工程导论》 清华大学出版社
《现在软件工程》 北京大学出版社
详细设计书文档
2.总体设计:
2、1需求概要
要求系统能有效、快速、安全、可靠和无误的完成上“酒店管理系统”允许酒店工作人员对酒店的客房、员工以及入住酒店的顾客进行客房入住、酒店服务等一些管理。“酒店管理系统”实施后,能节约人力资源,提高服务质量,方便各项管理。账务处理的时间明显减少,数学计算上的错误也会消失。对客房状态(如是否入住,入住顾客信息等)的查询与统计也显得非常方便,减少了顾客等待与员工分类统计的时间。详细的项目描述请参见酒店管理系统前景和范围文档。文档中这一部分的标题为“初始版本和后续版本的范围”,列出了按照进度计划在这一版本中实现的全部或部分特性。述操作。并要求客户机的 界面要单明了,易于操作,服务器程序利于维护。
2、2 软件结构:
各模块之间的关系已由概要设计给出。
1、客户机接受信息模块结构图:
旅客信息输入界面 1 帐单和通知输入界面2
CheckNoticeExam( )
PersInfoExam ( )
CheckNoticeInput( )
PersInfoInput( )
IErrorHandle( )
CheckNoticeTempSave( )
PersInfoTempSave( )
JudgeOrderOrCash ( )
OrderTransPre ( )
CashTransPre( )
SetCSFlag( )
网络接受和发送模块
2.客户机输出信息模块:
网络接受和发送模块
CDataRecPre( )
DBOperaCheck( )
JudgeOrderOrCash ( )
CheckNoticeComp()
PersInfoComp1( )
PersInfoComp2( )
OErrorHandle( )
CheckNoticeOutput()
TicketOutput( )
错误输出的界面3
帐单和取票通知的输出界面 1 机票的输出界面 2
3. 网络接受和发送模块结构:
NetMonitor ( )
NetDataUnpack( )
NetDataDiscry ( )
NErrorHandle()
SendPre( )
RecPre( )
NetCheck( )
NetSend ( )
NetDataEncry ( )
NetDataPack( )
NetReceive ( )
客户机 接受信息模块 或 服务器输出信息模块
JudgeCSFlag ( )
客户机 输出信息模块 服务器输入信息模块
4.服务器模块:
网络接受和发送模块
SDataRecPre( )
JudgeOrderOrCash( )
InfoComp( )
TicketAvailable( )
DBErrorHandle( )
LockTicket( )
GetoutTicket( )
AddPers ( )
DBErrorTransPre( )
DelItem ( )
GetoutCheck( )
JudgeCheckTicket( )
CheckTransPre( )
TicketTransPre( )
SetCSFlag( )
网络接受和发送模块
3、程序描述:
3、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 过程:
将由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过程中若发现错误,就转入本过程,执行相应的处理,并输出相应的出错信息。
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.2客户机输出信息模块:
1. CDataRecPre 过程:
作好各方面(硬件、软件)的准备,以便接受网络传输来的数据。如设置服务器的空闲与否状态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过程。
1. TicketOutput过程:
将机票输出到界面2。注意格式。
Long int planecode=航班号;
Date/time stime=起飞时间;
String name=姓名;
Long int idcode=身份证号码;
Int seatcode = 座位号;
Money price= 票价;
2. OErrorHandle 过程:
处理各个过程产生的错误,输出相应的出错信息到输出界面3 。由DBErrorCheck过程转入的,是数据库操作失效,如:所需机票已被定光;数据库中无对应的帐单或旅客信息;等等。由PersInfoComp过程转入的,是数据库处理有误,返回的旅客信息无法与原先输入的旅客信息吻合。由CheckNoticeComp过程转入的,是数据库处理有误,返回的帐单和取票通知信息无法与原先输入的帐单和取票通知信息吻合。
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的客户机做准备,激活客户机输出模块。若是客户机à服务器,由于服务器始终处于活动状态,无须 激活 。
7. NetDataPack过程:
将由服务器模块传过来的数据依据一定的算法压缩,打包。
8. NetDataEncry过程:
将准备送网络发送的数据依据一定的算法加密。
9. NetSend过程:
发送经过压缩打包和加密的数据包。在分包发送的过程中,始终保持与NetMonitor过程联系 ,接受和反馈网络数据传输状况的 信息,根据这些信息继续发送数据包,或做相应的调整。
10. NetMonitor过程:
从服务器与某客户机建立网络联系开始,到数据传输完成,联系断开为止,NetMonitor过程始终监视着网络状况。并将状况信息随时传给NetReceive和NetSend过程,同时从这两个过程接受数据接受和发送的状况信息。如果以上的状况信息反映出错误 ,就转入NErrorHandle过程处理。
11. NErrorHandle过程:
网络模块的错误处理过程。主要的错误种类有:1。无法建立服务器与某客户机建立网络联系,由NetCheck 过程转来;2。联系建立后,网络数据传输出现错误,由NetMonitor过程转来。
12. JudgeCSFlag过程:
本过程根据由客户机输入模块中的SetCSFlag过程或服务器模块中的SetCSFlag 过程来确定网络模块完成后应转入哪一个模块,客户机输出模块或服务器模块。
3.4服务器模块:
1. SDataRecPre过程:
作好服务器各方面(硬件、软件)的准备,以便接受网络传输来的数据。如设置服务器的空闲与否状态s_idle =F,继承正在工作联系的客户机序列号c_id 。完成后转入下一个过程JudgeOrderOrCash .
2. JudgeOrderOrCash过程:
根据网络输入的数据中的ocflag 判断本次操作是定票或取票,相应的设置标志,相应的转入TicketAvailable或InfoComp过程.
3. TicketAvailable过程:
根据旅客信息中的旅行时间(日期)查询数据库,若Ticket表中在此日期仍有票剩余(未被定票或购票),就转入LockTicket 过程;若无余票,就转入DBErrorHandle 过程.
4. LockTicket过程:
根据旅客信息中的旅行时间(日期),在Ticket表中,把相应数量的起飞日期等于此日期的机票锁住,作为已定的机票.
5. AddPers过程:
把已定票的旅客信息添加到PerInfo表中.
姓名
性别
身份证 号码
工作单位
旅行目的地
旅行时间
6. GetoutCheck过程:
把查询后许可的定票信息添加到Check表中,同时准备把此信息向网络输出.
帐单号
姓名
身份证号码
金额
航班号
截止日期
目的地
7.InfoComp过程:
检查输入的旅客信息、帐单和取票通知信息在数据库的PersInfo和Check 表中是否有对应的项。如果有,就转入DelItem 过程;如果无,就转入DBErrorHandle过程。
8. GetoutTicket 过程:
在Ticket表中取出并删除对应的被锁住的机票信息,准备把此信息向网络输出.
9. DelItem 过程:
在数据库的PersInfo 和Check 表中,删除已取票的旅客信息、帐单和取票通知信息。
10. JudgeCheckTicket过程:
根据数据库输出的数据 判断本次输出是帐单和取票通知或机票,相应的设置标志,相应的转入CheckTransPre或TicketTransPre过程.
11.CheckTransPre过程:
帐单和取票通知 传输前,作好各方面(硬件、软件)的准备。如准备好要传输信息,包括帐单信息,要联系的客户机信息等等。客户机信息包括唯一序列号c_id。
12.TicketTransPre 过程:
机票 传输前,作好各方面(硬件、软件)的准备。如准备好要传输信息,包括机票信息,要联系的客户机信息等等。客户机信息包括唯一序列号c_id。
13.SetCSFlag 过程:
设置客户机/服务器标志CSFlag=F(表示将要进行的传输是从服务器到客户机)。以备网络模块中的JudgeCSFlag过程使用。
14.DBErrorHandle 过程:
判断数据库操作中出现的错误,并处理和返回到客户机上。由TicketAvailable过程转入的错误,是Ticket表中在相应日期无票剩余(全被定票或购票,或者飞机已起飞);由Infocomp 过程转入的错误,是输入的旅客信息、帐单和取票通知信息在数据库的PersInfo和Check 表中没有对应的项,说明取票信息和定票信息不符。
15.DBErrorTransPre 过程:
错误信息 传输前,作好各方面(硬件、软件)的准备。如准备好要传输信息,包括错误类别信息,要联系的客户机信息等等。客户机信息包括唯一序列号c_id。接着转入网络接受和发送模块。
展开阅读全文