C语言实验报告酒店管理系统.doc

上传人:scccc 文档编号:13595586 上传时间:2022-01-19 格式:DOC 页数:16 大小:271KB
返回 下载 相关 举报
C语言实验报告酒店管理系统.doc_第1页
第1页 / 共16页
C语言实验报告酒店管理系统.doc_第2页
第2页 / 共16页
C语言实验报告酒店管理系统.doc_第3页
第3页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言实验报告酒店管理系统.doc》由会员分享,可在线阅读,更多相关《C语言实验报告酒店管理系统.doc(16页珍藏版)》请在三一文库上搜索。

1、武汉科技大学C语言程序设计课程设计题目酒店管理系统班 级信息与计算科学2班姓名 陈诚学 号 201407119043成 绩 2015年6月23日一、总体设计1、程序的总体设计(1)程序总体设计思路:酒店房间登记管理系统,实现的是房间登记与管理(包括登记入住、查询)为了体现模块化设计,把所有要实现的功能做成函数,采用分步实施的方法逐步细化。 具体分布实施有以下5步。1, 编写模块2, 定义实现个功能模块所要函数3, 编写各个函数4, 理清思路,逐步修改5,调试整个程序。核心部分是各个函数:1、欢迎界面函数:通过switch进入不同界面。2、登记入住函数:使用户在入住前登记个人信息,选择房间信息3

2、、查询入住情况函数:顾客可通过两种方式查找到自己的个人信息。4、查询当前费用函数:顾客可随时查询所用费用5、结账退房函数:所有信息清零。2、数据结构此系统,选择用结构体存放不同类型的数据,房间信息。在这过程中由于对指针的运 用与操作还不熟练,不方便修改,所以没用指针。(1)创建房间信息结构体/*结构体hotel房间号、房间种类、客户姓名、身份证号、入住状态、实际收房费,押 金等*/struct hotelint num; /* 房间号 */int kind; /* 房间种类1 (表示单人间)2 (表示双人间)*/char name20; /* char ID19; /* int flag; /

3、*flag 0 int din gjia; /*姓名*/身份证号*/0 (表示无人入住)*/(表示有人入住)房间定价*/roomM;3、函数原型声明 void welcome。; / int den gji(); / int now_room(); / int now_feiyon g(); / int tuifa ng(); / int fin d(); / int kfxin xi(); / void jiezha ng(); / int quit(); / int mima();/ void save(); /主界面登记入住函数查询当前房间入住情况查询当前费用 结账退房查询当前入住人数客

4、户信息 结账付款退出函数 密码/保存int shiji; /* 实际缴纳费用*/、详细设计1、主函数设计主函数说明:为满足顾客登记入住,查询房间入住情况,查询当前费用,结账退房等功能 的实现,设计此函数。开始进入欢迎界面让顾客选择,进入顾客所选界面。主函数流程图2、子函数流程图(1)登记入住函数说明:住流程图登记入2.客(2)查询房间入住情况:2种查询方式(1.按房号查询 户信息查询),最终输出结束否否否是是日函数z_号返回主输入 房间;输出个人 信息选择查询方式(i)1. 按房号查询2. 按客户信息查询输入身 份证号查询房间入住情况结束结账退房流程图三、测试出现欢迎界面 测试1选择选项1,入

5、住登记“ 1”按提示输入信息(如:1-单人间,1-房间号,陈诚,200元,登记成功)测试2:选择选项2,查询房间入住情况“ 1”按房间号查询,1、房间号 出现刚登记的个人信息2、房间号该房为空房“ 2” 按客户信息查询,身份证号 出现个人信“ 3”退出,返回欢迎界面测试3:选择选项3,查询客户当前费用“ 1”号房间,当前费用100元测试4:选择选项4,结账退房“ 2”号房间,空房,重输“ 1”号房间,应支付100元,退房成功四、小结此程序满足课程设计要求,实现登记、查询、结账等操作,并对不同房间实施不同收 费标准,计算总费用等功能。程序优点:整个程序界面友好,与顾客有良好的界面交流。程序虽简单

6、,但功能齐全。 程序缺点:(1)数据结构单一。主要是学习 c语言时间短,知识程度不深,不够全面,知道的不(2)不会调用系统时间。在做课设的过程中,我对 c 语言有了更深入的了解。它很考察逻辑的严密性,思路条 理要清晰是很重要的,它包含你编写程序的大致方向。严谨认真的态度也不可或缺。调试 程序过程中也可以提升自己的理解已经加深自身熟练度。遇到问题要想方设法将它解决, 看书找资料,请教同学,与同学讨论,从这些方面我又可以学会合作。源码:/ 主函数 /#define M 40#include#include#include#includedingyi.h#includejiegouti.h#incl

7、udefind.h#includekfxinxi.h#includezuizhongfeiyong.h#includequit.h#includezhujiemian.h#includedengji.h#includedangqianruzhu.h#includedangqianfeiyong.h#includetuifang.h#includemima.h#includesave.h#includeduru.h/* 主函数 */void main()int i,j;mima(); / 密码 /duru(); /读入数据 /welcome(); / 载入主界面 /scanf(%d,&i);sw

8、itch(i)case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now_feiyong();break;case 4:j=tuifang();break;case 5:exit(0);default:quit();while(j!=0) / 操作结束可返回主界面 /welcome();scanf(%d,&i);switch(i)case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now_feiyong();break;case 4:j=tuifang();bre

9、ak;case 5:exit(0);default: quit();/* 登记入住 */int dengji()int i,j,a,k,n;nn);system(cls);prin tf(nn登记入住printf( 请选择房间类型 :nn); printf(1. 单人间 2. 双人间 nn); scanf(%d,&n);switch(n)case 1:printf( 现在空闲的单人房间有 : n);for(i=1,j=0;i=M;i=i+2) if(roomi-1.flag=0) printf(%dt,i);j+;if(j%5=0)printf(n); / 控制每行输出个数 /printf(

10、安排客户想要的房间 : ); scanf(%d,&k);while(k%2=0)printf(! 房号输入错误,请重新输入 n); scanf(%d,&k);roomk-1.kind=1;roomk-1.num=k;printf(n请输入客户的姓名 : );scanf(%s,roomk-1.name);printf(n请输入客户的身份证号 : );scanf(%s,roomk-1.ID); while(strlen(roomk-1.ID)!=18) printf(! 输入有误,请重新输入 n);scanf(%s,roomk-1.ID); roomk-1.dingjia=100;printf(n

11、n应当缴纳房费 %d元,roomk-1.dingjia);printf(nn实际缴纳的金额为 : );scanf(%d,&roomk-1.shiji);while(roomk-1.shijiroomk-1.dingjia) printf(ttnn!输入有误,请重新输入 !nn);printf(nn实际缴纳的金额 : );scanf(%d,&roomk-1.shiji);printf(nn是否确认入住(1-是2-否)n);scanf(%d,&a);while(a!=1&a!=2)printf(nntt! 输入有误,请重新输入 : ); scanf(%d,&a);if(a=1) roomk-1.f

12、lag=1;printf(n 已成功登记 !nn); save();break;case 2:printf( 现在空闲的双人房间有 : nn); for(i=2,j=0;i=M;i=i+2) if(roomi-1.flag=0)printf(%dt,i);j+;if(j%5=0) printf(nn); / 控制每行输出个数 /printf( 安排客户想要的房间 : ); scanf(%d,&k);while(k%2!=0)printf(! 房号输入错误,请重新输入 :n);scanf(%d,&k);roomk-1.kind=2;roomk-1.num=k;printf(n请输入客户的姓名 :

13、 );scanf(%s,roomk-1.name);printf(n请输入客户的身份证号 : );scanf(%s,roomk-1.ID); while(strlen(roomk-1.ID)!=18)printf(! 输入有误,请重新输入 :n); scanf(%s,roomk-1.ID);roomk-1.dingjia=200;printf(nn应当缴纳房费 %od元,roomk-1.dingjia);printf(nn实际缴纳的金额为 : );scanf(%d,&roomk-1.shiji);while(roomk-1.shijiroomk-1.dingjia)printf(ttnn! 输

14、入有误,请重新输入 :nn); printf(nn实际缴纳金额为 : );scanf(%d,&roomk-1.shiji);printf(nn是否确认入住(1-是2-否)n);scanf(%d,&a);while(a!=1&a!=2)printf(nntt! 输入有误,请重新输入 : ); scanf(%d,&a);if(a=1) roomk-1.flag=1;printf(n 已成功登记 !nn); save();break;default: quit();quit();return 1;/ 读取函数 /void duru()FILE *fp;int i;if(fp=fopen(kf_dat

15、,rb)=NULL)printf(cannot open file n); return ;for(i=0;iM;i+)fread(&roomi,sizeof(struct hotel),1,fp);fclose(fp);/* 查询入住人数 */int find()int number=0;int i;for(i=0;i4|i1)printf(nntt输入有误,请重新输入 : );scanf(%d,&i);else if(i=1)printf(nn 请输入房间号 : ); / 按房号查询 scanf(%d,&j);if(roomj-1.flag=0) printf(nn 此房间无人住 nn);

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

17、%s,a);else return(1);break;else if(i=3)break;elseprintf(ttnn1.输入有误 , 请重新输入 nn);printf(tt1.按房号查询 nntt2. 按客户信息查询nntt3.按入住时间查询nntt4. 退出);printf(nn请选择: );scanf(%d,&i);quit();/* 退出函数 */int quit()int y;printf( 是否需要返回主界面? 1-是2-否nn);scanf(%d,&y);if(y=1)welcome();elseprintf(* 欢迎下次光临武科大酒店 *!nn); return 1;/ 保存

18、函数 /void save()FILE *fp;int i;if(fp=fopen(kf_dat,wb)=NULL)printf(cannot open file n); return ;for(i=0;i0)printf(找还顾客 (元n,yu);else printf(顾客应再支付 4元n,yu*(-1);/* 结账退房 */int tuifang()char zhonglei30;int n,m;system(cls);prin tf(nn结账退房nn);if(find()=0)printf( 房间都是空的 !nn);elseprintf( 请输入需要退房的房号 : );scanf(%d

19、,&n);if(nM|n1)printf(nn 输入有误 , 请重新输入 :,M);scanf(%d,&n);if(roomn-1.flag=0)printf( 空房,无法办理退房 !nn);switch(roomn-1.kind)case 1:strcpy(zhonglei, 单人间 );break;case 2:strcpy(zhonglei, 双人间 );break;printf( 房间号: %dn 房间类型 : %sn 客人姓名 : %sn 身份证号: %sn,roomn-1.num,zhonglei,roomn-1.name,roomn-1.ID);printf(nt 房间定价为 :

20、 %dn,roomn-1.dingjia);if(roomn-1.flag=1) shoufei(roomn-1.dingjia,roomn-1.shiji); printf(nn 是否退房 (1. 是 2.否) : );scanf(%d,&m);if(m=1)roomn-1.flag=0;strcpy(roomn-1.name,0);roomn-1.shiji=0;printf(nn 您已成功退房,欢迎下次光临 !nn);save();quit();return 1;/* 主界面 */void welcome()int n;n=find();system(color 4F);printf()

21、; n);printf(tprintf(tprintf(tprintf(tprintf(tprintf(ttttt数: %dn,M,M-n);printf(欢迎进入武科大酒店管理系统1. 入住登记 nn);/dengji()/2. 查询当前房间入住情况 nn);/ now_room()/3. 查询客户当前费用 nn); /now_feiyong()/4. 结账退房 nn);/ tuifang()/5. 退出系统 nn);/酒店总房间数 : %d nttttt当前剩余printf(n n);printf( 请根据序号进行下一步 : n);/* 结构体 hotel 房间号、房间种类、客户姓名、身份

22、证号、入住状态、实际收房费,押金等 */struct hotelint num; /* 房间号*/int kind; /* 房间种类 1 (表示单人间) 2 (表示双人间) */ char name20; /* 姓名 */ char ID19; /* 身份证号 */int flag; /*flag 0(表示有人入住) 0(表示无人入住) */int dingjia; /* 房间定价 */ int shiji; /* 实际缴纳费用 */ roomM;/ 头文件用来声明函数 / void welcome(); /主界面int dengji(); / 登记入住函数 int now_room(); /查询当前房间入住情况int now_feiyong(); / 查询当前费用 int tuifang(); /结账退房int find(); / 查询当前入住人数 int kfxinxi(); /客户信息void jiezhang(); / 结账付款 int quit(); /退出函数int mima();/密码 /void save(); / 保存/

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1