C语言实验报告酒店管理系统_第1页
C语言实验报告酒店管理系统_第2页
C语言实验报告酒店管理系统_第3页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

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<stdlib.h>#include<stdio.h>#include<stri

7、ng.h>#include"dingyi.h"#include"jiegouti.h"#include"find.h"#include"kfxinxi.h"#include"zuizhongfeiyong.h"#include"quit.h"#include"zhujiemian.h"#include"dengji.h"#include"dangqianruzhu.h"#include"dangqia

8、nfeiyong.h"#include"tuifang.h"#include"mima.h"#include"save.h"#include"duru.h"/* 主函数 */void main()int i,j;mima(); / 密码 /duru(); /读入数据 /welcome(); / 载入主界面 /scanf("%d",&i);switch(i)case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now

9、_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();break;case 5:exit(0);default: quit();/* 登记入住 */int dengj

10、i()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+;i

11、f(j%5=0)printf("n"); / 控制每行输出个数 /printf(" 安排客户想要的房间 : "); scanf("%d",&k);while(k%2=0)printf("! 房号输入错误,请重新输入 n"); scanf("%d",&k);roomk-1.kind=1;roomk-1.num=k;printf("n请输入客户的姓名 : ");scanf("%s",);printf("n请输入

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

13、(roomk-1.shiji<roomk-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&quo

14、t;,&a);if(a=1) roomk-1.flag=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"

15、,&k);while(k%2!=0)printf("! 房号输入错误,请重新输入 :n");scanf("%d",&k);roomk-1.kind=2;roomk-1.num=k;printf("n请输入客户的姓名 : ");scanf("%s",);printf("n请输入客户的身份证号 : ");scanf("%s",roomk-1.ID); while(strlen(roomk-1.ID)!=18)printf("! 输

16、入有误,请重新输入 :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.shiji<roomk-1.dingjia)printf("ttnn! 输入有误,请重新输入 :nn"); printf("nn实际缴纳金

17、额为 : ");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()

18、;quit();return 1;/ 读取函数 /void duru()FILE *fp;int i;if(fp=fopen("kf_dat","rb")=NULL)printf("cannot open file n"); return ;for(i=0;i<M;i+)fread(&roomi,sizeof(struct hotel),1,fp);fclose(fp);/* 查询入住人数 */int find()int number=0;int i;for(i=0;i<M;i+)if(roomi.flag!=0)

19、number+;return (number);/* 客户信息 */int kfxinxi(int k)char zhonglei10;switch(roomk.kind)case 1:strcpy(zhonglei,"单人间 ");break;case 2:strcpy(zhonglei,"双人间 ");break;printf("nntt 姓名 : ");puts();printf("nn"); printf("tt 身份证号 : "); puts(roomk.ID);p

20、rintf("nn"); printf("tt 房间种类 : "); puts(zhonglei);printf("nn");printf("tt 房间号 : ");printf("%d",k+1);printf("nn");printf("tt 实收房费 : ");printf("%d 元 ",roomk.shiji);printf("nn");return(1);/ 密码 /int mima()system(&q

21、uot;color 8f");char name10,mima20;printf(" 进入系统前请输入用户名和密码 :n"); scanf("%s%s",name,mima);比较while(strcmp(name,"CC")!=0)|(strcmp(mima,"02200059")!=0)/ 输入的和用户密码是否一致 /printf(" 输入错误 , 重新输入 !n");scanf("%s%s",name,mima);system("cls")

22、;return (1);/* 查询当前费用 */int now_feiyong()int money,n;nn");int i,s; system("cls");prin tf("nn查询当前客户费if(find()=0)printf(" 全为空房 !nn");elseprintf(" 请输入房间号 : ");scanf("%d",&i);while(1)if(roomi-1.flag=0)printf("nn该房为空房,1.重输2.退出nn");scanf(&quo

23、t;%d",&s);if(s=1) printf(" 请输入房间号 : "); scanf("%d",&i); elsebreak;elseprintf("nn 查询的个人信息为 : "); kfxinxi(i-1);printf("nn 当前房间定价为 : %d",roomn-1.dingjia); break;break;quit();return 1;/* 查询当前房间入住情况 */int now_room()int i,j,k,s;char a20;system("cls

24、");prin tf("nn查询房间入住nn");printf("tt1. 按房号查询 nntt2. 按客户信息查询 nntt3. 退出"); printf("nn 请选择: ");scanf("%d",&i);while(1)if(i>4|i<1)printf("nntt输入有误,请重新输入 : ");scanf("%d",&i);else if(i=1)printf("nn 请输入房间号 : "); / 按房号查询

25、 scanf("%d",&j);if(roomj-1.flag=0) printf("nn 此房间无人住 nn");elseprintf(" 您的个人信息为 : ");kfxinxi(j-1);break;else if(i=2) printf("nn 请输入您的身份证号 : "); / 按客户信息查询 scanf("%s",a);while(1) for(k=0;k<M;k+)if(strcmp(a,roomk.ID)=0)break;if(k!=M)printf("n

26、n 您的个人信息为 : ");kfxinxi(k);break;elseprintf("ttnn1.输入有误,请重新输入 2. 不存在此人信息, 退出 nn");scanf("%d",&s);if(s=1)printf("nn 请输入您的身份证号 : ");scanf("%s",a);else return(1);break;else if(i=3)break;elseprintf("ttnn1.输入有误 , 请重新输入 nn");printf("tt1.按房号查询

27、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;/ 保存函数 /void save()FILE *f

28、p;int i;if(fp=fopen("kf_dat","wb")=NULL)printf("cannot open file n"); return ;for(i=0;i<M;i+) if(fwrite(&roomi,sizeof(struct hotel),1,fp)!=1) printf("file write error n");fclose(fp);/* 最终收的费用 */void shoufei( int dingjia,int shiji)int yu;yu=shiji-dingjia

29、;if(yu=0)printf(" 费用刚刚好,不用找零或补钱 n");else if(yu>0)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("

30、请输入需要退房的房号 : ");scanf("%d",&n);if(n>M|n<1)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," 双人间 ");b

31、reak;printf(" 房间号: %dn 房间类型 : %sn 客人姓名 : %sn 身份证号: %sn",roomn-1.num,zhonglei,,roomn-1.ID);printf("nt 房间定价为 : %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(,"0");roomn-1.shi

温馨提示

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

评论

0/150

提交评论