酒店房间登记与计费管理系统《C语言课程设计》.docx

上传人:牧羊曲112 文档编号:2035108 上传时间:2023-01-02 格式:DOCX 页数:37 大小:212.80KB
返回 下载 相关 举报
酒店房间登记与计费管理系统《C语言课程设计》.docx_第1页
第1页 / 共37页
酒店房间登记与计费管理系统《C语言课程设计》.docx_第2页
第2页 / 共37页
酒店房间登记与计费管理系统《C语言课程设计》.docx_第3页
第3页 / 共37页
酒店房间登记与计费管理系统《C语言课程设计》.docx_第4页
第4页 / 共37页
酒店房间登记与计费管理系统《C语言课程设计》.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《酒店房间登记与计费管理系统《C语言课程设计》.docx》由会员分享,可在线阅读,更多相关《酒店房间登记与计费管理系统《C语言课程设计》.docx(37页珍藏版)》请在三一办公上搜索。

1、酒店房间登记与计费管理系统C语言程序设计课程设计报告 学 院: _专业班级: 学生姓名: 学 号: 设计地点(单位)_ 计算机自主学习中心 _ 设计题目:_ 酒店房间登记与计费管理系统设计 完成日期: 年 月 日 指导教师评语: _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 摘要本次C语言课程设计我选择的设计任务是客房管理系统设计,这个管理系统是用C语言在VC 6.0 c+的编译器编译而成的。客房管理系统包括客户基本信息的录入、房间统计、用户个人费用及住房信息查询、自动结账、退出系统功能等。系统的开发主要由分析、查阅相关书籍和参考资料、程序设计、编写代码、运行实施、调试和测试、

2、维护和修改等阶段组成,其中信息管理和自动运行为开发的重点。在程序设计中结构体的调用与各函数、数组的调用为编译的重点部分。关键词:结构体 函数 数组课程设计任务书设计题目:酒店房间登记与计费管理系统设计学生姓名课程名称C语言程序设计课程设计专业班级计科11地 点I305/I306起止时间2012年1月9日1月13日设计内容及要求请你为XX酒店设计一个房间登记与计费管理系统。该系统中应包括所有房间的信息(房号、房型、基本描述、挂牌房价、入住状态)等,客人入住后应产生一条入住记录(基本信息包括:房号、客人姓名、客人证件类别、客人证件号、入住日期、押金情况),客人退房后要修正房间的入住状态并产生相应的

3、账单。 【题目要求】 (1)屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。(2)对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。 (3)在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。要求用C语言的文件操作语句将以上所有结果分别保存在文件中。 【输入/输出要求】 (1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息; (2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的

4、数据内容、格式及结束方式等。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年其它难点提示:首先分析题目的数据结构,看看要操作那些值;然后根据题意设计操作对象的结构。可以使

5、用结构体来描述其中较为复杂的对象例如往来帐目;确定结构体的定义;可以使用数组来保存数据,使用结构体数组来保存各类数据。说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:伍建全/雷亮/焦晓军陈应祖/杨治明 2012年1月1日目录1. 软件需求说明书71.1需求分析71.2软件功能简介71.2.2 查询房间入住情况71.2.3 查询当前费用71.2.4 结账退房71.3界面、数据结构要求72. 系统分析与设计82.1软件界面设计82.1.1首

6、页欢迎界面82.1.2 登记入住界面82.1.3 客户入住信息查询界面92.1.4 客户个人费用查询界面102.1.5 客户退房结账界面102.1.6 客户结账收退支付费用结账界面112.1.7 用户退出系统界面112.2软件的数据(结构)设计122.3软件的算法设计132.3.1主要结构模块框图132.3.2 主要流程图132.3.2 具体模块使用结构流程133.软件的实现153.1 核心功能再现153.2关键代码分析313.2.1int dengji()313.2.2int lookfor_room()313.2.3int lookfor_price()313.2.4 int tuifan

7、g()324.软件测试334.1 函数简介334.2 测试用例334.2.1 void welcome(); /首页欢迎界面334.2.2 int dengji()334.2.3 int lookfor_room();/用来查询房间入住情况334.2.4 int lookfor_price(); /用来查询当前费用334.2.5 int tuifang(); /用来结账退房344.2.6 void yingzhifu(); /用来结账付款344.2.7 int quit(); /退出函数345.软件使用说明书356.致谢377.参考文献387.1 何钦铭 颜晖.语言程序设计.高等教育出版社.2

8、008年387.2 谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年387.3 Al Kelley等C语言解析教程,Al Kelley等,机械工业出版社,2006.138 1 软件需求说明书1.1需求分析随着时代的进步、科学的发展,对信息技术的要求也越来越高。而顾客对各大酒店和客房的要求也越来越高,酒店以前的全人工服务已经不能满足顾客和以及现代信息化时代的要求。顾客选择入住酒店时也会选择更加现代化和信息化的更加方便快捷的现代化服务酒店。所以现在各大酒店也都向着信息化和现代化的方向发展,引进更加先进和方便的酒店管理和服务系统。计算机的自动化管理系统提高了酒店管理的管理水平和工作效率,

9、增强酒店的竞争能力降低成本,为客户提供更加优质的服务。所以需要开发一个计算机系统来代替人工管理酒店客户入住登记和信息查询等方面的工作。使用该系统可以使酒店的服务更加快捷、准确和方便,减少大量的人工操作,提高了工作效率。1.2软件功能简介1.2.1 登记入住自动登记顾客的各人信息,包括顾客姓名、身份证件、证件号码、选择房间种类、计费方式、押金交付等功能。1.2.2 查询房间入住情况1.2.3 查询当前费用1.2.4 结账退房1.3界面、数据结构要求屏幕上显示一个界面,界面要求简洁美观,让操作员能够根据具体的提示信息方便的选择所需要进行的操作。用户输入数据时,要给出清晰、明确的提示信息,包括输入的

10、数据内容、格式及结束方式等。2. 系统分析与设计2.1软件界面设计2.1.1 首页欢迎界面2.1.2 登记入住界面2.1.3 客户入住信息查询界面2.1.4 客户个人费用查询界面2.1.5 客户退房结账界面2.1.6 客户结账收退支付费用结账界面2.1.7 用户退出系统界面2.2软件的数据(结构)设计主要所用的结构体、函数和变量的数据类型struct date /定义结构体date,记录入住和结账时间 int mon; /整形 int 格式控制符为%d int day; int hour; ; struct costoem /定义结构体costoem int num; /房间号 格式控制符为%

11、d int kind; /房间种类 1-单人间 2-双人间 char name20;/客户信息 /字符型 char 格式控制符为%s char ID19; /身份证号 int h_money; /按小时收费价格 int d_money; /按天收费价格 格式控制符为%d struct date time; /入住时间 time被说明为data结构类型。成员名可与程序中其它变量同名,互不干扰。 int flag; /入住状态,flag: 0无人入住 1按小时入住 2按天入住 int deposit; /押金roomM;2.3软件的算法设计2.3.1主要结构模块框图 酒店管理系统结账退房费用查询房

12、间查询入住登记结账退房 2.3.2 主要流程图2.3.2 具体模块使用结构流程 信息查询入住登记顾客欢迎菜单输入个人信息结账退款按3种方式查询登记成功退出系统3.软件的实现3.1 核心功能再现#include#include#include#include#define M 60/程序所有功能所用函数void welcome(); /首页欢迎界面int dengji(); /用来登记入住 int lookfor_room();/用来查询房间入住情况int lookfor_price(); /用来查询当前费用 int tuifang(); /用来结账退房 int find(); /用来查找入住人

13、数 long h_jifei(); /按小时计费 long d_jifei(); /按天计费 int per_infor(); /显示个人信息 void yingzhifu(); /用来结账付款 int quit(); /退出函数 struct date /定义结构体date,记录入住和结账时间 int mon; int day; int hour; ; struct costoem /定义结构体costoem int num; /房间号 int kind; /房间种类 1-单人间 2-双人间 char name20;/客户信息 char ID19; /身份证号 int h_money; /按

14、小时收费价格 int d_money; /按天收费价格 struct date time; /入住时间 int flag; /入住状态,flag: 0无人入住 1按小时入住 2按天入住 int deposit; /押金roomM; /*个人信息函数*/ int per_infor(int k) char zhonglei30,fangshi30; switch(roomk.flag)/选择计费方式 case 1:strcpy(fangshi,按小时计费);break; case 2:strcpy(fangshi,按天计费);break; default:break;/输入与原定比较不符合跳出循

15、环 switch(roomk.kind) /选择房间种类 case 1:strcpy(zhonglei, 单人间);break; case 2:strcpy(zhonglei,双人间);break; printf(nntt-姓名: ); puts(roomk.name);printf(nn); printf(tt-身份证号: ); puts(roomk.ID);printf(nn); printf(tt-房间种类: ); puts(zhonglei);printf(nn); printf(tt-房间号: ); printf(%d,k+1);printf(nn); printf(tt-计费方式:

16、 ); puts(fangshi);printf(nn); printf(tt-押金: ); printf(%d元,roomk.deposit);printf(nn); printf(tt 入住时间: ); printf(2012年%d月%d日%d时nn,roomk.time.mon,roomk.time.day,roomk.time.hour); return(0); /*查询入住人数函数*/int find() int count=0,i; /查询房间数 for(i=0;i=10) feiyong=(b+1)*money; /如果小时数大于10,则算为一天 else if(a=0) fei

17、yong=b*money; /如果小时数大于0而小于10,则不计算小时 else a=a+24; /如果小时数小于0,则小时数加24,天数减一,按天数计费重新计算 b=b-1; if(a=10) feiyong=(b+1)*money; else feiyong=b*money; return feiyong; /返回费用值 /*按小时计费*/ long h_jifei(struct date end,struct date start,int money) long feiyong; int a,b; a=end.hour-start.hour; /计算小时 b=end.day-start.

18、day; / 计算天数 if(a0) printf(酒店应找还顾客%ld元,dif);/押金金额大于应支付 else printf( 顾客应再支付%ld元,dif*(-1);/押金金额小于应支付 /*退出函数,返回欢迎主菜单页面函数*/ int quit() int z; printf(您需要返回欢迎界面吗?1-是 2-否nn); scanf(%d,&z); if(z=1) / 返回欢迎界面 welcome(); else printf(* 谢谢您的惠顾,欢迎您下次光临!*!nn); exit(0); /*欢迎主菜单页面*/ void welcome() int n=find(); int i

19、,j; printf(&#&); printf(nntt-欢迎来到*酒店-nn); printf(ttt 1. 登记入住 nn);printf(ttt 2. 查询房间入住情况 nn); printf(ttt 3. 查询当前费用 nn); printf(ttt 4. 结账退房 nn); printf(ttt 5. 退出系统 nn); printf(tt总房间数: %d t入住人数: %d t空房间数: %d,M,n,M-n); printf(nn&#&nn); printf(ttt 请选择您所需的服务: ); scanf(%d,&i); switch(i) /控制选择项目 case 1:j=de

20、ngji();break;/进入相应操作目录 case 2:j=lookfor_room();break; case 3:j=lookfor_price();break; case 4:j=tuifang();break; default:printf( 欢迎您下次光临nn);输入错误退出 exit(0); while(j!=0) welcome(); /进入欢迎菜单主界面 scanf(%d,&i); switch(i) case 1:j=dengji();break; case 2:j=lookfor_room();break; case 3:j=lookfor_price();break;

21、 case 4:j=tuifang();break; default:printf(nn* 欢迎您下次光临 *nn); exit(0); /*顾客登记入住函数*/ int dengji() int i,j,k,yajin,s,a,n; char ch,fangshi30; printf(nn# 登记入住 #nn); if(find()=M) /入住人数与房间总数相等 printf(当前房间已满,是否返回(Y/N): ); ch=getchar(); if(ch=y) return(1); /返回主菜单 else exit(0); printf(请选择房间类型:nn); printf(1.单人间

22、 2.双人间nn); scanf(%d,&n); printf(可供您选择的房间有: nn); for(i=30*(n-1)+1,j=0;i30*n+1;i+) /单人间的j入住人数,i剩余房间数 if(roomi-1.flag=0) printf(%dt,i); j=j+1; if(j%5=0)printf(nn); printf(请输入您准备入住的房间号: ); /房间号kroomk-1 scanf(%d,&k); roomk-1.kind=n; roomk-1.num=k; printf(nn请选择您的计费方式:(1.按小时收费为%d元/时-2.按天计费为%d元/天)t,roomk-1.

23、h_money,roomk-1.d_money); scanf(%d,&s); while(s!=1&s!=2) printf(输入有误,请重新输入: ); scanf(%d,&s); if(s=1) roomk-1.flag=1; else roomk-1.flag=2; printf(nn请输入您的姓名: ); scanf(%s,roomk-1.name); printf(nn请输入您的身份证号: ); scanf(%s,roomk-1.ID); switch(n) case 1:yajin=80;break; case 2:yajin=100;break; printf(nn您应当缴纳的

24、押金金额为 %d元,yajin); printf(nn请输入您实际缴纳的押金金额: ); scanf(%d,&roomk-1.deposit); while(roomk-1.deposit5|i1) printf(nntt 输入有误,请重新输入: ); scanf(%d,&i); else if(i=1)/按顾客所住房号查询 printf(nn请输入房间号: ); scanf(%d,&j); if(roomj-1.flag=0) printf(nn此房间无人住nn); else printf(您的个人信息为: ); per_infor(j-1); break; else if(i=2)/按顾客

25、个人信息查询 printf(nn请输入您的身份证号: ); scanf(%s,a); while(1) for(k=0;kM;k+) if(strcmp(a,roomk.ID)=0)break; /比较输入与登记的客户信息 if(k!=M) printf(nn您的个人信息为: ); per_infor(k);break; else printf(ttnn1. 输入有误,请重新输入 2.不存在此人信息,退出 nn); scanf(%d,&s); if(s=1) printf(nn请输入您的身份证号: ); scanf(%s,a); else return(1); break; else if(i

26、=3)/ 按顾客入住时的日期时间查询 printf(nn请输入入住时间: ); scanf(%d月,&tim_t.mon); scanf(%d日,&tim_t.day); for(k=0;kM;k+) if(tim_t.mon=roomk.time.mon&tim_t.day=roomk.time.day)break; if(k=M) printf(nn此时间无入住登记nn); else printf(nn您的个人信息为: ); per_infor(k); printf(nn); break; else if(i=4)break; else printf(ttnn1. 输入有误,请重新输入 nn); printf(tt1. 按房号查询nntt2. 按客户信息查询nntt3. 按入住时间查询nntt4. 退出); printf(nn请选择: ); scanf(%d,&i); quit(); return(0); /*顾客查询到目前为止所消费的费用*/ int lookfor_price() int i,s; struct date end; printf(nn$查询您当前消费费用$nn); if(find()=0) printf(当前客房全部为空房,没有数据可以查询!nn); else printf(请输入您的房间号码: ); scanf(%d,&i); while(1) if(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号