C语言课程设计酒店房间登记及计费管理系统源代码.doc
- 格式:doc
- 大小:484.54 KB
- 文档页数:18
. 酒店房间登记与计费管理系统源代码 #define M 80 #include #include #include
/* 函数声明 */ void check_in(); /* 登记入住函数 */
void chamber(); /* 入住情况函数 */ void price(); /* 当前费用函数 */ void fee(); /* 结账退房函数 */ void infor(); /* 信息查询函数 */
void save(int); /* 保存信息函数 */ void read(int); /* 读取信息函数 */
void choice(); /* 功能选择函数 */
int judge_year(int); /* 判断闰年函数 */
void information(); /* 输出全部房间信息 */
/* 结构体 */ struct time {int year; int mon; int date; int hour; };
struct room /* 定义各房间信息的结构体 */
{char name[40]; char ID[18]; int flag; /* 0- 无人入住, 1-按小时计费, 2- 按天计费 */
long int deposit; time t[2]; /* 0- 入住时间, 1-当前时间 */
}room[M]; char c1[40]={0}; char c2[18]={0};
/* 主函数(主界面) */
void main()
Word 专业资料 . {system("cls"); /* 清屏 */ system("color 4E"); int n; printf("********************************************************* ***********************"); printf("** **"); printf("**\t\t ---------- 欢 迎 光 临 万 豪 酒 店 ---------- **"); printf("** **"); printf("********************************************************* ***********************\n\n"); printf("\t\t\t [ 1. 登记入住 ]\n\n"); printf("\t\t\t [ 2. 入住情况 ]\n\n"); printf("\t\t\t [ 3. 当前费用 ]\n\n"); printf("\t\t\t [ 4. 结账退房 ]\n\n"); printf("\t\t\t [ 5. 信息查询 ]\n\n"); printf("\t\t\t [ 6. 全部信息 ]\n\n"); printf("\t\t\t [ 7. 退出系统 ]\n\n"); printf(" 请输入您需要的服务的代码: ");
scanf("%d",&n); while(n<1||n>7) {printf("\n\n 代码输入有误,请您重新输入: ");
scanf("%d",&n); } switch(n) /* 根据输入数字选择功能 */
{case 1:check_in();break; /* 调用登记入住函数 */
case 2:chamber();break; /* 调用房间情况函数 */
case 3:price();break; /* 调用当前费用函数 */
case 4:fee();break; /* 调用结账退房函数 */
case 5:infor();break; /* 调用信息查询函数 */
case 6:information();break; /* 调用全部信息函数 */
case 7:exit(0); /* 调用退出系统函数 */
} }
/* 查看房间使用情况函数 */
Word 专业资料 . void chamber() {system("cls"); /* 清屏 */ system("color 4E"); printf("\n********************************** 房 间 使 用 情 况 **********************************\n"); int count=0; int i; int j; int k; int m; for(i=1;i<=80;i++) /* 统计未入住房间总数 */
{read(i); if(room[i-1].flag==0) count++;} printf(" 当前未使用房间数: %d\n\n\n",count); chaxun: printf(" 请输入你要查询的房间号( 1-40: 单人间, 41-80: 双人间): ");
/* 输入房间号查询房间入住情况 */
scanf("%d",&m); while(m<1||m>80) {printf("\n\n 房间号输入有误,请您重新输入: "); scanf("%d",&m); } read(m); while(room[m-1].flag!=0) {printf("\n\n 对不起,该房间已有客人入住,请输入其他房间号: "); scanf("%d",&m);
read(m);} printf("\n\n 该房间没有客人入住 ,您要入住该房间吗?( 1-是, 2- 否): "); scanf("%d",&j); while(j<1||j>2)
{printf("\n\n 您的选择输入有误,请您重新输入: "); scanf("%d",&j); } if(j==1) check_in(); else {printf("\n\n 您需要继续查询吗?( 1-是, 2- 否): ");
Word 专业资料 . scanf("%d",&k); while(k<1||k>2)
{printf("\n\n 您的选择输入有误,请您重新输入: "); scanf("%d",&k); } if(k==1) goto chaxun; else {printf("\n\n"); main();} } }
/* 登记入住函数 */
void check_in() {system("cls"); /* 清屏 */ system("color 4E");
int i; int j; int l; int k; int tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; printf("\n************************************ 登 记 入 住 ************************************\n"); printf(" 请输入您将入住的房间号: ");
scanf("%d",&i); while(i<1||i>80) {printf("\n\n 房间号输入有误,请您重新输入: ");
scanf("%d",&i); } read(i); while(room[i-1].flag!=0) /* 判断房间是否入住 */ {printf("\n\n 对不起,该房间已有客人入住,请输入其他房间号: ");
scanf("%d",&i); read(i);} printf("\n\n 请输入您的姓名: "); /* 客人信息登记 */
Word 专业资料 . scanf("%s",room[i-1].name); j=strlen(room[i-1].name); while(j<0) {printf("\n\n 您的姓名输入有误,请您重新输入: \n"); scanf("%s",room[i-1].name); j=strlen(room[i-1].name); } printf("\n\n 请输入您的证件: ");
scanf("%s",room[i-1].ID); j=strlen(room[i-1].ID); while(j!=18) {printf("\n\n 您的证件输入有误,请您重新输入: \n"); scanf("%s",room[i-1].ID); j=strlen(room[i-1].ID); } if(i<=40) {printf("\n\n 您选择的是单人间, 该房间 148 元/ 天, 8 元 / 小时。 \n\n\n");
/* 选择计费方式 */
printf(" 请选择您的计费方式( 1:按小时计费, 2: 按天计费): ");
} else {printf("\n\n 您选择的是双人间, 该房间 128 元/ 天, 7 元 / 小时。 \n\n\n"); printf(" 请选择您的计费方式( 1:按小时计费, 2: 按天计费): "); } scanf("%d",&room[i-1].flag); while(room[i-1].flag<0||room[i-1].flag>2) {printf("\n\n 您的计费方式输入有误,请您重新输入: ");
scanf("%d",&room[i-1].flag); } printf("\n\n 请按所示格式输入您的入住时间(年 -月-日 -时,时为 24 小时 制): "); scanf("%d-%d-%d-%d",&room[i-1].t[0].year,&room[i-1].t[0].mon,&roo m[i-1].t[0].date,&room[i-1].t[0].hour); l=judge_year(room[i-1].t[0].year); while((room[i-1].t[0].year<=0)||(room[i-1].t[0].mon<=0||room[i-1].t[ 0].mon>12)||(room[i-1].t[0].date<=0||room[i-1].t[0].date>tab[l][roo m[i-1].t[0].mon-1])||(room[i-1].t[0].hour<0||room[i-1].t[0].hour>=24) )
Word 专业资料