1、C语言酒店管理系统设计C+程序设计课程设计报告班级 计科101班 学号 37 姓名 毛翔 得分 一 目的 加深对C+/C语言知识的理解,扩大相关知识面,培养对这些知识的应用能力。通过一个实际问题的C+/C语言源程序的编写和调试,提高综合运用C+/C语言、程序设计技术的能力,并为后续相关课程的学习打下基础。二 题目及要求题目:酒店房间登记与计费管理系统 功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。 2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
2、 3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。 3、进一步要求:完成计费和费用查询功能。要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。三 程序设计思想及流程图正确定义所要用到的变量,运用结构体存放房间的信息,用函数实现各个功能, 对不同标准的房间实施不同的
3、收费标准用,在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用,用switch语句实现旅客对所需要的操作的选择,其他具体操作的实现用循环、顺序、选择结构语句实现。四 源程序#include stdafx.h#include using namespace std;#define ROOMNUM 10#define DAYFEE 100#define HOURFEE 10typedef struct room int id;/房间编号 int num;/床位数 float fee;/费率 int type;/0 代表按天,1代表安小时 float time;/时间 char start
4、Time50;/入住时间 char name30;/旅客姓名 bool status;/房间状态 false 代表空闲 true 代表已经有旅客ROOM;bool InitRoom(ROOM *roomList,int len) /printf(请分别输入 编号 床位数 ); for(int i=0;iroomListi.idroomListi.num; roomListi.id = 100+i; roomListi.num = 2; roomListi.type = 0; roomListi.status = false; roomListi.time = 0; roomListi.fee
5、= DAYFEE; return true;void InitRoom(ROOM &r)/重载 r.type = 0; r.status = false; r.time = 0; r.fee = DAYFEE;int RegRoom(ROOM *roomList,int len) bool flag = false; for(int i=0;ilen;i+) if(!roomListi.status) flag = true; break; if(flag) coutroomListi.nameroomListi.startTimeroomListi.type; if(roomListi.ty
6、pe = 1) roomListi.fee = HOURFEE; roomListi.status = true; if(flag) return i; else return -1;bool SearchRoom(ROOM *roomList,int len,int roomId) bool flag = false; for(int i=0;ilen;i+) if(roomListi.id = roomId) flag = true; break; if(flag) if(roomListi.status) cout该房间已经被旅客:roomListi.name 租住!endl; else
7、 cout该房间还是空闲的!endl; else cout该房号不存在!endl; return flag;void DispalyCountInfo(ROOM &r) cout房号:r.id 客户名:r.name起始时间:r.startTime 费用:r.fee*r.timeendlendl; void DispalyAllRoom(ROOM *roomList,int len) cout房号 状态 客户名 入住时间endl; for(int i=0;ilen;i+) coutroomListi.id; if(roomListi.status) cout 入住 roomListi.name
8、roomListi.startTime; else cout 空闲 ; coutendl; bool CountRoom(ROOM *roomList,int len,int roomId) bool flag = false; for(int i=0;ilen;i+) if(roomListi.id = roomId) flag = true; break; if(flag) if(roomListi.status) if(roomListi.type = 0) cout该旅客按天租住:n; else cout该旅客按小时租住:n; coutroomListi.time; DispalyCo
9、untInfo(roomListi);/显示结账信息 InitRoom(roomListi);/初始化该房间 else cout该房间还是空闲的,不能结账!endl; else cout该房号不存在!endl; return flag;bool RequireRoom(ROOM *roomList,int len,int roomId,float time) bool flag = false; for(int i=0;ilen;i+) if(roomListi.id = roomId) flag = true; break; if(flag) if(roomListi.status) if(
10、roomListi.type = 0) cout该旅客按天租住:n; else cout该旅客按小时租住:n; float t = roomListi.time; roomListi.time = time; DispalyCountInfo(roomListi);/显示结账信息 roomListi.time = t; else cout该房间还是空闲的,不能结账!endl; else cout该房号不存在!endl; return flag;int main(int argc, char* argv) ROOM roomListROOMNUM; InitRoom(roomList,ROOMN
11、UM); int roomId; float time; int ret = -1; int regId = 0; while(ret != 0) cout请输入一个整数:n 1. 登记入住;n 2. 查询房间;n 3. 查询当前费用;n 4. 结账退房; n 5.显示所有房间信息 n 0. 退出系统。n; coutret; switch(ret) case 1: regId = RegRoom(roomList,ROOMNUM); if(regId=0) cout登记成功!房间号为:roomListregId.idendl; else cout房间已经满!endl; break; case
12、2: coutroomId; SearchRoom(roomList,ROOMNUM,roomId); break; case 3: coutroomIdtime; RequireRoom(roomList,ROOMNUM,roomId,time); break; case 4: coutroomId; CountRoom(roomList,ROOMNUM,roomId); break; case 5: DispalyAllRoom(roomList,ROOMNUM); break; coutendl; return 0;五 设计体会经过这次课程设计,我发现我们所学的知识还是远远不够的.我们不仅要牢牢掌握课本上的知识,还要进行课外探索,对知识点进行深入研究,加深对知识点的理解.还有更重要的一点是,在学好知识的同时,多去实践一下,做到学以致用,这样才能更好的提高自己的能力,真正成为这方面的人才.(报告以此为模板,打印装订后上交)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1