您好,登錄后才能下訂單哦!
這篇文章主要講解了“C語言如何實(shí)現(xiàn)酒店管理系統(tǒng)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C語言如何實(shí)現(xiàn)酒店管理系統(tǒng)”吧!
代碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> int dan=988,shuang=1299,tao=2998;//初始房間價(jià)格 int sdan=1000,sshuang=600,stao=200;//初始房間數(shù)量 int Day;//天數(shù) int num=0;//客戶數(shù)量 long N=10000000;//現(xiàn)金流 struct DINGDAN//訂單結(jié)構(gòu)體 { long hao;//訂單號(hào) struct YHXX *p;//客戶信息結(jié)構(gòu)體地址 }; struct DINGDAN Dingdan[2000]; struct YHXX//客戶信息結(jié)構(gòu)體 { char ID[18]; char name[10]; char sex;//性別 int rooms;//房間數(shù) char rooml;//房間類型 int rday[3];//入住日期 int sday;//住宿時(shí)間 long dingdanhao;//訂單號(hào) }; struct YHXX yhxx[2000]; void zhucaidan()//主菜單 { printf("\n\n"); printf("\t\t******大壯酒店管理系統(tǒng)******\n"); printf("\t\t* 1.:用戶信息查詢 *\n"); printf("\t\t* 2.:客房經(jīng)營(yíng)管理 *\n"); printf("\t\t* 3.:客房管理 *\n"); printf("\t\t****************************\n\n"); } void caidan1()//用戶信息查詢菜單 { printf("\n"); printf("\t\t--------用戶信息查詢--------\n"); printf("\t\t* 1.:按訂單號(hào)查詢 *\n"); printf("\t\t* 2.:按姓名查詢 *\n"); printf("\t\t* 3.:按身份證號(hào)查詢 *\n"); printf("\t\t* 4.:用戶信息目錄 *\n"); printf("\t\t----------------------------\n\n"); } void caidan2()//客房經(jīng)營(yíng)管理菜單 { printf("\n"); printf("\t\t--------客房經(jīng)營(yíng)管理--------\n"); printf("\t\t* 1.:預(yù)定客房或登記入住*\n"); printf("\t\t* 2.:退房操作 *\n"); printf("\t\t* 3.:客房狀態(tài) *\n"); printf("\t\t----------------------------\n\n"); } void caidan3()//房間管理菜單 { printf("\n"); printf("\t\t----------房間管理----------\n"); printf("\t\t* 1.:更改房?jī)r(jià) *\n"); printf("\t\t* 2.:增加客房 *\n"); printf("\t\t* 3.:減少客房 *\n"); printf("\t\t----------------------------\n\n"); } void save() { FILE *fp; //int i; if((fp=fopen("kehu","wb"))==NULL)//打開輸出文件 { printf("\t\tcannot open file\n"); return; } fseek(fp,0L,2); if(fwrite(&yhxx[num],sizeof(struct YHXX),1,fp)!=1) printf("\t\tfile write error\n"); fclose(fp);//關(guān)閉wenj } void print() { int i,t=0; FILE *fp; if((fp=fopen("kehu.dat","wb"))==NULL)//打開輸入文件 { printf("cannot open file\n"); exit(0); } rewind(fp);//使文件位置標(biāo)記返回文件開頭 for(i=0;i<num;i++) { fread(&yhxx[i],sizeof(struct YHXX),1,fp); printf("\t\t姓名:%s\t",yhxx[i].name); if(yhxx[i].sex=='Y') printf("性別: 男\(zhòng)n"); else printf("性別 女\n"); printf("\t\t身份證號(hào):%s\n",yhxx[i].ID); printf("\t\t入住日期: %d %d %d",yhxx[i].rday[0],yhxx[i].rday[1],yhxx[i].rday[2]); printf(" 入住時(shí)間: %d\n",yhxx[i].sday); t=1; } if(t==0) printf("\t\t 無用戶信息!\n"); fclose(fp);//關(guān)閉文件 } void H()//更改房?jī)r(jià) { int x; char ch; Hto: printf("\t\t豪華單間:D 豪華雙人:S 貴賓套房:T\n"); printf("\t\t請(qǐng)輸入房間類型和更改后價(jià)格: "); scanf("%c %d",&ch,&x); switch(ch) { case 'D':dan=x;break; case 'S':shuang=x;break; case 'T':tao=x;break; default : goto Hto; } printf("\t\t更改后分別為:\n\t\t%d %d %d\n\t\t",dan,shuang,tao); } void I()//增加客房 { int x; char ch; Ito: printf("\t\t豪華單間:D 豪華雙人:S 貴賓套房:T\n"); printf("\t\t請(qǐng)輸入房間類型和增加數(shù)量: "); scanf("%c %d",&ch,&x); switch(ch) { case 'D':sdan+=x;break; case 'S':sshuang+=x;break; case 'T':stao+=x;break; default : goto Ito; } printf("\t\t更改后分別為:%d %d %d\n\t\t",sdan,sshuang,stao); } void J()//減少客房 { int x; //int sdan=1000,sshuang=600,stao=200; char ch; Jto: printf("\t\t豪華單間:D 豪華雙人:S 貴賓套房:T\n"); printf("\t\t請(qǐng)輸入房間類型和減少數(shù)量: "); scanf("%c %d",&ch,&x); switch(ch) { case 'D':sdan-=x;break; case 'S':sshuang-=x;break; case 'T':stao-=x;break; default : goto Jto; } printf("\t\t更改后分別為:%d %d %d\n\t\t",sdan,sshuang,stao); } void DE()//預(yù)定客房或登記入住 { char lroom; int sroom; int jiner=0; printf("\t\t訂房功能\n"); to: printf("\t\t豪華單間:D 豪華雙人:S 貴賓套房:T\n"); printf("\t\t請(qǐng)輸入房間類型:"); getchar(); scanf("%c",&lroom); printf("\t\t數(shù)量:"); scanf("%d",&sroom); switch(lroom) { case 'D':jiner=sroom*dan;sdan-=sroom;break; case 'S':jiner=sroom*shuang;sshuang-=sroom;break; case 'T':jiner=sroom*tao;stao-=sroom;break; default:goto to; } if((lroom=='D'&&sroom<=sdan)||(lroom=='S'&&sroom<=sshuang)||(lroom=='T'&&sroom<=stao)) { printf("\t\t請(qǐng)輸入您的信息: \n"); printf("\t\t姓名: "); scanf("%s",yhxx[num].name); getchar(); printf("\t\t性別: (男:Y 女:X) :"); scanf("%c",&yhxx[num].sex); printf("\t\t身份證ID: "); scanf("%s",yhxx[num].ID); printf("\t\t入住日期: "); scanf("%d %d %d",&yhxx[num].rday[0],&yhxx[num].rday[1],&yhxx[num].rday[2]); printf("\t\t入住時(shí)間: "); scanf("%d",&yhxx[num].sday); printf("\t\t訂單總額:%d\n",jiner*yhxx[num].sday); N+=jiner;jiner=0; yhxx[num].rooms=sroom; yhxx[num].rooml=lroom; yhxx[num].dingdanhao=100000+num;//生成訂單號(hào); save(); Dingdan[num].hao=yhxx[num].dingdanhao;//插入訂單號(hào)到訂單號(hào)結(jié)構(gòu)體; Dingdan[num].p=&yhxx[num];//將客戶信息結(jié)構(gòu)體地址插入到訂單結(jié)構(gòu)體中; printf("\t\t訂單號(hào):%ld\n",yhxx[num].dingdanhao); num++; printf("\t\t訂購成功!\n"); } } void F()//退房操作 { int i,j,t=0; char name1[10],ID1[18]; printf("\t\t退房操作:\n"); printf("\t\t請(qǐng)輸入姓名: "); scanf("%s",name1); printf("\n\t\t請(qǐng)輸入身份證號(hào):"); scanf("%s",ID1); for(i=0;i<num;i++) { if(strcmp(name1,yhxx[i].name)==0&&strcmp(ID1,yhxx[i].ID)==0) { switch(yhxx[i].rooml) { case 'D':N-=yhxx[i].rooms*dan; case 'S':N-=yhxx[i].rooms*shuang; case 'T':N-=yhxx[i].rooms*tao; } for(j=i-1;i<num;j++,i++) { strcpy(yhxx[j].ID,yhxx[i].ID); strcpy(yhxx[j].name,yhxx[i].name); yhxx[j].sex=yhxx[i].sex; yhxx[j].rooms=yhxx[i].rooms; yhxx[j].rooml=yhxx[i].rooml; yhxx[j].sday=yhxx[i].sday; yhxx[j].rday[0]=yhxx[i].rday[0]; yhxx[j].rday[1]=yhxx[i].rday[1]; yhxx[j].rday[1]=yhxx[i].rday[1]; } num--; t=1; break; } else printf("\t\t查詢到無此用戶!"); } if(t==1)printf("\t\t退房成功!\n"); } void G()//客房狀態(tài) { printf("\t\t空余客房:豪華單間:%d 豪華雙間:%d 豪華套房:%d\n",1000-sdan,600-sshuang,200-stao); printf("\t\t\t現(xiàn)金流:%ld\n",N); } void A()//按訂單號(hào)查詢 { int i,t=0; long h; struct YHXX *p0; printf("\t\t請(qǐng)輸入訂單號(hào):"); scanf("%ld",&h); for(i=0;i<num;i++) { if(h==Dingdan[i].hao) { p0=Dingdan[i].p; printf("\t\t姓名:%s\t",p0->name); if(p0->sex=='Y') printf("性別: 男\(zhòng)n"); else printf("性別 女\n"); printf("\t\t身份證號(hào):%s ",p0->ID); switch(yhxx[i].rooml) { case 'D':printf(" 豪華單間: %d\n",p0->rooms);break; case 'S':printf(" 豪華雙間: %d\n",p0->rooms);break; case 'T':printf(" 豪華套房: %d\n",p0->rooms);break; } printf("\t\t入住日期: %d %d %d",p0->rday[0],p0->rday[1],p0->rday[2]); printf(" 入住時(shí)間: %d\n",p0->sday); t=1; break; } } if(t==0) printf("\t\t客戶信息不存在!\n"); } void B()//按姓名查詢 { int i,t=0; FILE *fp; char names[10]; printf("\t\t請(qǐng)輸入姓名:"); scanf("%s",names); if((fp=fopen("kehu.dat","wb"))==NULL)//打開文件 { printf("cannot open file\n"); exit(0); } rewind(fp);//使文件位置標(biāo)記返回文件開頭 for(i=0;i<num;i++) { fread(&yhxx[i],sizeof(struct YHXX),1,fp); if(strcmp(names,yhxx[i].name)==0) { printf("\t\t姓名:%s\t",yhxx[i].name); if(yhxx[i].sex=='Y') printf("性別: 男\(zhòng)n"); else printf("性別 女\n"); printf("\t\t身份證號(hào):%s",yhxx[i].ID); switch(yhxx[i].rooml) { case 'D':printf(" 豪華單間: %d\n",yhxx[i].rooms);break; case 'S':printf(" 豪華雙間: %d\n",yhxx[i].rooms);break; case 'T':printf(" 豪華套房: %d\n",yhxx[i].rooms);break; } printf("\t\t入住日期: %d %d %d",yhxx[i].rday[0],yhxx[i].rday[1],yhxx[i].rday[2]); printf(" 入住時(shí)間: %d\n",yhxx[i].sday); t=1; break; } } if(t==0) printf("\t\t客戶信息不存在!\n"); fclose(fp);//關(guān)閉文件 } void C()//按身份證號(hào)查詢 { int i,t=0; FILE *fp; char ids[10]; printf("\t\t請(qǐng)輸入身份證號(hào):"); scanf("%s",ids); if((fp=fopen("kehu.dat","wb"))==NULL)//打開文件 { printf("cannot open file\n"); exit(0); } rewind(fp);//使文件位置標(biāo)記返回文件開頭 for(i=0;i<num;i++) { fread(&yhxx[i],sizeof(struct YHXX),1,fp); if(strcmp(ids,yhxx[i].ID)==0) { printf("\t\t姓名:%s\t",yhxx[i].name); if(yhxx[i].sex=='Y') printf("性別: 男\(zhòng)n"); else printf("性別 女\n"); printf("\t\t身份證號(hào):%s",yhxx[i].ID); switch(yhxx[i].rooml) { case 'D':printf(" 豪華單間: %d\n",yhxx[i].rooms);break; case 'S':printf(" 豪華雙間: %d\n",yhxx[i].rooms);break; case 'T':printf(" 豪華套房: %d\n",yhxx[i].rooms);break; } printf("\t\t入住日期: %d %d %d",yhxx[i].rday[0],yhxx[i].rday[1],yhxx[i].rday[2]); printf(" 入住時(shí)間: %d\n",yhxx[i].sday); t=1; break; } } if(t==0) printf("\t\t客戶信息不存在!\n"); fclose(fp);//關(guān)閉文件 } void zhukongzhi()//主控制函數(shù) { int x1,x2; rrr: zhucaidan();//首頁菜單 printf("\t\t請(qǐng)輸入選項(xiàng):"); scanf("%d",&x1); if(x1==1)//用戶信息查詢模塊 { qqq: caidan1();//用戶信息查詢菜單 printf("\t\t請(qǐng)輸入選項(xiàng):"); scanf("%d",&x2); switch(x2) { case 1:A();break;//按訂單號(hào)查詢 case 2:B();break;//按姓名查詢 case 3:C();break;//按身份證號(hào)查詢 case 4:print();break;//用戶目錄瀏覽 default: goto qqq;//重新輸入 } } else if(x1==2)//客房經(jīng)營(yíng)管理模塊 { www: caidan2();//客房經(jīng)營(yíng)管理菜單 printf("\t\t請(qǐng)輸入選項(xiàng):"); scanf("%d",&x2); switch(x2) { case 1:DE();break;//預(yù)定客房或登記入住 case 3:F();break;//退房操作 case 4:G();break;//客房狀態(tài) default: goto www;//重新輸入 } } else if(x1==3)//房間管理模塊 { eee: caidan3();//客房管理菜單 printf("\t\t請(qǐng)輸入選項(xiàng):"); scanf("%d",&x2); switch(x2) { case 1:H();break;//更改房?jī)r(jià) case 2:I();break;//增加客房 case 3:J();break;//減少客房 default: goto eee;//重新輸入 } } else goto rrr;//返回主菜單重新輸入 } int main() { int x=0; do { zhukongzhi();//進(jìn)入主控制函數(shù); printf("\t\t--------是否需要繼續(xù)?--------\n"); printf("\t\t----回復(fù): 1 (繼續(xù)): 0 (結(jié)束)----\n\t\t請(qǐng)選擇:"); scanf("%d",&x); }while(x); return 0; }
感謝各位的閱讀,以上就是“C語言如何實(shí)現(xiàn)酒店管理系統(tǒng)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C語言如何實(shí)現(xiàn)酒店管理系統(tǒng)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。