1、 C 语言语言课程设计报告课程设计报告 学生姓名学生姓名: 学学 号:号: 学学 院院: 班班 级级: 题题 目目: 宾馆房间登记与计费管理系统 指导教师:指导教师: 职称职称: 教教 授授 实验师实验师 实验师实验师 2012 年 07 月 15 日 I 目 录 目录.I 一、选题背景.1 1.1 主要问题及技术要求.1 1.2 指导思想.1 二、算法设计.1 2.1 程序功能需求.1 2.2 功能框架图.2 2.3 设计方案说明.3 2.4 计算公式.3 三、程序设计及功能说明.4 3.1 程序功能介绍.4 四、结果分析.6 4.1 主界面.6 4.2 登记入住.6 4.3 结账退房.9
2、4.4 查询当前入住情况.12 4.5 查询当前费用.13 4.6 查询历史记录.14 五、结论或总结.14 六、课程设计心得体会.15 参考文献.16 源程序.17 附表一.63 - 1 - 一、选题背景 1.1 主要问题及技术要求 本题对时间的控制要求较高,尤其是必须控制输入的时间,使其不能小于以前录入过 的时间,防止当前时间输入错误。还有退房时的信息对比难度也较高,必须保证退房顾客 与系统记录信息一致,防止服务错漏或错误退房。这是本题两个较大的难点。此外还有房 间号、身份证号、时间的输入格式的控制、跨年的时间计算等难点。 1.2 指导思想 学了 C 语言,我们需要一个学以致用的机会。选题
3、后,在题目的完成过程中,我们的 知识可以更加牢固。在完善酒店管理系统的过程中,我们要锻炼自己的基于现实思考的能 力,培养自己缜密的思维。相对于大多数人做的学生管理系统,酒店管理系统对于时间的 控制要求严格,对于我们的算法思想要求较高,因此,在完成该次课程设计的过程中,我 们要锻炼我们的逻辑思维能力,同时对 C 语言有更深刻的认识,把 C 语言知识掌握得更牢 固。同时,该系统以能够帮助酒店很好地管理客户信息,提高营业效率和数据的安全性和 可靠性,减少劳力浪费为设计目标。在完成该系统的同时,我们也为社会尽了一份力。 二、算法设计 2.1 程序功能需求 (1)每次打开程序都能从顾客信息表文件中读出顾
4、客数据,以便后面的操作; (2)有一个主界面,能根据用户需要从主界面进入不同的功能模块; (3)登记时: a.能够判断房间是否已住满; b.能够选择计费方式是按小时还是按天计费; c.能够判断输入的房间号、姓名、身份证号、入住时间等信息是否按正确格式输入; d.能够判断输入的房间号对应的房间是否有人入住,输入的身份证号是否正有人使 用,输入的当前时间是否小于以前登记的所有时间; e.输入完成后将输入的信息按房间号排序并保存到文件; (4)退房时: a.能够判断是否有顾客入住; b.能够判断输入的房间号、姓名、身份证号、退房时间等信息是否按正确格式输入; c.能够判断输入的房间号对应的房间是否是
5、空房; d.能够判断输入的姓名、身份证号与退房的房间号是否对应(即判断该房间中住的 是不是这个顾客) ; e.能够判断输入的退房时间是否小于入住时间; f.能够计算出顾客入住的总时间数并根据顾客入住的总时间数、 对应房间价格和顾客 选择的支付方式计算出应付金额,并判断顾客支付的金额是否大于应付金额; g.输入顾客支付的金额后计算出找零金额并显示; - 2 - h.退房结束前从顾客信息表中删去该退房顾客信息并将此次操作的信息写入历史记 录文件; (5)查询当前入住情况时: a.判断是否有顾客入住; b.能够判断输入的当前时间是否小于任一顾客的入住时间; c.根据当前时间算出每位顾客的当前总入住时
6、间数; d.逐条输出当前顾客信息及其当前总入住时间数; (6)查询当前费用时: a.判断是否有顾客入住; b.能够判断输入的当前时间是否小于任一顾客的入住时间; c.根据当前时间算出每位顾客的当前总入住时间数,进而算出各顾客应付金额; d.逐条输出当前顾客信息及其当前总入住时间数、当前费用; (7)查询历史记录时: a.判断是否有历史记录; b.从历史记录文件中读出每条历史记录并逐条输出; 2.2 功能框架图 由 2.1 分析得以下功能图: 图 2-1 功能框架图 - 3 - 2.3设计方案说明 先编写各个功能分块的函数,然后在主函数中调用这些函数实现功能,即采用先分后 总的方法。通过定义全局变量作为函数