1、客房管理系统C语言课程设计C 语言课程实习报告所 在 院 系 : 班 级 学 号 : 姓 名 : 程序 已存档 : 是 否指 导 老 师 : 曼评 分 :二零一四年七月1.题目与要求( 1)2.功能实现设计( 2)2.1总体设计 (2)2.2详细设计 (2)2.2.1 保存函数 (2)2.2.2读取函数 (3)2.3 功能模块设计( 4)2.3.1 注册模块( 4)2.3.2统计模块( 5)2.3.3查询模块 (7)2.3.4修改模块 (9)2.4主函数 (11 )3.上机操作( 12)4.结束语( 16)实习课题:客房管理系统1. 题目与要求: 实现登记功能,要提供结构体的输入操作, 实现统
2、计功能,要提供相应的统计操作, 实现查询功能,要提供查找操作, 实现修改功能,要提供修改操作; 另外还有提供键盘式菜单实现功能选择。头文件: #include #include #include #include #include#define NUM 50 / 定义常量 NUMvoid input();void record();void find();void modify();int now_no; / 定义全局变量 now_no 建立如下结构体:struct Clientchar name20;char sex10;int age;char ID_card20;int year;int
3、 month;int date;int Room_ID; char Tel15; int Price;char Sign10; RoomNUM;2. 功能实现设计 :2.1总体设计 :下面来分析一下整个系统, 根据上面的要求分析, 可将这个系统设计为五大模块(见下图):注册模块,统计模块,查询模块,修改模块,退出模块。其主 要功能为:注册,统计,查询,修改功能。客房管理系统系统系2.2详细设计 : 程序中需要用到的函数。2.2.1保存函数用于将输入的数据保存到文本文件客户信息 .txt 文件中,实现数据的保存 void save()FILE *fp;int i;if (fp=fopen( 客户
4、信息 .txt,a+)=NULL) /*a+ 表示以读和追加方式打开文件客 户信息 .txt */printf(cannot open filen);return; for(i=0;iRoomi.age!=0;i+) fprintf(fp,%s %s %d %s %d %d %d %d %s %d %sn,Roomi.name,Roomi.s ex,Roomi.age,Roomi.ID_card,Roomi.year ,Roomi.month,Roomi.date,R oomi.Room_ID,Roomi.T el,Roomi.Price,Roomi.Sign);/ 按照规定的格式保存客户信息
5、fclose(fp);2.2.2读取函数将文本文件客户信息 .txt 中的客户个人信息读取出来, 从而实现统计、 查询 以及修改的功能。void read() FILE *fp; int i;if(fp=fopen( 客户信息 .txt,r)=NULL)printf(nCannot open filen);return;for(i=0;!feof(fp);i+) /!feof(fp) 文件读到结束时读取停止 fscanf(fp,%s %s %d %s %d %d %d %d %s %d %sn,&Roomi.name,&Roomi.sex, &Roomi.age,&Roomi.ID_card,
6、&Roomi.year ,&Roomi.month,&Roomi. date,&Roomi.Room_ID,&Roomi.T el,&Roomi.Price,&Roomi.Sign,&now_ no);fclose(fp);2.3 功能模块设计2.3.1注册模块用于完成客户个人信息的输入功能并保存。 本函数的功能为登记用户及房间 信息,包括、性别、年龄、 、年份、月份、日期、房间及房间价格。系统依次分 配房间号并定义此房间为非空。void input()int i=0,right,num;char as,sex10;printf( 顾客人数: );scanf(%d 人 ,&num); / 输入
7、顾客的人数doprintf(tttt1. 录入宾客信息 n 输入第%d宾客的信息 n,i+1);printf(n 输入宾客 :);gets(Roomi.name);doprintf(n 输入宾客性别 :);scanf(%s,&sex);if(strcmp(sex, 男)!=0&strcmp(sex, 女)!=0) /* 判断输入的字符是否为“男”或“女” ,否则输出“输入有误! ” */printf( 输入有误! );right=1;getchar();elseright=0;strcpy(Roomi.sex,sex);while(right=1);printf(n 输入宾客的年龄 :);sc
8、anf(%d,&Roomi.age);printf(n 输入宾客号 :);scanf(%s,&Roomi.ID_card);printf(n 输入宾客入住时间 :);scanf(%d,&Roomi.year);scanf(%d,&Roomi.month);scanf(%d,&Roomi.date);printf(n 输入宾客房间号 :); scanf(%d,&Roomi.Room_ID);printf(n 输入宾客房间 :); scanf(%s,&Roomi.T el);printf(n 输入宾客房间价格 :); scanf(%d,&Roomi.Price);printf(n 输入该房间是否入
9、住 (yes/no):); scanf(%s,&Roomi.Sign); / 输入客户的个人信息 printf(nn);i+;now_no=i;printf( 是否继续输入 ?(Y/N); / 判断是否继续输入 as=getch();system(cls);save(); while(as!=n&as!=N);system(cls); / 清屏2.3.2统计模块 用于统计总共入住的人数,并且可以统计某一天住了多少人以及收入多少 void record()int i,j,y ,m,d,s=0,money=0;char as;int n=0;read();doprintf(n 客房入住总数 : )
10、; fflush(stdin);for(j=0;Roomj.age!=0;j+)n=n+1;printf(%d 间n,n); / 统计一共入住的人数printf( 输入查询日期 : ); / 按照日期统计入住人数及收入scanf(%d%d%d,&y,&m,&d);fflush(stdin);for(i=0;i=NUM;i+) if(Roomi.year=y)&(Roomi.month=m)&(Roomi.date=d)/ 判断输入的日期与数据库中的哪些日期相同 s=s+1;money=money+Roomi.Price;printf(n :%sn 性别:%sn 年龄:%dn 号:%sn 入住时
11、间: %d年%d 月%d日n 房间: %dn :%sn 价格: %dn 是否入住: %sn,Roomi.name,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.y ear,Roomi.month,Roomi.date,Roomi.Room_ID,Roomi.T el,Roomi.Price ,Roomi.Sign);printf(n 该天客房入住总数 : %d 人n,s);printf( 该天共收入 %d元 n,money);printf(t 按任意键返回主菜单 .);as=getch();system(cls);while(!as); system(cls)
12、;2.3.3查询模块 本函数的功能为输出查询功能菜单选项,包括根据房间号查询、根据查询 系统根据输入的选项执行相应的函数。void find()int i,a,b; char str20,as; read ();doprintf(n 按以下条件查询: 1. 2. 房间号 3.返回主菜单 n 请选择: ); scanf(%d,&a);switch(a)case 1:doprintf( 输入要查询的宾客 :);fflush(stdin);gets(str);for(i=0;iNUM;i+)if(!strcmp(Roomi.name,str)printf(n :%sn 性别:%sn 年龄:%dn 号
13、:%sn 入住时间 :%d年%d月%d日n 房 间:%dn 房间:%sn 房间价格 :%dn 该房间是否入住 (yes/no)%snn,Roomi.name,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.year ,Roomi.month,Roomi.date,Roomi.Room_ID ,Roomi.T el,Roomi.Price,Roomi.Sign);else;while(!as);break;case 2:doprintf( 输入要查询的房间号 :);scanf(%d,&b);for(i=0;iNUM;i+)if(Roomi.Room_ID=b)printf(n :%sn 性别:%sn 年龄:%dn 号:%sn 入住时间 :%d年%d月%d日n 房 间:%dn 房间:%sn 房间价格 :%dn 该房间是否入住(yes/no)%s
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1