酒店管理系统课程设计(C语言程序设计大作业 酒店管理系统 课程设计「源程序+报告」)

题目:酒店管理系统一、需求分析:

对入住客人能够详细了解酒店情况并且做出入住房间类型的选择,能够清晰简明的告知客人酒店的房价以及入住人数。让客人更容易的入住酒店。

经过分析得出系统需要的功能有:登记入住、查询入住情况、查询当前费用、办理退房、退出系统

登记入住:1-2层钟点房、3-4层标准房 、5-6层商务房 、7-8层行政套房、9-10层豪华套房

查询入住情况:钟点房、标准房、商务房、行政套房、豪华套房

查询当前费用:房间号

办理退房:房间号

退出系统

二、系统功能图

三、源程序

列出部分主要功能代码实现

1、主函数

int main() { int step; BuildRoom(); do{ do{ system("cls"); printf("tt * 欢迎使用酒店管理系统 * n"); printf("tt_____________________________n"); printf("ntt||t1.登记入住t ||n"); printf("tt||t2.查询入住情况t ||n"); printf("tt||t3.查询当前费用t ||n"); printf("tt||t4.办理退房 t ||n"); printf("tt||t5.退出系统t ||n"); printf("tt_____________________________n"); scanf("%d",&step); if(step<1||step>5) { printf("n您的输入有误,请在1-10之间重新输入n"); system("pause"); } }while(step<1||step>5); switch(step){ case 1:CheckIn();break; case 2:ScanRoom();break; case 3:CalFee();break; case 4:CheckOut();break; case 5:exit(0); } printf("n请问你还需要执行其他的管理操作吗?n"); printf("1.是n"); printf("2.否n"); do{ scanf("%d",&step); if(step<1||step>2) { printf("n您的输入有误,请在1-2之间重新输入n"); } }while(step<1||step>2); }while(step==1); return 0; }2、新建房间

void BuildRoom() { FILE *fp=NULL; int i,j; if((fp=fopen("roommessage.dat","r"))==NULL) { fp=fopen("roommessage.dat","w"); for(i=0;i<N;i++) { for(j=0;j<N;j++) { ROOM[i* 10+j].number= j; ROOM[i* 10+j].floor= i; ROOM[i* 10+j].people= 0; ROOM[i* 10+j].time= 0; fwrite(&ROOM[i* 10+j],sizeof(struct room_message),1,fp); } } } else { for(i=0;i<N;i++) { for(j=0;j<N;j++) { fread(&ROOM[i* 10+j],sizeof(struct room_message),1,fp); } } } fclose(fp); }3、办理入住

void CheckIn(){ int a,b,c,i,j; FILE *fp=NULL; do{ printf("n请输入您想入住的房间层数(1~10)"); printf("n1~2为钟点房"); printf("n3~4为标准间"); printf("n5~6为商务间"); printf("n7~8为行政套房"); printf("n9~10为豪华套房n"); scanf("%d",&a); if(a<1||a>10){ printf("您的输入有误,请在1-10之间重新输入n"); } }while(a<1||a>10); PrintRoomFee(a); do{ printf("n请输入您想入住的房间号(1~10):"); scanf("%d",&b); if(b<1||b>10){ printf("您的输入有误,请在1-10之间重新输入n"); } }while(b<1||b>10); if((fp=fopen("roommessage.dat","rb"))!=NULL){ if(ROOM[(a-1)*10+(b-1)].people==0){ for(i=0;i<N;i++) { for(j=0;j<N;j++) { fread(&ROOM[i*10+j],sizeof(struct room_message),1,fp); } } fclose(fp); printf("n请输入计划入住的人数:"); scanf("%d",&c); ROOM[(a-1)*10+b-1].people=c; ROOM[(a-1)*10+b-1].time=time(NULL); fp=fopen("roommessage.dat","w"); for(a=0;a<N;a++){ for(b=0;b<N;b++){ fwrite(&ROOM[a* 10+b],sizeof(struct room_message),1,fp); } } } else{ printf("n抱歉,该房间已经有人入住n"); printf("请选择其他的房间入住n"); } } fclose(fp); }4、查询入住

void ScanRoom(){ int a,i,j; FILE *fp=NULL; void PrintRoomFee(int a); printf("n请选择您要查询的房间种类n"); printf("1.钟点房n"); printf("2.标准间n"); printf("3.商务间n"); printf("4.行政套房n"); printf("5.豪华套房n"); scanf("%d",&a); if((fp=fopen("roommessage.dat","r"))!=NULL){ for(i=0;i<N;i++) { for(j=0;j<N;j++) { fread(&ROOM[i*10+j],sizeof(struct room_message),1,fp); } } if(a == 1){ PrintRoomFee(a); for(i=0;i<=1;i++){ for(j=0;j<10;j++){ printf("n第%d层",ROOM[i*10+j].floor+1); printf("第%d号房",ROOM[i*10+j].number+1); if(ROOM[i*10+j].people){ printf("房间已入住,请重新选择"); } else{ printf("房间未入住,可以选择"); } } } } if(a == 2){ PrintRoomFee(a); for(i=2;i<=3;i++){ for(j=0;j<10;j++){ printf("n第%d层",ROOM[i*10+j].floor+1); printf("第%d号房",ROOM[i*10+j].number+1); if(ROOM[i*10+j].people){ printf("房间已入住,请重新选择"); } else{ printf("房间未入住,可以选择"); } } } } if(a == 3){ PrintRoomFee(a); for(i=4;i<=5;i++){ for(j=0;j<10;j++){ printf("n第%d层",ROOM[i*10+j].floor+1); printf("第%d号房",ROOM[i*10+j].number+1); if(ROOM[i*10+j].people){ printf("房间已入住,请重新选择"); } else{ printf("房间未入住,可以选择"); } } } } if(a == 4){ PrintRoomFee(a); for(i=6;i<=7;i++){ for(j=0;j<10;j++){ printf("n第%d层",ROOM[i*10+j].floor+1); printf("第%d号房",ROOM[i*10+j].number+1); if(ROOM[i*10+j].people){ printf("房间已入住,请重新选择"); } else{ printf("房间未入住,可以选择"); } } } } if(a == 5){ PrintRoomFee(a); for(i=8;i<=9;i++){ for(j=0;j<10;j++){ printf("n第%d层",ROOM[i*10+j].floor+1); printf("第%d号房",ROOM[i*10+j].number+1); if(ROOM[i*10+j].people){ printf("房间已入住,请重新选择"); } else{ printf("房间未入住,可以选择"); } } } } }5、退房办理

void CheckOut() { int roomnuber,choose,a,b,floor,room,fee; FILE *fp=NULL; do{ printf("n请输入您想退房的房间的房间号:"); scanf("%d",&roomnuber); floor=(roomnuber / 100) - 1; room=roomnuber%100; floor = (roomnuber/100)-1 ; room = (roomnuber%100)-1; if(floor>9||floor<0||room<0||room>9){ printf("您的输入有误,请重新在1-9之间输入n"); } }while(floor>9||floor<0||room<0||room>9); printf("您要退的房间号为%d,它是",roomnuber); if(floor==0||floor==1){ printf("钟点房n"); fee=HOURROOM; } if(floor==2||floor==3){ printf("标准间n"); fee=NORMALROOM; } if(floor==4||floor==5){ printf("商务间n"); fee=BIGROOM; } if(floor==6||floor==7){ printf("行政套房n"); fee=WORTHROOM; } if(floor==8||floor==9){ printf("豪华套房n"); fee=GREATROOM; } do{ printf("n您是否确定要退房。n"); printf("1.是n"); printf("2.不是n"); scanf("%d",&choose); if(choose!=1&&choose!=2){ printf("n您的输入有误,请在1-2之间重新输入n"); } }while(choose!=1&&choose!=2); if(choose==1){ Printpay(floor,room,fee,ROOM[floor*10+room].people); ROOM[floor*10+room].people=0; ROOM[floor*10+room].time=0; fp=fopen("roommessage.dat","w"); for(a=0;a<N;a++){ for(b=0;b<N;b++){ fwrite(&ROOM[a* 10+b],sizeof(struct room_message),1,fp); } } printf("n退房成功n"); } fclose(fp); system("pause"); } void PrintRoomFee(int a){ if(a==1||a==2){ printf("n钟点房的费用为每小时%d元n",HOURROOM); } if(a==3||a==4){ printf("n标准间的费用为每天%d元n",NORMALROOM); } if(a==5||a==6){ printf("n商务间的费用为每天%d元n",BIGROOM); } if(a==7||a==8){ printf("n行政套房的费用为每天%d元n",WORTHROOM); } if(a==9||a==10){ printf("n豪华套房的费用为每天%d元n",GREATROOM); } }四、系统测试

1、登记入住

2、查询入住

3、查询费用

4、办理退房

另外果果也在这里也为大家带来了C/C++的学习基础教程及相关资源

酒店管理与数字化运营的课本

资料领取方式:
  1. 关注本号
  2. 私信“111”即可获取领取方式哦

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友