您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)使用C語(yǔ)言怎么編寫一個(gè)酒店管理系統(tǒng),小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
代碼如下:
#include<bits/stdc++.h> #include<conio.h> #include <windows.h> #include<string.h> #include<time.h> #define NUM 1000 //控制房間個(gè)數(shù) int j; void LoginRoom();//登記房屋 void SearchRoom();//搜尋房屋 void ChangeRoom();//更換住房 void OutRoom();//退房 void save();//保存信息 void load();//載入信息 //struct Total struct Total { char Name[20]; int Sex; int Age; char IDcard[18]; int hour; int xx; int yy; int zz; }; struct room { int RoomID; char Tel[11]; long Price; int Sign; int feiyong; //struct Date Datesum; struct Total Totallist; }Room[NUM]; // 將房間個(gè)數(shù)寫入信息 void LoginRoom() //登記,注冊(cè)客房信息函數(shù) { int i,n,k; n=0; system("cls"); printf(" 用戶登記\n"); for(k=0;k<=1000;k++) { printf("請(qǐng)輸入客房號(hào):\n"); scanf("%d",&i); if(Room[i-1].Sign==1) { printf("對(duì)不起,該房間已入住,請(qǐng)重新輸入。\n"); Sleep(160); //延時(shí)160幀 system("cls");//清屏 return; //返回原函數(shù) } if(n==5) { printf("\n請(qǐng)查詢清楚客房入住信息后再來(lái)登記,謝謝"); Sleep(1500); //時(shí)間延時(shí)1.5秒 system("cls");//清屏 return ; } if(Room[i-1].Sign!=1) break; } printf("房間號(hào):%d\n",i); printf("客戶姓名:"); scanf("%s",(char *)&Room[i-1].Totallist.Name); printf("性別(1.男 2.女):\n"); scanf("%d",&Room[i-1].Totallist.Sex); if(Room[i-1].Totallist.Sex>2){ printf("信息錯(cuò)誤,請(qǐng)重新輸入"); LoginRoom(); } printf("年齡:\n"); scanf("%d",&Room[i-1].Totallist.Age); if(Room[i-1].Totallist.Age<18){ printf("未到國(guó)家法定開(kāi)房年齡,禁止開(kāi)房\n"); printf("請(qǐng)重新輸入"); LoginRoom(); } printf("身份證號(hào)碼:\n"); scanf("%s",&Room[i-1].Totallist.IDcard); //判斷身份證信息 if(strlen(Room[i-1].Totallist.IDcard)!=18){ printf("信息錯(cuò)誤"); LoginRoom(); } printf("聯(lián)系電話:"); scanf("%s",&Room[i-1].Tel); printf("入住時(shí)間:"); scanf("%d %d %d",&Room[i-1].Totallist.xx,&Room[i].Totallist.yy,&Room[i].Totallist.zz); printf("住房時(shí)長(zhǎng):"); scanf("%d",&Room[i-1].Totallist.hour); printf("請(qǐng)選擇套房(1.總統(tǒng)套房(300/小時(shí))\n2.雙人房(200/小時(shí))\n3.單人房(100/小時(shí))\n4.特價(jià)房(40/小時(shí)))\n"); scanf("%d",&Room[i-1].feiyong); ////// Room[i-1].RoomID=i; switch(Room[i-1].feiyong){ case 1:Room[i-1].Price=(Room[i-1].Totallist.hour)*300;break; case 2:Room[i-1].Price=(Room[i-1].Totallist.hour)*200;break; case 3:Room[i-1].Price=(Room[i-1].Totallist.hour)*100;break; case 4:Room[i-1].Price=(Room[i-1].Totallist.hour)*40;break; } Room[i-1].Sign=1; save(); printf("恭喜,入住成功!!\n要返回首頁(yè)嗎?(1:Y,0:N)"); scanf("%d",&j); if(j==0) { LoginRoom(); } system("cls"); } void save() //將客房入住信息保存到文件中 { int i; FILE *fp; if((fp=fopen("data.txt","w"))==NULL) { printf("無(wú)法打開(kāi)文件\n"); return; } fwrite(Room,sizeof(struct room),NUM,fp); printf("文件寫入完成\n"); fclose(fp); } void save1() //將客房入住信息保存到文件中 { FILE *fp; if((fp=fopen("date.txt","w"))==NULL) { printf("無(wú)法打開(kāi)文件\n"); return ; } fwrite(Room,sizeof(struct room),NUM,fp); // gets(Room,sizeof(struct room),NUM,fp); //fputs(Room,sizeof(struct room),NUM,fp); printf("文件寫入完成\n"); fclose(fp); } void load() //從文件中讀取客房入住信息 { FILE *fp; int i; if((fp=fopen("date.txt","r"))==NULL) { printf("不能打開(kāi)文件\n"); return ; } for(i=0;!feof(fp);i++) //讀取文檔,從零開(kāi)始直到結(jié)束 feof()函數(shù) //文檔的結(jié)尾都有一個(gè)隱藏字符”EOF”, { //當(dāng)程序讀取它的時(shí)候,就會(huì)知道文件已經(jīng)到達(dá)結(jié)尾。通常使用while循環(huán)加EOF判斷作為讀取結(jié)束的標(biāo)志。 fread(&Room[i],sizeof(struct room),1,fp); //sizeof實(shí)際上是獲取了數(shù)據(jù)在內(nèi)存中所占用的存儲(chǔ)空間,以字節(jié)為單位來(lái)計(jì)數(shù) // 讀取文檔,存儲(chǔ)信息 } fclose(fp); //結(jié)束工作 system("cls"); printf("文件讀取成功\n"); } void SearchRoom() //查詢客房信息 { int k; system("cls"); printf(" 查詢客房信息\n"); printf("請(qǐng)輸入要查詢的房間號(hào)碼:\n"); scanf("%d",&k); if(k<=0||k>1000) { printf("對(duì)不起,未能查到任何信息。\n"); printf("請(qǐng)重新輸入"); SearchRoom(); //重新調(diào)用 } if(Room[k-1].Sign==1) { printf("姓名:%s\n",Room[k-1].Totallist.Name); if(Room[k-1].Totallist.Sex==1) { printf("性別:男\(zhòng)n"); } else { printf("性別:女\n"); } printf("客戶年齡:%d\n",Room[k-1].Totallist.Age); printf("身份證號(hào):%s\n",Room[k-1].Totallist.IDcard); printf("聯(lián)系電話:%s\n",Room[k-1].Tel); printf("入住時(shí)間:%d/%d/%d\n",Room[k-1].Totallist.xx,Room[k-1].Totallist.yy,Room[k-1].Totallist.zz); printf("入住時(shí)長(zhǎng):%d\n",Room[k-1].Totallist.hour); switch(Room[k-1].feiyong){ case 1:printf("總統(tǒng)套房(300/小時(shí))\n");break; case 2:printf("雙人房(200/小時(shí))\n");break; case 3:printf("單人房(100/小時(shí))\n");break; case 4:printf("特價(jià)房(40/小時(shí))\n");break; } printf("費(fèi)用:%ld\n",Room[k-1].Price); } else { system("cls"); printf("很抱歉,沒(méi)有找到該房間登記的相關(guān)信息!!\n"); } printf("要返回首頁(yè)嗎?(1:Y,0:N)"); scanf("%d",&j); if(j==0) { SearchRoom(); } system("cls"); } void ChangeRoom() //修改客房入住信息 { int i,n; system("cls"); printf(" 修改客房信息\n"); printf("請(qǐng)輸入房間號(hào):\n"); scanf("%d",&i); if(Room[i-1].Sign==1) { printf("\t1.修改客戶姓名\n"); printf("\t2.修改客戶性別\n"); printf("\t3.修改客戶年齡\n"); printf("\t4.修改住房時(shí)間\n"); printf("\t5.修改住房時(shí)長(zhǎng)(續(xù)?。‐n"); printf("\t6.修改客戶電話號(hào)碼\n"); printf("\t7.修改客戶身份證號(hào)\n"); printf("請(qǐng)輸入要修改的項(xiàng):"); scanf("%d",&n); switch(n) { case 1:scanf("%s",(char *)&Room[i-1].Totallist.Name); break; case 2:scanf("%d",&Room[i-1].Totallist.Sex); break; case 3:scanf("%d",&Room[i-1].Totallist.Age); break; case 4:scanf("%d %d %d",&Room[i-1].Totallist.xx,&Room[i-1].Totallist.yy,&Room[i-1].Totallist.zz); break; case 5: scanf("%d",&Room[i-1].Totallist.hour); break; switch(Room[i-1].feiyong){ case 1:Room[i-1].Price=(Room[i-1].Totallist.hour)*300;break; case 2:Room[i-1].Price=(Room[i-1].Totallist.hour)*200;break; case 3:Room[i-1].Price=(Room[i-1].Totallist.hour)*100;break; case 4:Room[i-1].Price=(Room[i-1].Totallist.hour)*40;break; } break; case 6:scanf("%s",(char *)&Room[i-1].Tel); break; case 7:scanf("%s",(char *)&Room[i-1].Totallist.IDcard); break; default:printf("輸入錯(cuò)誤,請(qǐng)從新選擇"); break; } save(); printf("修改成功!"); } else { system("cls"); printf("該房間為空房!!\n"); } printf("\n要返回首頁(yè)嗎?(1:Y,0:N)"); scanf("%d",&j); if(j==0) { ChangeRoom(); } system("cls"); } void OutRoom() //退房函數(shù) { int i,j; system("cls"); printf(" 退房管理系統(tǒng)\n"); printf("請(qǐng)輸入房間號(hào):\n"); scanf("%d",&i); printf("確認(rèn)要退%d號(hào)房嗎?(1:Y/0:N)",i); scanf("%d",&j); if(j==1) { if(Room[i-1].Sign==1) { Room[i-1]=Room[101]; save(); system("cls"); printf("退房成功\n"); } else { system("cls"); printf("該房間為空房\n"); } } printf("要返回首頁(yè)嗎?(1:Y,0:N)"); scanf("%d",&j); if(j==0) { OutRoom(); } system("cls"); } void FreeRoom() //查詢客房整體入住信息 { int f,sum; sum=0; system("cls"); printf(" 客房入住信息\n"); for(f=0;f<NUM;f++) { if(Room[f].Sign==1) { printf("%d號(hào)房已入住\n",f+1); sum=sum+1; } } printf("\n總共總共1~1000號(hào)房間中有%d個(gè)房間已入住,剩余%d個(gè)房間為空房。 \n",sum,NUM-sum); printf("要返回首頁(yè)嗎?(1:Y,0:N)"); scanf("%d",&j); if(j==0) { FreeRoom(); } system("cls"); } void Ser() { char sy[7]; int i=0; printf("\n\n\n\t\t\t 請(qǐng)輸入七位密碼\n\n\n\t\t\t "); do { sy[i++]=getch(); printf("*"); }while(i!=6); sy[i]='\0'; if(strcmp(sy,"strong")!=0) { system("cls"); printf("\n\n\n\t\t\t抱歉,您輸入的密碼有誤,請(qǐng)?jiān)俅屋斎?\n\n\n"); printf("\t ⊙-------------------☆☆☆-------------------⊙\n\n"); Ser(); } } void show(){ printf(" ********************************************************************************\n"); printf(" ************************歡迎使用客房登記系統(tǒng)************************************\n"); printf("| 1.--登記客房 |\n"); printf("| 2.--查詢客房 |\n"); printf("| 3.--修改客房 |\n"); printf("| 4.--退房管理 |\n"); printf("| 5.--顯示當(dāng)前所有空房 |\n"); printf("| 6.--退出系統(tǒng) |\n"); printf("|*******************************************************************************|\n"); printf("|*******************************************************************************|\n\n"); } void logtime(char c,int n,int s) { int i; for(i=0;i<n;i++) { printf("%c",c); Sleep(s); } } int main()//主函數(shù) { int i,j; Ser(); system("mode con cols=82"); printf("\n\n\t\tloging"); logtime('.',6,200); system("color 3f"); load(); system("cls"); for(j=0;j<NUM;j++) //為房間狀態(tài)賦值為0,當(dāng)有人入住時(shí),其值改變?yōu)? { Room[j].RoomID=j+1; } do //菜單欄 { printf("\n"); show(); printf("輸入需要選擇的功能:"); scanf("%d",&i); switch(i) //通過(guò)輸入相應(yīng)數(shù)字調(diào)用不同函數(shù)進(jìn)行相應(yīng)工作 { case 1:LoginRoom(); break; case 2:SearchRoom(); break; case 3:ChangeRoom(); break; case 4:OutRoom(); break; case 5:FreeRoom(); break; case 6:printf("謝謝使用客房登記系統(tǒng),正在退出..........\n退出成功,按任意鍵關(guān)閉程序!!\n"); break; default: printf("\n 輸入錯(cuò)誤,請(qǐng)從新選擇\n"); break; } } while(i!=6); return 0; }
以上就是使用C語(yǔ)言怎么編寫一個(gè)酒店管理系統(tǒng),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。