网站大量收购闲置独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模拟旅馆管理系统的一个功能-----床位的分配与回收 一、问题描述 1.1问题的描述 某旅馆有n个等级的房间,第i等级有ai个房间,每个等级有bi床位(1≤i≤n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。 1.2输入数据 对房间信息进行初始化,包括房间的类别、数量以及房间和床位的计费标准; 分配时,输入旅客姓名、年龄、性别、到达日期和所需房间等级; 回收时,输入房间等级、房间号和床位号。 1.3输出数据 分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。 分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。 二、需求分析 2.1需求分析 经过分析,程序要有以下几个功能: = 1 \* GB2 ⑴程序启动的时候应该能够对旅馆的信息进行初始化,并且可以让不同的进行手动初始化; = 2 \* GB2 ⑵当客户到来的时候,可以登录客户的信息,并且根据旅馆的情况和客 户的要求进行分配床位; = 3 \* GB2 ⑶当客户结账的时候,可以打印其账单,并且将床位回收; = 4 \* GB2 ⑷在进行输入信息的时候,应该有检查错误的功能,防止输入的信息超出正常范围。 三、概要设计 3.1功能模块的划分 主函数 主函数 初始化 显示 客户登记 床位分配 客户退房 床位回收 保存信息 退出 3.2功能模块的描述 (1)初始化模块:应该包括两种初始化,第一种是每次打开程序的时候,自动完成对旅馆信息的初始化。第二种是由用户输入旅馆的信息,完成旅馆信息的初始化。 (2)显示模块:显示模块是人机交互的必要模块,用于显示主菜单、旅馆的当前住宿情况、床位分配情况、账单等等,方便用户进行下一步操作。 (3)客户登记及床位分配模块:用来登记客户的信息以及床位的分配。 (4)客户退房及床位回收模块:用来登记退房客户的信息以及床位的回收,住宿费的计算。 (5)保存信息模块:用来保存旅馆的相关信息,包括手动初始化之后的客房信息,以及退出程序之前的保存工作。 (6)退出:退出程序。 3.3数据结构 3.3.1主要采用的数据结构:链表和栈。 (1)链表 ADT List { 数据对象:D={ ai | ai∈ ElemSet, i=1,2,...,n, n≥0 } 数据关系:R1={ ai-1 ,ai | ,∈D, i=2,...,n } 基本操作: InitList( L ) 操作结果:构造一个空的线性表 L 。 DestroyList( L ) 初始条件:线性表 L 已存在。 操作结果:销毁线性表 L 。 ListEmpty( L ) 初始条件:线性表L已存在。 操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSE。 ListLength( L ) 初始条件:线性表 L 已存在。 操作结果:返回 L 中元素个数。 PriorElem( L, cur_e, pre_e ) 初始条件:线性表 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 满足关系 compare( ) 的元素的位序。 若这样的元素不存在,则返回值为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。 操作结果:在

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档