C语言课程设计酒店房间登记与计费管理系统程序代码.docx
C语言课程设计酒店房间登记与计费管理系统程序代码#include<stdio.h> #include<string.h> /在使用中要用到的字符串都包含在本文件中 #include<stdlib.h> /exit函数就包含在此文件中 #define M 81 int z81=0; /定义一个数组存放使用的房间的标记的信息,且初始化为0 int j,s; /定义两个全局变量 FILE *fp; /定义一个指向文件的指针变量 struct date int month; int day; int year; final; struct hotel int price; int room_ID; struct client char name20; int sex; int age; char ID_card20; int count; struct date start; personal; roomM; /定义全局结构体变量,且里面又调用两个结构体 /声明刷新函数fflush( fp),且指向指针变量指向的位置 void save; void search_situ( ); /声明查看客房入住情况函数 void regist_infor( ); /声明客房登记入住函数 void modify_infor( ); /声明客房信息修改函数函数 void modify_one( ); /声明修改客房信息函数中的修改个人函数 void modify_hotel( ); /声明修改客房信息函数中的修改客房函数 void disp_money( ); /声明显示入住费用函数 int main int menu; /声明主菜单函数 void print_star; void print_message; printf("nnnnn"); print_star; printf("n"); print_message; printf("n"); print_star; menu; /把主菜单用函数来实现 save; return 0; void print_star int i; for(i=1;i<30;i+) printf("t*"); void print_message printf("tttt欢迎入住皇家酒店n"); menu int n; do printf("n"); printf("tt*菜*nnn"); printf("tttt1:查看客房入住情况nnn"); printf("tttt2:登记入住信息nnn"); printf("tttt3:修改客房信息nnn"); printf("tttt4:显示入住费用nnn"); printf("tttt5:退出nnn"); printf("tttt6:返回nnn"); printf("tt*菜*n"); printf("nnttt 请选择输入选项123456:n"); scanf("%d",&n); while(n<1|n>6) printf("请重新输入选项!"); scanf("%d",&n); switch(n) case 1:search_situ;break; /调用查看函数 case 2:regist_infor;break; /调用登记函数 case 3:modify_infor;break; /调用修改函数 case 4:disp_money;break; /调用显示入住费用函数单单 case 5:exit(0); case 6:break; while(n!=6); scanf("%d",&n); return 0; void search_situ( ) /查看函数 int g,count=0; for(g=1;g<=80;g+) if(zg=0) +count; else if(zg=1) printf("n正在使用的房间号:%d",g); printf("nn未使用的房间数:%d",count); /通过循环输出未使用的房间数 printf("nn"); printf("n请输入需查询的房间号:n"); /查询输入的房间号的信息,且输出该房间的相关信息 scanf("%d",&s); if(zs=1) printf("姓名:%s",rooms.personal.name); printf("n性别(其中:1表示男,2表示女!):%d",rooms.personal.sex); printf("n年龄:%d",rooms.personal.age); printf("n身份证号:%s",rooms.personal.ID_card); printf("n入住年份:%d",rooms.personal.start.year); printf("月:%d",rooms.personal.start.month); printf("日:%d",rooms.personal.start.day); printf("n房间号:%d",rooms.room_ID); printf("n客房单价:%d",rooms.price); printf("n入住人数:%d",rooms.personal.count); menu; else printf("该房间未被使用!"); save; /调用保存函数 void regist_infor( ) / 登记函数 printf("请输入登记相关信息:n"); printf("n房间号:"); scanf("%d",&j); roomj.room_ID=j; printf("n姓名:"); scanf("%s",&roomj.personal.name); printf("n性别(其中:1表示男,2表示女!):"); scanf("%d",&roomj.personal.sex); printf("n年龄:"); scanf("%d",&roomj.personal.age); printf("n身份证号:"); scanf("%s",&roomj.personal.ID_card); printf("n入住年份:"); scanf("%d",&roomj.personal.start.year); printf("月:"); scanf("%d",&roomj.personal.start.month); printf("日:"); scanf("%d",&roomj.personal.start.day); printf("n客房单价:"); scanf("%d",&roomj.price); printf("请输入入住人数n"); scanf("%d",&roomj.personal.count); zj=1; /标记使用的房间为1 save; void modify_infor( ) /修改函数 int r,m; do printf("ttt *菜*nnn"); printf("ttttt 1:修改客户信息nnn"); printf("ttttt 2:修改客房信息nnn"); printf("ttttt 3:menunnn"); printf("ttttt4:退出nnn"); printf("ttt *nnn"); printf("ttt 请选择输入选项1234:n"); scanf("%d",&m); if(m<1|m>3) r=1;getchar; 单 else r=0; while(r=1); switch(m) case 1:modify_one;break; case 2:modify_hotel;break; case 3:menu; case 4:exit(0); save; void modify_one /修改个人信息函数 int q; char a20; printf("n请选择您要修改的个人选项n"); printf("1:姓名 2:性别(其中:1表示男,2表示女!) 3:年龄 4:身份证号 5:入住年份 6:入住月份 7入住日 8:入住人数n"); printf("t请选择输入选项12345678:nbb"); scanf("%d",&q); switch(q) int t,p; char k; case 1:printf("请输入新名字n"); for(t=0;t<20;t+)scanf("%s",&at); strcpy(roomj.personal.name,a);break; case 2:printf("请选择新性别(其中:1表示男,2表示女!)n"); scanf("%d",&k);roomj.personal.sex=k;break; case 3:printf("请输入新年龄n"); scanf("%d",&p);roomj.personal.age=p;break; case 4:printf("请输入新身份证号n"); scanf("%d",&p);roomj.personal.ID_card20=p;break; case 5:printf("请输入新年份n"); scanf("%d",&p);roomj.personal.start.year=p;break; case 6:printf("请输入新月份n"); scanf("%d",&p);roomj.personal.start.month=p;break; case 7:printf("请输入新日子n"); scanf("%d",&p);roomj.personal.start.day=p;break; case 8:printf("请输入新入住人数n"); scanf("%d",&p);roomj.personal.count=p;break; menu; void modify_hotel /修改客房信息函数 int l; printf("ntttt请选择您要修改的客房信息nn"); printf("tttt1:房间号nn tttt2:客房单价nn tttt3:入住人数nn tttt4:返回nn"); printf("ttt请选择输入选项1234:nbb"); scanf("%d",&l); switch(l) case 1:printf("请输入旧房号n"); scanf("%d",&j); printf("请输入新房号n"); scanf("%d",&s); strcpy(rooms.personal.name,roomj.personal.name); rooms.personal.sex=roomj.personal.sex; roomj.personal.sex=0; rooms.personal.age=roomj.personal.age; roomj.personal.age=0; strcpy(rooms.personal.ID_card,roomj.personal.ID_card); rooms.personal.start.year=roomj.personal.start.year; roomj.personal.start.year=0; rooms.personal.start.month=roomj.personal.start.month; roomj.personal.start.month=0; rooms.personal.start.day=roomj.personal.start.day; roomj.personal.start.day=0; rooms.room_ID=s; rooms.price=roomj.price; rooms.personal.count=roomj.personal.count; zs=1; zj=0; break; case 2:printf("请输入房号n"); scanf("%d",&s); printf("请输入新单价n"); scanf("%d",&s);rooms.price=s;break; case 3:printf("请输入房号n"); scanf("%d",&s); printf("请输入新入住人数n"); scanf("%d",&s); rooms.personal.count=s;break; case 4:break; save; menu; void disp_money( ) /显示入住费用函数 int i,sum; printf("请输入房间号;n"); scanf("%d",&roomj.room_ID); printf("n入住年份:%d",roomj.personal.start.year); printf("月:%d",roomj.personal.start.month); printf("日:%d",roomj.personal.start.day); printf("房间单价为:"); printf("%d",roomj.price); printf("n请输入退房时间:n"); printf("请输入年份:"); scanf("%d",&final.year); printf("请输入月份:"); scanf("%d",&final.month); printf("请输入日:"); scanf("%d",&final.day); printf("n请输入住房天数:n"); scanf("%d",&i); sum=roomj.price*i; printf("总费用sum=%dn",sum); save; menu; void save /保存函数 FILE *fp; int i; if(fp=fopen("客房管理.txt","w+")=NULL) /打开输出文件"客房管理.txt" printf("cannot open filen"); exit(0); for(i=0;i<M;i+) if(fwrite(&roomi), sizeof(roomM),1,fp)!=1) printf("file write errorn"); fflush(fp); fclose(fp); /关闭文件