床位的分配与回收数据结构课程设计报告

床位的分配与回收数据结构课程设计报告

ID:1469405

大小:632.00 KB

页数:39页

时间:2017-11-11

床位的分配与回收数据结构课程设计报告_第1页
床位的分配与回收数据结构课程设计报告_第2页
床位的分配与回收数据结构课程设计报告_第3页
床位的分配与回收数据结构课程设计报告_第4页
床位的分配与回收数据结构课程设计报告_第5页
资源描述:

《床位的分配与回收数据结构课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、模拟旅馆管理系统的一个功能-----床位的分配与回收一、问题描述1.1问题的描述某旅馆有n个等级的房间,第i等级有ai个房间,每个等级有bi床位(1≤i≤n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。1.2输入数据对房间信息进行初始化,包括房间的类别、数量以及房间和床位的计费标准;分配时,输入旅客姓名、年龄、性别、到达日期和所需房间等级;回收时,输入房间等级、房间号和床位号。1.3输出数据分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅

2、客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。二、需求分析2.1需求分析经过分析,程序要有以下几个功能:⑴程序启动的时候应该能够对旅馆的信息进行初始化,并且可以让不同的进行手动初始化;⑵当客户到来的时候,可以登录客户的信息,并且根据旅馆的情况和客户的要求进行分配床位;⑶当客户结账的时候,可以打印其账单,并且将床位回收;⑷在进行输入信息的时候,应该有检查错误的功能,防止输入的信息超出正常范围。-39-三、概要设计3.1功能模块的划分主函数初始化显示客户登记床位分配客户退房床位回收保存信息退出3.2功能

3、模块的描述(1)初始化模块:应该包括两种初始化,第一种是每次打开程序的时候,自动完成对旅馆信息的初始化。第二种是由用户输入旅馆的信息,完成旅馆信息的初始化。(2)显示模块:显示模块是人机交互的必要模块,用于显示主菜单、旅馆的当前住宿情况、床位分配情况、账单等等,方便用户进行下一步操作。(3)客户登记及床位分配模块:用来登记客户的信息以及床位的分配。(4)客户退房及床位回收模块:用来登记退房客户的信息以及床位的回收,住宿费的计算。(5)保存信息模块:用来保存旅馆的相关信息,包括手动初始化之后的客房信息,以及退出程序之前的保存工作。(6)退出:退出程序。3.3数据结构3.3.1主要采用

4、的数据结构:链表和栈。(1)链表ADTList{数据对象:D={ai

5、ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={

6、,∈D,i=2,...,n}基本操作:InitList(&L)操作结果:构造一个空的线性表L。DestroyList(&L)初始条件:线性表L已存在。操作结果:销毁线性表L。ListEmpty(L)初始条件:线性表L已存在。操作结果:若L为空表,则返回TRUE,否则返回FALSE。-39-ListLength(L)初始条件:线性表L已存在。操作结果:返回L中元素个数。PriorElem(L,cur_e,&pre_e)初始条

7、件:线性表L已存在。操作结果:若cur_e是L中的数据元素,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。NextElem(L,cur_e,&next_e)初始条件:线性表L已存在。操作结果:若cur_e是L中的数据元素,则用next_e返回它的后继,否则操作失败,next_e无定义。GetElem(L,i,&e)初始条件:线性表L已存在,1≤i≤LengthList(L)。操作结果:用e返回L中第i个元素的值。LocateElem(L,e,compare())初始条件:线性表L已存在,compare()是元素判定函数。操作结果:返回L中第1个与e满足关系compar

8、e()的元素的位序。若这样的元素不存在,则返回值为0。ListTraverse(L,visit())初始条件:线性表L已存在,visit()为元素的访问函数。操作结果:依次对L的每个元素调用函数visit()。一旦visit()失败,则操作失败。ClearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表。PutElem(&L,i,&e)初始条件:线性表L已存在,1≤i≤LengthList(L)。操作结果:L中第i个元素赋值同e的值。ListInsert(&L,i,e)初始条件:线性表L已存在,1≤i≤LengthList(L)+1。操作结果:在L的第i个元素之前

9、插入新的元素e,L的长度增1。ListDelete(&L,i,&e)初始条件:线性表L已存在且非空,1≤i≤LengthList(L)。操作结果:删除L的第i个元素,并用e返回其值,L的长度减1。}ADTList(2)栈ADTStack{数据对象:D={ai

10、ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={

11、ai-1,ai-∈D,i=2,...,n}约定an端为栈顶,a1端为栈底。基本操作:-39-InitStack(&S)操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。