一、需求分析
航空客运订票系统,功能如下:1、查询航线:根据旅客提出的终点站名(例:输入:济南),输出下列信息:航班号、飞机号、星期几飞行、余票数2、承办订票业务:根据客户提出的要求(航班号(输入字符串)、订票数额(输入整型数))查询该航班票额情况,若有余票,为客户办理订票手续,若已满员或余票额少于订票额,则询问客户是否登记排队等候。3、承办退票业务:根据客户提供的情况(日期(输入1-7表示星期几)、航班(字符串表示),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的)用户,若能满足他,则为其办理订票手续,否则依次询问其他候补客户。
二、概要设计
1、链表抽象数据类型ADTList数据对象:Daiai∈EleSeti12…
≥0数据关系:R1ai1aiai1ai∈Di2…
基本操作:MyList操作结果:初始化一个链表voidI
sertNodeLT初始条件:链表已经存在操作结果:插入一个结点boolDeleteNodeLT初始条件:链表已经存在操作结果:删除一个结点ADTList2、队列抽象数据类型ADTQueue数据对象:Daiai∈EleSeti12…
≥0数据关系:R1ai1aiai1ai∈Di2…
约定其中a1端为对列头,a
端为队列尾基本操作:MyQueue操作结果:初始化一个队列voidE
QueueQT初始条件:队列已经存在操作结果:进对列
fvoidD
QueueQT初始条件:队列已经存在操作结果:出对列boolEmpty初始条件:队列已经存在操作结果:队列是否为空ADTQueue3、主程序流程图:开始
I
itAirLi
e()
Flags
相等
Select1
不相等相等
I
quireAirLi
e
Select2
不相等相等
BookTicket
Select3
不相等
Retur
Ticket
IsQuit
结束
三、详细设计
1、链表及链队列结点类型templatetype
ameTclassLQNode
ffrie
dclassMyListTfrie
dclassMyQueueTpublicLQNode初始化结点LQNodeT利用参数的值初始化结点LQNodeprivateTdata存放结点数据LQNodeT
ext指向下一个结点2、链表类型templatetype
ameLTclassMyListpublicMyList初始化链表,为头指针分配存储空间,并使头接点
ext域指向空。MyListvoidI
sertNodeLT插入一个结点,取得链表头指针,生成一个新结点p,为新结点赋值,利用头插入法,将结点插入链表p
exthead
extheadpboolDeleteNodeLT删除一个结点,利用一个临时指针p,通过while循环,pp
ext,找到要删除的结点,将其前一个结点的
ext域指向他的下一个结点。privateLQNodeLThead链表头指针3r