c语言设计宾馆管理系统怎样实现退房系统

[复制链接]
查看11 | 回复1 | 2011-9-2 11:30:09 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-9-2 11:30:09 | 显示全部楼层
#includestdio.h#includestdlib.h#includestring.h//***********************************************************************************voidinitial_room();//初始化80个房间信息voidwelcome();//验证用户登陆,登陆成功显示欢迎信息voidenter();voidbook_room();voidcheck_in();voidcheck_out();voidinquire();inti=0;//***********************************************************************************structRoom{intnumber;intdank;intprice;intstate;};structCustomer{charname[10],ID[19];introom_number;intprepaid;intchange;intday;};voidset_name(structCustomer*cs,char*n){strcpy(cs-name,n);}voidset_ID(structCustomer*cs,char*p){strcpy(cs-ID,p);}voidset_room_number(structCustomer*cs,intn){cs-room_number=n;}voidset_day(structCustomer*cs,intd){cs-day=d;}voidset_prepaid(structCustomer*cs,intp){cs-prepaid=p;}char*get_name(structCustomer*cs){returncs-name;}char*get_ID(structCustomer*cs){returncs-ID;}intget_room_number(structCustomer*cs){returncs-room_number;}intget_day(structCustomer*cs){returncs-day;}intget_prepaid(structCustomer*cs){returncs-prepaid;}//***********************************************************************************structRoomroom[80];structCustomer*customer[80];voidCCustomer(structCustomer*cs){printf(\"请您输入顾客的姓名\\n\");scanf(\"%s\",name);printf(\"请您输入顾客的身份证号码\\n\");scanf(\"%s\",ID);cs-prepaid=cs-change=cs-day=0;}voidFCustomer(){printf(\"该顾客退房成功!\");}intmain(void)//程序入口从这里开始运行{charchoice=\'1\';initial_room();//初始化80个房间的信息,分四个等级welcome();//验证用户登陆,登陆成功显示欢迎信息while(choice==\'1\'){enter();//根据用户的选择执行不同的功能printf(\"\\n\");printf(\"继续使用本系统请按\\\"1\\\",退出请按\\\"2\\\"!\");fflush(stdin);scanf(\"%c\",printf(\"\\n\");}return0;}//系统登陆界面***********************************************************************voidwelcome()//验证用户登陆,登陆成功显示欢迎信息{charname[4],code[7];printf(\"请输入用户名和密码(以空格隔开):\\n\");scanf(\"%s%s\",while((strcmp(name,\"000\")!=0)||(strcmp(code,\"666666\")!=0)){printf(\"用户名或密码输入有误,请重新输入!\\n\");scanf(\"%s%s\",}printf(\"\\n\");printf(\"\\n\");printf(\"▲***************************▲\\n\");printf(\"△欢迎使用宾馆客房管理系统!△\\n\");printf(\"▲***************************▲\\n\");printf(\"\\n\");}//系统入口***************************************************************************voidenter(){intkind_of_service;printf(\"请选择服务类别:订房、入注退房还是查询?\\n\");printf(\"1-定房2-入住3-退房4-查询:\");scanf(\"%d\",if((kind_of_service4)||(kind_of_service1)){printf(\"您的输入有误,请重试!\\n\");scanf(\"%d\",}else{switch(kind_of_service){case1:book_room();break;case2:check_in();break;case3:check_out();break;case4:inquire();break;}}}//订房实现***************************************************************************voidbook_room(){introom_standard,day;customer=(structCustomer*)malloc(sizeof(structCustomer));CCustomer(customer);printf(\"请您选择预定房间的标准:\\n\");printf(\"1.单人间/天150元\\n2.双人间/天200元\\n3.标准间/天300元\\n4.总统套房/天600元\\n\");scanf(\"%d\",printf(\"请输入预定天数\\n\");scanf(\"%d\",set_day(customer,day);switch(room_standard){intn;case1:printf(\"住房费用总共为:%d元\\n\",day*150);//计算住房费用for(n=0;n20;n)//从第一个级别的房间中查找一个空闲的房间{if(room[n].state==0)//state=0表示该住房没有被预定的{printf(\"预定成功★房间号码为:%d\\n\",room[n].number);room[n].state=1;set_room_number(customer,room[n].number);break;}}break;case2:printf(\"住房费用总共为:%d元\\n\",day*200);for(n=20;n40;n){if(room[n].state==0){printf(\"预定成功★房间号码为:%d\\n\",room[n].number);room[n].state=1;set_room_number(customer,room[n].number);break;}}break;case3:printf(\"住房费用总共为:%d元\\n\",day*300);for(n=40;n60;n){if(room[n].state==0){printf(\"预定成功★房间号码为:%d\\n\",room[n].number);room[n].state=1;set_room_number(customer,room[n].number);break;}}break;case4:printf(\"住房费用总共为:%d元\\n\",day*600);for(n=60;n80;n){if(room[n].state==0){printf(\"预定成功★房间号码为:%d\\n\",room[n].number);room[n].state=1;set_room_number(customer,room[n].number);break;}}break;}i;//住房的顾客数加1}//入住登记***************************************************************************voidcheck_in(){charname1[10],id1[19];intding_or_no,prepaid;intj;printf(\"该顾客订房了吗?(1-订了2-没订)\");scanf(\"%d\",if(ding_or_no==1){printf(\"请输入顾客的姓名:\\n\");scanf(\"%s\",printf(\"请输入顾客的身份证号码:\\n\");scanf(\"%s\",for(j=0;ji;j){if((strcmp(get_name(customer[j]),name1)==0)//取得定房的房间号printf(\"顾客%s今天入住本宾馆!房间号码为:%d\\n\",name1,num);switch(num/100){case6:prepaid=get_day(customer[j])*150;set_prepaid(customer[j],prepaid);printf(\"请收房费%d元整!\\n\",prepaid);//开始收费room[num0-1].state=2;//修改房间状态为入住状态break;case7:prepaid=get_day(customer[j])*200;set_prepaid(customer[j],prepaid);printf(\"请收房费%d元整!\\n\",prepaid);room[19num0].state=2;break;case8:prepaid=get_day(customer[j])*300;set_prepaid(customer[j],prepaid);printf(\"请收房费%d元整!\\n\",prepaid);room[39num0].state=2;break;case9:prepaid=get_day(customer[j])*600;set_prepaid(customer[j],prepaid);printf(\"请收房费%d元整!\\n\",prepaid);room[59num0].state=2;break;}break;}}}else{introom_standard,day;customer=(structCustomer*)malloc(sizeof(structCustomer));CCustomer(customer);printf(\"请您选择预定房间的标准:\\n\");printf(\"1.单人间/天150元\\n2.双人间/天200元\\n3.标准间/天300元\\n4.总统套房/天600元\\n\");scanf(\"%d\",printf(\"请输入住宿天数\\n\");scanf(\"%d\",set_day(customer,day);switch(room_standard){intn;case1:prepaid=day*150;set_prepaid(customer,prepaid);printf(\"请收房费%d元整!\\n\",prepaid);for(n=0;n20;n){if(room[n].state==0){printf(\"入住房间号码为:%d\\n\",room[n].number);room[n].state=2;set_room_number(customer,room[n].number);break;}}break;case2:prepaid=day*200;set_prepaid(customer,prepaid);printf(\"请收房费%d元整!\\n\",prepaid);for(n=20;n40;n){if(room[n].state==0){printf(\"入住房间号码为:%d\\n\",room[n].number);room[n].state=2;set_room_number(customer,room[n].number);break;}}break;case3:prepaid=day*300;set_prepaid(customer,prepaid);printf(\"请收房费%d元整!\\n\",prepaid);for(n=40;n60;n){if(room[n].state==0){printf(\"入住房间号码为:%d\\n\",room[n].number);room[n].state=2;set_room_number(customer,room[n].number);break;}}break;case4:prepaid=day*600;set_prepaid(customer,prepaid);printf(\"请收房费%d元整!\\n\",prepaid);for(n=60;n80;n){if(room[n].state==0){printf(\"入住房间号码为:%d\\n\",room[n].number);room[n].state=2;set_room_number(customer,room[n].number);break;}}break;}i;}}//退房结算***************************************************************************voidcheck_out(){charname2[10],id2[19];intstandard,j,room_number,day1,day2,day;printf(\"请输入要退房的顾客姓名和身份证号码:\\n\");scanf(\"%s%s\",printf(\"请输入该顾客实住天数:\\n\");scanf(\"%d\",for(j=0;ji;j){if((strcmp(get_name(customer[j]),name2)==0)room_number=get_room_number(customer[j]);standard=room_number/100;day1=get_day(customer[j]);day=day1-day2;switch(standard){case6:printf(\"顾客的房间号是%d:为单人间,每天150元\\n\",room_number);printf(\"该顾客预付了房费%d元,实际消费%d元整!\\n\",get_prepaid(customer[j]),day2*150);printf(\"\\n\");if(day0)printf(\"请退给该顾客%d元整!\\n\",day*150);if(day0)printf(\"请补收该顾客住房费%d元整!\\n\",-day*150);break;case7:printf(\"顾客的房间号是%d:为单人间,每天200元\\n\",room_number);printf(\"该顾客预付了房费%d元,实际消费%d元整!\\n\",get_prepaid(customer[j]),day2*200);printf(\"\\n\");if(day0)printf(\"请退给该顾客%d元整!\\n\",day*200);if(day0)printf(\"请补收该顾客住房费%d元整!\\n\",-day*200);break;case8:printf(\"顾客的房间号是%d:为单人间,每天300元\\n\",room_number);printf(\"该顾客预付了房费%d元,实际消费%d元整!\\n\",get_prepaid(customer[j]),day2*300);printf(\"\\n\");if(day0)printf(\"请退给该顾客%d元整!\\n\",day*300);if(day0)printf(\"请补收该顾客住房费%d元整!\\n\",-day*300);break;case9:printf(\"顾客的房间号是%d:为单人间,每天600元\\n\",room_number);printf(\"该顾客预付了房费%d元,实际消费%d元整!\\n\",get_prepaid(customer[j]),day2*600);printf(\"\\n\");if(day0)printf(\"请退给该顾客%d元整!\\n\",day*600);if(day0)printf(\"请补收该顾客住房费%d元整!\\n\",-day*600);break;}printf(\"\\n\");printf(\"退房核算清楚,请按1:\");fflush(stdin);scanf(\"%c\",if(account==\'1\'){intk;for(k=0;k80;k){if(room[k].number==get_room_number(customer[j]))room[k].state=0;}i--;for(;ji;j){customer[j]=customer[j1];}free(customer);FCustomer();}}}}//信息查询***************************************************************************voidinquire(){charinquire_choice;printf(\"房间信息查询请按1,顾客信息查询请按2:\");fflush(stdin);scanf(\"%c\",if(inquire_choice==\'1\'){intj,k=0;printf(\"\\n\");printf(\"下列房间还没人预订,也没人入住:\\n\");for(j=0;j80;j){if(room[j].state==0){if(k==0)printf(\"\\n\");printf(\"%d\\t\",room[j].number);k;}}printf(\"\\n\");printf(\"\\n\");k=0;printf(\"下列房间已预订:\\n\");for(j=0;j80;j){if(room[j].state==1){if(k==0)printf(\"\\n\");printf(\"%d\\t\",room[j].number);k;}}k=0;printf(\"\\n\");printf(\"\\n\");printf(\"下列房间有人入住:\\n\");for(j=0;j80;j){if(room[j].state==2){if(k==0)printf(\"\\n\");printf(\"%d\\t\",room[j].number);k;}}printf(\"\\n\");printf(\"\\n\");}elseif(inquire_choice==\'2\'){charinquire_choice;intj;printf(\"按姓名查询请按1,按身份证查询请按2:\\n\");fflush(stdin);scanf(\"%c\",if(inquire_choice==\'1\'){charname3[10];printf(\"请输入顾客的姓名:\\n\");scanf(\"%s\",for(j=0;ji;j){if(strcmp(get_name(customer[j]),name3)==0){printf(\"%s的住房信息如下:\\n\",name3);printf(\"\\t房间号为:%d\\n\",get_room_number(customer[j]));printf(\"\\t预付房费为:%d\\n\",get_prepaid(customer[j]));}}}if(inquire_choice==\'2\'){charid3[10];intj;printf(\"请输入顾客的身份证:\\n\");scanf(\"%s\",for(j=0;ji;j){if(strcmp(get_ID(customer[j]),id3)==0){printf(\"%s的住房信息如下:\\n\",get_name(customer[j]));printf(\"\\t房间号为:%d\\n\",get_room_number(customer[j]));printf(\"\\t预付房费为:%d\\n\",get_prepaid(customer[j]));}}}}}//房间信息初始化*********************************************************************voidinitial_room()//对80个房间进行初始化,分4个等级{intj,k=601;for(j=0;j20;j){room[j].number=k;room[j].dank=1;room[j].price=150;room[j].state=0;}k=701;for(j=20;j40;j){room[j].number=k;room[j].dank=2;room[j].price=200;room[j].state=0;}k=801;for(j=40;j60;j){room[j].number=k;room[j].dank=3;room[j].price=300;room[j].state=0;}k=901;for(j=60;j80;j){room[j].number=k;room[j].dank=4;room[j].price=600;room[j].state=0;}}另外,团IDC网上有许多产品团购,便宜有口碑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行