数据结构课程设计.doc

上传人:F****n 文档编号:101524762 上传时间:2019-09-28 格式:DOC 页数:19 大小:266KB
返回 下载 相关 举报
数据结构课程设计.doc_第1页
第1页 / 共19页
数据结构课程设计.doc_第2页
第2页 / 共19页
数据结构课程设计.doc_第3页
第3页 / 共19页
数据结构课程设计.doc_第4页
第4页 / 共19页
数据结构课程设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数据结构课程设计.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计.doc(19页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 说 明 书 课程名称 数据结构课程设计 设计课题 模拟旅馆管理系统 课 程 设 计 任 务 书设计题目:模拟旅馆管理系统的一个功能床位的分配与回收设计内容与要求:某旅馆有n个等级的房间,第I等级有ai个房间,每个等级有bi个床位(1in)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。基本要求(1)输入数据分配时,输入旅客姓名、年龄、性别、到达日期和所需房间等级。回收时,输入房间等级、房间号和床位号。(2)输出数据分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。分配不成功时,如所有等级均无床位,

2、则打印“客满”信息;如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。 2014 年 12 月16日课 程 设 计 评 语成绩: 指导教师: 年 月 日工厂搬迁对于一个企业来说,安全问题始终是第一位的,也是最基本的,过程中所涉及到的安全问题主要是人员的安全和设备拆装以及财产的安全。各部门经理和所有员工一定要以安全为核心,开展各项工作,职责到人、分工明确。洛 阳 理 工 学 院 课 程 设 计 报 告【问题描述】某旅馆有n个等级的房间,第I等级有ai个房间,每个等级有bi个床位(1in)。试模拟旅馆管理系统中床位

3、分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。【基本要求】(1)输入数据 分配时,输入旅客姓名、年龄、性别、到达日期和所需房间等级。回收时,输入房间等级、房间号和床位号。(2)输出数据分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。【测试数据】旅客姓名:w性别:男 年龄:20入住时间:2015 3 4所需等级:1旅客姓名:d性别:男 年龄:22入住时

4、间:2015 1 2所需等级:2【模块划分】本程序主要划分为四个模块 主函数旅客住房登记旅客退房管理旅客住房查询旅客住宿统计 【算法思想】 采用链表方式,进行旅店的初始化操作。给旅店的等级设置了头结点。该程序有三条链表,等级构成一条链表,房间构成一条链表,旅客构成一条链表。入住时,先输入旅客所需的等级,判断是否有该等级,依次判断有无房间和床位。有该等级的房间时,采用尾插法判断是否有空床位,有就进行旅客的入住操作。床位没有设头结点,所以第一个床位要进行判断。退房时,需要输入等级号、房间号、床位号来进行查找,从而完成退房操作。查询时,通过输入旅客的姓名进行查询,存在此人时,打印客人信息。统计宾馆的

5、人数时,先一个等级一个等级的统计,统计这个等级的每一个房间和每个房间当前的所有人数。旅客住宿登记是下一个房间旅客住宿无法入住输入所需等级分配客人返回主菜单 打印客人信息是否是否有房间是否有床位是是否更换等级否否无法入住是是否有客满否旅客退房否重新输入 是否退房退房成功 打印客人信息是否有该房号输入床位号是否有该床号 输入房间号是否有该等级 输入退房等级 旅客退房重新输入否否是是是是是重新输入 打印客人信息否旅客信息查询输入旅客姓名是否有待查找人 未找到此人是否有待查等级是否有待查房间是是否否旅客信息查询旅客信息统计 统计下一个房间 统计人数是等级存在房间人数是否为0房间存在 结束否否是是旅客信

6、息统计 。【数据结构】typedef struct traver/旅客结构体char name20;/姓名int sex; /性别int age; /年龄int g;/旅客住宿的等级int bednum;/床号int year;int month;int day;struct traver*next;/下一个旅客tra;typedef struct hotel/旅店结构体int l_num;/旅店等级struct hotel*next;/下一个等级struct room*r_next;/指向房间hotel;typedef struct room/房间结构体int r_num;/房间号int m

7、ax;/房间的最大床位数int renshu;/房间当前的人数struct room*next;/下一个房间struct traver*tra_next;/指向旅客room;【测试情况】 房间的初始化。 旅客入住登记测试 旅客退房测试记录 查询测试 统计测试 【心得】这周是我们自己选题做课程设计的的时间,我选的题目是做一个旅店管理系统,对床位进行分配和回收。本程序采用了三个链表,刚拿到这个题目时,我觉得很这个应该和学生管理系统差不多,但是,在对床位的分配时,要采用链表。刚开始我本来想把房间作为一个数组,将床位构成一个单链表。当时,没有考虑到房间的等级,最后又想了一下,改变了我原来的想法。将房间

8、的等级、房间、旅客各构成一个链表,采用链表的好处是节约空间,有几个人就申请多大的空间,不会造成很大的浪费。在编写代码的过程中,先对旅馆每个等级的每个房间进行初始化,旅客的住宿这个函数对于我是最难的,因为要先判断旅客所需等级的房间存不存在,存在时,要判断这个房间有没有空床位,没有空床位时,链表的指针指向下一个房间。如果没有这个等级的房间时,征询旅客是否要更换房间等级。在他同意更换的情况下,再重复上述过程进行登记。给旅客进行床位分配时,是按照床位号的大小顺序依次分配的。如果这个房间的所有床位都住满的话,再给同等级的另一间房间进行分配。在写退房的函数时,要输入等级、房间号、床位号,找到相应的旅客打印

9、旅客信息确认正确再进行退房操作。统计住宿的人数时,统计同等级的每一个房间的所有旅客。旅客的链表不空时,计数器就加加。 进行编程的时候,一定要先清楚自己的思路,比如我写的住宿函数,要入住就必须先判断有没有空房间和空床位,有的话才能进行分配。该程序的链表比较多,自己写的时候,一个一个子函数写,写完调试好了再进行下一个函数的编写。定义了三个结构体,一定要清楚每个结构体中所包含的量,切不可混淆。编写时if和else语句比较多,要清楚哪个与哪个对应,每个循环结束的条件。调试代码的时候有时就是一个很小的错导致整个程序不能运行,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终还是一步一步慢慢来,经过无数

10、次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件!同时,通过此次课程设计使我了解到数据结构可以说是计算机里一门基础课程,它需要把理论变为上机调试,所以一定要把基础知识学扎实。虽然我现在还不会成功的编写一个完整的程序,但是在看程序的过程中,不断的上网查资料以及翻阅相关书籍,通过不断的模索,测试,发现问题,解决问题和在老师的帮助下一步一步慢慢的正确运行程序。在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。并对VC有了更深入的了解。数据结构

11、是一门实践性很强的课程,上机实习是对学生全面综合素质进行训练的一种最基本的方法,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。上机实习一方面能使书本上的知识变“活”,起到深化理解和灵活掌握教学内容的目的;另一方面,上机实习是对学生软件设计的综合能力的训练,包括问题分析,总体结构设计,程序设计基本技能和技巧的训练。此外,还有更重要的一点是:机器是比任何教师更严厉的检查者。因此,在“数据结构”的学习过程中,必须严格按照老师的要求,主动地、积极地、认真地做好每一个实验,以不断提高自己的编程能力与专业素质。【源程序】#include #include #include #include

12、typedef struct traver/旅客结构体char name20;/姓名int sex; /性别int age; /年龄int g;/旅客住宿的等级int bednum;/床号int year;int month;int day;struct traver*next;/下一个旅客tra;typedef struct hotel/旅店结构体int l_num;/旅店等级struct hotel*next;/下一个等级struct room*r_next;/指向房间hotel;typedef struct room/房间结构体int r_num;/房间号int max;/房间的最大床位数int renshu;/房间当前的人数struct room*next;/下一个房间struct traver*tra_next;/指向旅客room;void menu_select()/菜单函数printf(*旅客管理查询系统*n); /菜单选择printf(1.进行订房登记服务n); printf(2.进行退房结账服务n);printf(3.查询旅客信息n); printf(4.统计旅客信息n); printf(*n); void Init(hotel*L)/旅店等级设置头结点int i,j,k,n;/k床位数,j房间

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号