c语言酒店管理程序设计报告_第1页
c语言酒店管理程序设计报告_第2页
c语言酒店管理程序设计报告_第3页
c语言酒店管理程序设计报告_第4页
c语言酒店管理程序设计报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、+C语言设计报告酒店管理系统院系:机械与电子工程系 专业:电子信息工程 班级:1430401 学号:201230040110 姓名:胡强亚 指导老师:胡文龙摘 要 随着个人计算机的的普及,越来越多的重复性工作被交由计算机来完成。在这种大趋势下,传统的纸质档案管理方式已不适应现代服务业的发展。数字化的管理成为酒店等行业的必要条件。酒店客房管理的电脑化对于优化员工工作效率、降低成本及改善服务质量等方面都有十分积极的作用。本程序是用于酒店客房管理的软件。它可以实现定退房业务处理,用户信息的记录、查询及房间状态管理等功能。虽然比较简陋但已具备应用程序的雏形。本程序运用Microsoft Visual

2、C+编译器编写,涉及C语言的文件读写,结构数组运用及字符串函数相关知识。关键词:数字化管理 酒店管理系统 C语言课程设计任务书设计题目:酒店管理系统设计学生姓名胡强亚课程名称C语言程序课程设计专业班级1430401地 点信工楼408起止时间2012年12月12日12月13日设计内容及要求请你为XX酒店设计一个房间登记与计费管理系统。该系统中应包括所有房间的信息,客人入住后应产生一条入住记录(基本信息包括:房号、客人姓名、客人证件号、入住日期),客人退房后要修正房间的入住状态并产生相应的账单。 【题目要求】 一家旅馆,内设20个客房,现设计程序对其进行有效管理,其基本管理功能如下:入住、退房、查

3、询、显示、退出扩展功能如下:续住 2、设计提示 参考C程序设计学习辅导第214页“案例3:电话订餐信息处理”,读懂程序,在此模式上更改为客房管理系统。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。目 录摘 要21 软件需求分析说明书81.1登记入住系统81.2客房状态查询81.3住户信息查询81.4结账退房系统82 系统分析与设计92.1软件界面设计92.2软件的数据(结构)设计132.3软件的算法设计14 2.3.1软件模块图14 2.3.2程序流程图143 软件的实现173.1使用的结构数组及函数的定义173.2登记入住模块173.3查询房间模块203.

4、4查询房客模块214 软件测试265软件使用说明书271 软件需求分析说明书1.1登记入住系统 登记并记录顾客姓名 登记并记录顾客的证件号码 显示现有空置房间 选择所需要的房间并更改房间状态信息 由于本软件针对操作员设计,所以界面应尽可能简单明了。住房及顾客信息由于涉及多种类型的数据,因此应用结构数组处理。用文件记录相关数据。1.2客房状态查询 分别显示已入住客房与空置客房 读取住房信息文件的内容并判断分类,借此可以清晰明了的显示客房状态。1.3住户信息查询 查询顾客所租房房号 查询顾客住房费用顾客可以通过输入自己的姓名来查询个人的住房信息。1.4结账退房系统 退房 更新所退房间状态 删除退房

5、用户记录 显示账单顾客可以输入姓名来完成退房操作,房间状态将更改为未入住。系统将删除该用户信息记录并读取生成账单。2 系统分析与设计2.1软件界面设计运行程序后进入主界面,可以进行登记入住、查询房间、查询顾客、退出程序等几项操作:图2.1.1选择“1.登记入住”进入登记入住界面:图2.1.2输入相关信息,之后选择计费类型:图2.1.3选择“1.按天入住”按天数计费,会显示目前空置的房间。输入所选房间已进行下一步操作:图2.1.4如选择“2.按小时入住”则按小时计费,操作同理。图2.1.5之后会进入下一界面并提示登记成功。图2.1.6如在主界面选择“2.查询房间的入住情况”则会进入查询房间状况界

6、面,程序将分别依次显示已入住的房间和空置房间。图2.1.7如在主界面选择“3.查询当前费用”则会进入用户查询界面,输入顾客姓名即可进行查询图2.1.8程序会显示该客人的相关信息图2.1.9如在主界面选择“4.结账退房”则会进入用户退房界面,输入顾客姓名即可进行退房操作图2.1.10输入成功后会显示退房成功。图2.1.11在主界面选择“5.退出程序”会进入退出界面。图软件的数据(结构)设计本软件运用了C语言文件的读取与写入功能,各文件的作用如下:count.txt:用于存储房客数量,内部存储一个int*数据。room.txt:用于存储房间信息,内部依次存储:房间状态char*(

7、1位) 房间号char*(4位) 房间类型char*(1位)房间描述char*(6位) 房间日租金int* 房间月租金int*。customer.txt:用于存储房客信息,内部依次存储:姓名char* 证件类型char* 证件号码int* 房间号char*(4位) 房租int* 押金int*2.3软件的算法设计2.3.1软件模块图酒店房间管理系统登记入住模块客房查询模块顾客查询模块结账退房模块2.3.2程序流程图登记入住模块:客房查询模块:结账退房模块: 3 软件的实现3.1使用的结构数组及函数的定义结构体定义:typedef struct room /客房信息char FID5;/房间号ch

8、ar type2;/客房类型char describe7;/该客房类型的描述int cost_d;/日收费int cost_h;/时收费char statu2; /入住情况room;typedef struct customer /入住记录char FID5; /房间号char name20;/名字char type14;/证件类型int ID;/证件号 int pay;/房费int cp; /押金customer;函数定义:void rent(room *p);/登记入住模块void search_room(room *p);/客房查询模块void search_customer(room

9、*p, int l);/费用查询模块void pay(room *p, int l);/结账模块3.2登记入住模块源文件: void rent(room *p) int i,count,n,m=2;struct room rmmax=0;/定义结构数组struct customer cs;char search2='Y',stu2='N',dill5=0;FILE *fpin,*fpout;fpout=fopen("customer.txt","a");assert(fpout != NULL);printf("

10、请输入姓名:");scanf("%s",&);fprintf(fpout,"%s ",);printf("请填入证件类型:");scanf("%s",&cs.type);fprintf(fpout,"%s ",cs.type);printf("请输入证件号码:");scanf("%d",&cs.ID);fprintf(fpout,"%d ",cs.ID);printf(&qu

11、ot;请选择入住方式:n1.按天入住n2.按小时入住n");scanf("%d",&count);fpin = fopen("room.txt","r+");assert(fpin != NULL);printf("以下是现有的空房n");for(i=0;i<max;i+) /对结构数组赋值,录入房间信息 fscanf(fpin,"%s ",rmi.statu); fscanf(fpin,"%s ",rmi.FID); fscanf(fpin,&quo

12、t;%s ",rmi.type); fscanf(fpin,"%s ",rmi.describe); fscanf(fpin,"%d ",&rmi.cost_d); fscanf(fpin,"%d ",&rmi.cost_h);fclose(fpin);for(i=0;i<max;i+)if(strcmp(search,rmi.statu)=0) printf("%s号%s型%s日收费:%d时收费:%dn",rmi.FID,rmi.type,rmi.describe,rmi.cost

13、_d,rmi.cost_h);printf("请输入要入住的房屋");scanf("%s",&dill); for(i=0;i<max;i+)if(strcmp(dill,rmi.FID)=0)/所选房间号与房间数据对比 strcpy(rmi.statu,stu); /更改数组中的房间状态 fprintf(fpout,"%s ",rmi.FID); if(count=1) printf("请选择天数:"); scanf("%d",&n); fprintf(fpout,&qu

14、ot;%d ",rmi.cost_d*n); fprintf(fpout,"%d ",rmi.cost_d*n*m); system("cls"); printf("004已成功登记房间!n"); printf("004您的房号为:%sn",rmi.FID); printf("004请支付%d元的房费以及押金%d元。n",rmi.cost_d*n,rmi.cost_d*n*m); else printf("请选择小时数:"); scanf("%d"

15、;,&n); fprintf(fpout,"%d ",rmi.cost_h*n); fprintf(fpout,"%d ",rmi.cost_h*n*m); system("cls"); printf("004已成功登记房间!n"); printf("004您的房号为:%sn",rmi.FID); printf("004请支付%d元的房费以及押金%d元。n",rmi.cost_h*n,rmi.cost_h*n*m); fpin=fopen("room.txt

16、","w");for(i=0;i<max;i+) /将更改录入文件 fprintf(fpin,"%s ",rmi.statu); fprintf(fpin,"%s ",rmi.FID); fprintf(fpin,"%s ",rmi.type); fprintf(fpin,"%s ",rmi.describe); fprintf(fpin,"%d ",rmi.cost_d); fprintf(fpin,"%dn",rmi.cost_h);f

17、close(fpout);fclose(fpin);3.3查询房间模块void search_room(room *p)int i,h,k;struct room rmmax=0;char search2='Y'FILE *fpin;fpin = fopen("room.txt","r");assert(fpin != NULL);for(i=0;i<max;i+) /对结构数组赋值,即录入房间信息 fscanf(fpin,"%s ",rmi.statu); fscanf(fpin,"%s "

18、,rmi.FID); fscanf(fpin,"%s ",rmi.type); fscanf(fpin,"%s ",&rmi.describe); fscanf(fpin,"%d ",&rmi.cost_d); fscanf(fpin,"%d ",&rmi.cost_h); printf("目前的空置房间有:n");/查询空客房 for(h=0;h<max;h+) /显示结果 if(strcmp(search,rmh.statu)=0) printf("%

19、s 号%s 型房间n",rmh.FID,rmh.type);printf("有顾客入住的房间:n");/查询满客房for(k=0;k<max;k+) /显示结果 if(strcmp(search,rmk.statu)!=0) printf("%s 号%s 型房间n",rmk.FID,rmk.type);fclose(fpin);3.4查询房客模块void search_customer(room *p,int l)/ 参数l的值 即为主函数所读取的客人数量char name20;int a;int i; struct customer c

20、s20=0;FILE *fpin,*fp1;printf("请输入要查询的用户姓名:");scanf("%s",&name);fpin=fopen("customer.txt","r");assert(fpin != NULL);fp1=fopen("count.txt","r");assert(fp1 != NULL);for(i=0;i<l;i+) /读取顾客数据fscanf(fpin,"%s ",&);fscan

21、f(fpin,"%s ",&csi.type);fscanf(fpin,"%d ",&csi.ID);fscanf(fpin,"%s ",&csi.FID);fscanf(fpin,"%d",&csi.pay);fscanf(fpin,"%d",&csi.cp);for(a=0;a<l;a+)if(strcmp(name,)=0) /比较与所输入字符串与是否一致printf("%s ",);prin

22、tf("%s ",csa.type);printf("%d ",csa.ID);printf("%s ",csa.FID);printf("%d ",csa.pay);printf("%dn",csa.cp);fclose(fpin);fclose(fp1);3.5结账退房模块void pay(room *p, int l)int i,j;char name20;char FID5;char stu2='Y'struct room rmmax=0; struct customer

23、 cs20=0;FILE *fp1,*fp2;printf("请输入客人姓名:");scanf("%s",&name);fp1=fopen("room.txt","r");assert(fp1);fp2=fopen("customer.txt","r");assert(fp2);for(i=0;i<max;i+)/对结构数组赋值 fscanf(fp1,"%s ",&rmi.statu); fscanf(fp1,"%s &qu

24、ot;,&rmi.FID); fscanf(fp1,"%s ",&rmi.type); fscanf(fp1,"%s ",&rmi.describe); fscanf(fp1,"%d ",&rmi.cost_d); fscanf(fp1,"%d ",&rmi.cost_h);fclose(fp1); for(j=0;j<l;j+)fscanf(fp2,"%s ",&);fscanf(fp2,"%s ",&a

25、mp;csj.type);fscanf(fp2,"%d ",&csj.ID);fscanf(fp2,"%s ",&csj.FID);fscanf(fp2,"%d",&csj.pay);fscanf(fp2,"%d",&csj.cp);fclose(fp2); for(j=0;j<l;j+)if(strcmp(name, ) = 0) strcpy(FID,csj.FID);for(;j<l-1;j+) csj = csj+1; /为数组重新赋值以完成删除操

26、作 fp2=fopen("customer.txt","w");assert(fp2); for(j=0;j<l-1;j+)printf("%s ",);printf("%s ",csj.type);printf("%d ",csj.ID);printf("%s ",csj.FID);printf("%d ",csj.pay);printf("%dn",csj.cp); for(j=0;j<l-1;j+)fp

27、rintf(fp2,"%s ",);fprintf(fp2,"%s ",csj.type);fprintf(fp2,"%d ",csj.ID);fprintf(fp2,"%s ",csj.FID);fprintf(fp2,"%d ",csj.pay);fprintf(fp2,"%dn",csj.cp);fclose(fp2); for(i=0;i<max;i+)if(strcmp(FID, rmi.FID) = 0)strcpy(rmi.statu,st

28、u);fp1=fopen("room.txt","w"); /打开并清空文件 assert(fp1);for(i=0;i<max;i+) /重新录入全部信息来完成更改 fprintf(fp1,"%s ",rmi.statu); fprintf(fp1,"%s ",rmi.FID); fprintf(fp1,"%s ",rmi.type); fprintf(fp1,"%s ",rmi.describe); fprintf(fp1,"%d ",rmi.cost_d); fprintf(fp1,"%dn",rmi.cost_h);fclose(fp1);4 软件测试1、 void rent(room *p)/登记入住函数用例:input: room a20 output: 请输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论