版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、« C 語言程序設(shè)計綜合實驗報告一、需求分析編寫一個客房管理系統(tǒng),提供鍵盤式菜單實現(xiàn)功能選擇,功能包括:用戶登記、 統(tǒng)計、查詢和用戶信息修改。軟件平臺:CODEBLOCKS二、整體設(shè)計整個客房管理系統(tǒng)被設(shè)計為用戶登記模塊、統(tǒng)計模塊、查詢模塊和修改模塊。數(shù) 據(jù)以TXT格式存儲,支持保存信息。三、詳細設(shè)計客房管理系統(tǒng)(1)用戶登記模塊數(shù)組,通過函數(shù)rea問號,判斷是登記信息,把dfile卡讀 否已袤被 數(shù)據(jù)卷入墳txt文件用到用,若占用模重卻room斫選擇Roomi攵組代 追.過readfi四木用戶選擇想耍入房問號模若沒有占savefile 廄etxt用,川示4住的房 俞入加信息到txt
2、塊讀取用戶輸入的的房間號調(diào)用savefile函數(shù)存儲登記信息(2)統(tǒng)計模塊 讀取txt信息到結(jié)構(gòu)體數(shù)組room,提示用戶選擇統(tǒng)計方式,設(shè)置計數(shù)器,順序 遍歷Room©:組,1、計數(shù)器記錄數(shù)組數(shù),即總客房數(shù)2、判斷每一個數(shù)組中的結(jié)構(gòu)體的時間是否和需要查詢的日期相同,若相同,計 數(shù)器加一調(diào)用readfile函數(shù),讀取信息選擇統(tǒng)計方式1、統(tǒng)計總客房數(shù)(3)查詢模塊2、按時間統(tǒng)計調(diào)用readfile 函數(shù),將信息讀入 通過基本查找算法查找Roomft組room結(jié)構(gòu)體數(shù)組中,提示用戶選擇查詢方式, 可以按房間號、價格、房間標記、用戶姓名、0(4)修改模塊調(diào)用readfile 函數(shù),讀取信息到r
3、oom結(jié)構(gòu)體數(shù)組,提示用戶輸入需要修改的房問號,采用基本查找算法在數(shù)組中找到要修改的數(shù)據(jù),提示用戶重新更改房間信息,最后將結(jié)構(gòu)體數(shù)組重新寫入文件保存。調(diào)用readfile (讀取文輸入需要查詢的房間號遍歷每一個結(jié)構(gòu)體 j四、源代碼#include <stdio.h>#include <stdlib.h>#include <string.h>#define M 80/客戶結(jié)構(gòu)體typedef struct clientchar name12;/姓名int sex;/性別int age;/ 年齡char id20;/身份證號int year;/入住時間int m
4、onth;int date;CLIENT;/客房結(jié)構(gòu)體struct Hotelint roomid;int tel;/ 用戶的話int price;/ 價格int sign;/默認標記為空房間CLIENT client_list;/客戶信息roomM;void Menu(); / 目錄界面void dengji(struct Hotel room);void savefile(struct Hotel room,int i);int readfile(struct Hotel room);void tongji(struct Hotel room);void chaxun(struct Hot
5、el room);void printmessage(struct Hotel room,int n);void xiugai(struct Hotel room);/主函數(shù)int main()int n;char reply;Menu();doprintf(" 請輸入選項對應(yīng)的數(shù)字: n");scanf("%d",&n);while(n!=1&&n!=2&&n!=3&&n!=4)printf(" 請輸入各選項對應(yīng)的數(shù)字! n");scanf("%d",&am
6、p;n);switch (n)case 1:dengji(room);break;case 2:tongji(room);break;case 3:chaxun(room);break;case 4:xiugai(room);break;printf(" 是否還要進入其它選項?(回復Y 或 y 繼續(xù)) n");scanf(" %c",&reply);while (reply='y'|reply='Y');return 0;/系統(tǒng)目錄void Menu()printf("*客房管理系統(tǒng)*n");)
7、;););printf("ttt 1登記n"printf("ttt 2統(tǒng)計n"printf("ttt 3查詢n"printf("ttt 4修改 n");printf("*n");/登記客戶信息 void dengji(struct Hotel room)int x,j,i,flag;char answer;doi=readfile(room);doflag=0;printf(" 輸入您想入住的房間號: (三位數(shù)) n");scanf("%3d",&
8、x);for(j=0;j<i;j+)if(roomj.roomid=x)printf(" 該房間已經(jīng)被占用! n");flag=1;while(flag>0);roomi+1.roomid=x;printf(" 請輸入您的電話:(僅支持六位數(shù)號碼)n");scanf("%d",&roomi+1.tel);printf(" 入住價格 n");scanf("%d",&roomi+1.price);printf(" 請輸入您的名字n");scanf(&q
9、uot;%s",roomi+1.client_);printf(" 性別: ( 1 表示女, 0 表示男) n");scanf("%d",&roomi+1.client_list.sex);printf(" 您的年齡: n");scanf("%d",&roomi+1.client_list.age);printf(" 您的 id : n");scanf("%s",roomi+1.client_list.id);printf( &qu
10、ot; 請輸入入住年月日(格式: 2015 11 11) n");scanf("%4d%2d%2d",&roomi+1.client_list.year,&roomi+1.client_list.month,&roomi+1.clien t_list.date);savefile(room,i+1);printf(" 是否還要繼續(xù)登記?(回復Y 或 y 繼續(xù)) n");scanf(" %c",&answer);while(answer='Y'|answer='y'
11、;);/讀取 txt 中的信息int readfile(struct Hotel room)FILE *fp;int i;if(fp=fopen("room.txt","r")=NULL)printf("Failure to open score.txt!n");exit(0);for (i=0;!feof(fp);i+)fscanf(fp,"%5d",&roomi.roomid);fscanf(fp,"%6d",&roomi.price);fscanf(fp,"%15
12、d",&roomi.tel);fscanf(fp,"%12s",roomi.client_);fscanf(fp,"%4d",&roomi.client_list.sex);fscanf(fp,"%6d",&roomi.client_list.age);fscanf(fp,"%20s",roomi.client_list.id);fscanf(fp,"%7d",&roomi.client_list.year);fscanf(fp,&qu
13、ot;%5d",&roomi.client_list.month);fscanf(fp,"%5d",&roomi.client_list.date);fclose(fp);return i;/保存結(jié)構(gòu)體數(shù)組信息到文件void savefile(struct Hotel room,int i)FILE *fp;if(fp = fopen("room.txt","a")=NULL)printf("Failure to open score.txt!n");exit(0);fprintf(fp,
14、"%5d%6d%15d%12s%4d%6d%20s%7d%5d%5d",roomi.roomid,roomi.price,roomi.tel,roomi.client_,roomi.client_list.sex,roomi.client_list.age,roomi.client_list.id,roomi.client_list.year,roomi.client_list.month,roomi.client_list.date);fclose(fp);/統(tǒng)計模塊void tongji(struct Hotel room)int n,x;int ye
15、ar,month,day,j,count=0;x=readfile(room);printf(" 請選擇統(tǒng)計方式: 1統(tǒng)計房客數(shù),2統(tǒng)計某一天的房客數(shù)n");scanf("%d",&n);switch (n)case 1:printf(" 客房總數(shù)為: %dn",x);break;case 2:printf(" 請輸入具體時間: n");scanf("%d%d%d",&year,&month,&day);for(j=0;j<x;j+)if(roomj.cli
16、ent_list.year=year&&roomj.client_list.month=month&&roomj.client_list.date =day)count+;printf("%d 年 %d 月 %d 號的房客數(shù)為 %d",year,month,day,count);/查詢模塊void chaxun(struct Hotel room)int n,x,roomid,price,j;char name12,id20;x=readfile(room);printf(" 按房間號查詢請按1 ;按價格查詢請按2;按用戶姓名查詢請
17、按3;按身份證號碼查詢請按4n");scanf("%d",&n);switch(n)case 1:printf(" 請輸入房間號: n");scanf("%d",&roomid);for(j=0;j<x;j+)if(roomj.roomid=roomid)print(room,j);break;case 2:printf(" 請輸入價格: n");scanf("%d",&price);for(j=0;j<x;j+)if(roomj.price=pri
18、ce)print(room,j);break;case 3:printf(" 請輸入客戶姓名: n");scanf("%s",name);for(j=0;j<x;j+)if(strcmp(roomj.client_,name)=0)print(room,j);break;case 4:printf(" 請輸入身份證號碼: n");scanf("%s",id);for(j=0;j<x;j+)if(strcmp(roomj.client_list.id,id)=0)print(room,j
19、);/打印void print(struct Hotel room,int j)printf("%5d%6d%15d%12s%4d%6d%20s%7d%5d%5dn",roomj.roomid,roomj.price,roomj.tel,roomj.client_,roomj.client_list.sex,roomj.client_list.age,roomj.client_list.id,roomj.client_list.year, roomj.client_list.month, roomj.client_list.date);void print
20、message(struct Hotel room,int n)int j;for(j=0;j<n;j+)printf("%5d%6d%15d%12s%4d%6d%20s%7d%5d%5dn",roomj.roomid,roomj.price,roomj.tel,roomj.client_, roomj.client_list.sex, roomj.client_list.age, roomj.client_list.id, roomj.client_list.year, roomj.client_list.month, roomj.client_l
21、ist.date);/修改模塊void xiugai(struct Hotel room)int i, m, roomid;m = readfile(room);printf(" 請選擇房間號: n");scanf("%d",&roomid);for(i=0;i<m;i+)if(roomi.roomid=roomid)printf(" 請輸入您的電話:n");scanf("%d",&roomi.tel);printf(" 入住價格 n");scanf("%d&qu
22、ot;,&roomi.price);printf(" 請輸入您的名字n");scanf("%s",roomi.client_);printf(" 性別: n");scanf("%d",&roomi.client_list.sex);printf(" 您的年齡: n");scanf("%d",&roomi.client_list.age);printf(" 您的 id : n");scanf("%s&quo
23、t;,roomi.client_list.id);scanf("%4d%2d%2d",&roomi.client_list.year,&roomi.client_list.month,&roomi.client_list.da te);saveall(room,m);/保存所有信息到 txt 文件void saveall(struct Hotel room,int m)int j;FILE *fp;if(fp = fopen("room.txt","w")=NULL)printf("Failure t
24、o open score.txt!n");exit(0); for(j=0;j<m;j+) fprintf(fp,"%5d%6d%15d%12s%4d%6d%20s%7d%5d%5d", roomj.roomid,roomj.price,roomj.tel,roomj.client_,Roomj.client_list.sex,roomj.client_list.age,roomj.client_list.id,roomj.client_list.year,roomj.client_list.month, roomj.client_list.date);fclose(fp);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度供應(yīng)鏈反擔保保證合同書3篇
- 2025年度個人助學貸款合同3篇
- 2024清罐拆除工程附帶特種作業(yè)人員培訓合同3篇
- 二零二五年度農(nóng)業(yè)科技公司股東退股保密與土地使用協(xié)議3篇
- 2024年網(wǎng)絡(luò)安全員聘書3篇
- 揭陽古建施工方案
- 2025版特許經(jīng)營合同:快餐品牌與加盟商之間的連鎖加盟協(xié)議3篇
- 2024年早教市場深度調(diào)查評估及投資方向研究報告
- 二零二五年度兒童玩具展覽合作合同范本2篇
- 2024年礦業(yè)資產(chǎn)并購專項法律咨詢協(xié)議版B版
- 2024年陜西省安全員《A證》考試題庫及答案
- 2024版新能源汽車購置補貼及服務(wù)保障合同3篇
- 2024-2025學年華東師大新版八年級上冊數(shù)學期末復習試卷(含詳解)
- 《praat使用入門》課件
- 醫(yī)藥銷售主管市場規(guī)劃
- 測量應(yīng)急管理方案
- 2024-2025學年深圳市初三適應(yīng)性考試模擬試卷語文試卷
- DB22JT 147-2015 巖土工程勘察技術(shù)規(guī)程
- 杵針療法課件
- 期末測試卷-2024-2025學年語文四年級上冊統(tǒng)編版
- 期末復習試題(試題)-2024-2025學年三年級上冊數(shù)學蘇教版
評論
0/150
提交評論