大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計賓館客房管理系統(tǒng)
《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計賓館客房管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計賓館客房管理系統(tǒng)(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、word 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告 實驗名稱 : 賓館訂房和退房系統(tǒng) 姓 名 : 胡山權(quán) 學(xué) 號 : 111714110 學(xué) 院 : 計算機科學(xué)與技術(shù)學(xué)院 專 業(yè) : 網(wǎng)絡(luò)工程 指導(dǎo)教師 : 建新 一.需求分析 1.實驗題目: 賓館訂房和退房系統(tǒng) 2.根本要求: 1〕實現(xiàn)賓館的訂房業(yè)務(wù) 2〕實現(xiàn)退房業(yè)務(wù) 3〕實現(xiàn)統(tǒng)計業(yè)務(wù) 4〕實現(xiàn)查詢業(yè)務(wù) 二.概要設(shè)計 本程序主要有以下幾個功能模塊 void main () //主函數(shù) void tongji_cus (hotel_lv *
2、L) //統(tǒng)計當(dāng)前客人人數(shù)函數(shù) void cx_customer (hotel_lv *L) //查詢客人信息函數(shù) cus* Delete (hotel_lv *L) //退房函數(shù) void input (hotel_lv *L) //訂房函數(shù) void Pr_divide(cus *p,fangjian *q) //打印客人信息函數(shù) void Init(hotel_lv *L) //初始化函數(shù) typedef st
3、ruct customer //客人結(jié)構(gòu)體定義 typedef struct hotel_lv //賓館結(jié)構(gòu)體定義 typedef struct fangjian //房間結(jié)構(gòu)體定義 本程序通過主函數(shù)調(diào)用void main ()主函數(shù),主函數(shù)再調(diào)用其他幾個功能模塊,其中客房數(shù)量通過初始化函數(shù)來實現(xiàn),輸入客房的數(shù)量和床位的數(shù)量來確定。 三.詳細設(shè)計 賓館客房初始化 Main 錄入客人信息 查詢客人信息 統(tǒng)計入住情況 退出系
4、 統(tǒng) 查詢?nèi)胱∏闆r 某某 是 入住流程 是否客滿 是 不能入住 否 輸入所需等級 是否有床位 否 打印客人信息 年齡 性別 入住時間 分配房間成功 返回主菜單 〔3〕退房業(yè)務(wù) 某某 是 否 是 退房業(yè)務(wù) 輸入要退房的房間等級 是否有該等級 否 是否是 輸入房間號 是否有該房間號 否 輸入床位號 是否有該床位號 否 打印客人信息 年齡 性別 入住時間 是否退房 返回主菜單 退房成功 〔4〕查詢業(yè)務(wù) 不為空 不為空 不為空 客人信息查詢 輸入客人某某 遍歷各等級 遍歷各房
5、間 遍歷各床位 不為空 遍歷各床位 是否有該客人 返回主菜單 某某 性別 年齡 入住時間 〔5〕 統(tǒng)計業(yè)務(wù) 不為空 不為空 不為空 統(tǒng)計當(dāng)前客房入住人數(shù) 遍歷各等級 遍歷個房間 遍歷各床位 計數(shù)器conut++ 打印信息 返回主菜單 (1) .主菜單 Init (L); while (1) //進入菜單項選擇項 { system ("cls"); printf ("\n\n\n"); printf ("****************************
6、********************************\n"); printf("* *\n"); printf ("* 歡迎進入賓館客房管理系統(tǒng) *\n"); printf("* *\n"); printf ("****************************************************
7、****\n"); printf ("******工程學(xué)院 計算機學(xué)院 1117141班 胡山權(quán)*********\n\n"); printf ("------------------------------------------所有,侵權(quán)必究\n"); printf (" 1 錄入客人信息\n"); printf (" 2 退房業(yè)務(wù) \n "); printf (" 3 查詢客人信息\n"); printf (" 4 統(tǒng)計客人信息\n"); printf (" 0 退出系統(tǒng) \n"); pri
8、ntf (" 請選擇你要辦理的業(yè)務(wù) \n"); scanf ("%d",&c); // 做選擇 getchar (); switch (c) { case 1: input (L); break; case 2: p=Delete (L);free (p); break; case 3: cx_customer (L); break; case 4: tongji_cus (L); break; case 0: return; } (2) 統(tǒng)計當(dāng)前客人人數(shù)函數(shù)
9、void tongji_cus (hotel_lv *L) { hotel_lv *l; fangjian *f; cus *t; int i=0,j=0; int flag; l=L->next; while (l!=NULL) { flag=0; i++; f=l->fj_next; while (f!=NULL) { if (f->mem_num==0) f=f->next; else { t=f->cus_next; while (t!=NULL) { flag++; j=j+flag; t=t->next; }
10、 f=f->next; } } printf ("等級為%d的房間的入住人數(shù)為%d\n",i,flag); l=l->next; } if (!j) printf ("此時無人入住。\n"); system ("pause"); } (3).退房業(yè)務(wù) cus* Delete (hotel_lv *L) { cus *p,*q;char c; fangjian *f; int lv,hotel_num,bed_num; hotel_lv *l; l=L->next; printf ("請輸入該退房客人的房間等
11、級:\n"); scanf ("%d",&lv); getchar (); while (l!=NULL) { . . . . . { f->mem_num--; printf ("退房成功!\n"); system ("pause"); return (q); } else return NULL; } } } if (q=NULL) //如果該房間床位為空 { printf ("沒有找到該床位,請核對信息后重新輸入。\n");
12、} } } if (f==NULL) //如果該等級的房間為空 { printf ("沒有找到該房間號,請從新輸入。\n"); } } } if (l==NULL) //如果等級鏈表為空 { printf ("沒有找到該房間等級,請核對后輸入!\n"); } system ("pause"); } (4) 查詢客人信息 void cx_customer (hotel_lv *L) { char s[15]; hotel_lv *l; fang
13、jian *f; cus *t; int flag=0; //設(shè)置標(biāo)志量 printf ("請輸入要查詢的客人:\n"); scanf ("%s",s); //輸入要查詢的客人 getchar (); l=L->next; while (l!=NULL) //等級不為空時,走向房間 { f=l->fj_next; while (f!=NULL) //房間不為空時,走向床
14、位 { if (f->mem_num==0) //假設(shè)此房間當(dāng)前人數(shù)為0,走向下一見房 f=f->next; else { t=f->cus_next; while (t!=NULL) { if (!strcmp (t->name,s)) //如果找到該客人 { Pr_divide (t,f); //打印信息 t=t->next; //指向下一個人,繼續(xù)查找 flag++; //標(biāo)量加1 } else t=t->nex
15、t; } f=f->next; } } l=l->next; } if (!flag) //標(biāo)志量為0,如此未查找到 { printf ("沒有找到該客人,請核對再輸入。\n"); system ("pause"); } } //統(tǒng)計函數(shù)與查詢函數(shù)根本類似 (5) 入住函數(shù) void input (hotel_lv *L) { char c; int i,lv; fangjian *p1;
16、cus *s,*p2,*p3; hotel_lv *l; l=L->next; if (full (L)) //判斷是否客滿 { printf ("房間已滿,不能入住。\n"); system ("pause"); } else { printf ("請輸入旅客所需的房間等級:"); scanf ("%d",&lv); while (l!=NULL) //等級不為空時 { if (l->lv_num!=lv) l=l->next; else
17、 //有此等級時 { p1=l->fj_next; while (p1!=NULL) //房間不為空 { if (p1->mem_num==p1->max) //是否有空床位 { p1=p1->next; if (p1==NULL) { getchar (); printf ("此等級為%d的所有房間均無空位\n是否愿意更好等級[y/n]",lv); scanf ("%c",&c); //選擇 if (c=='y') input (L); else return; }
18、 } else //客人信息登記 { //因為床位沒有設(shè)置頭結(jié)點,所以對于第一個結(jié)點要特別判斷 if(p1->mem_num==0) { s=(cus*)malloc(sizeof(cus)); printf ("\n---------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請輸入客人的:"); scanf ("%s",s->name); printf("\n 請輸入客人年齡:"); scanf
19、 ("%d",&(s->age)); printf ("\n 請輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請輸入客人入住的時間〔如:1990 10 11〕:"); scanf ("%d %d %d",&s->year,&s->month,&s->day); s->lv=lv; //指針修改 p1->cus_next=s; p1->mem_num++; //房間當(dāng)前最大人數(shù)加1 s->bed_num=1
20、; s->next=NULL; //尾指針設(shè)置為空 Pr_divide (s,p1); //打印房間分配表 system ("cls"); break; } else { p2=p1->cus_next; p3=p2; i=1; while (i<=p1->mem_num) { if (i==p3->bed_num) { p3=p3->next; i++; } else { i++; break; } } if (p3==NULL) { s=(cus*)malloc(sizeof(cu
21、s)); printf("\n--------------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請輸入客人的:"); scanf ("%s",s->name); printf("\n 請輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請輸入客人入住的時間〔如:1990 10 11〕:
22、"); scanf ("%d %d %d",&s->year,&s->month,&s->day); s->lv=lv; while (p2->next!=p3) p2=p2->next; p2->next=s; p1->mem_num++; s->bed_num=i; s->next=NULL; Pr_divide (s,p1); system("cls"); break; } else { while(p2->bed_num==i) p2=p2->next; s=(cus*)malloc(sizeof(cus)); printf("\n-------
23、-------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請輸入客人的:"); scanf ("%s",s->name); printf("\n 請輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請輸入客人入住的時間〔如:1990 10 11〕:"); scanf ("%d
24、%d %d",&s->year,&s->month,&s->day); s->lv=lv; s->next=p2->next; p2->next=s; p1->mem_num++; s->bed_num=i-1; Pr_divide(s,p1); system("cls"); break; } } } } break; } } } } (6) 初始化函數(shù) void Init(hotel_lv *L) { int i,j,k,l; hotel_lv *p,*q; fangjian *p1,
25、*p2,*p3;
printf ("請輸入房間分為幾個等級:\n");
scanf ("%d",&j); //輸入房間分為幾個等級
q=L;
for (i=1;i
26、 //輸入該等級房間的數(shù)目 if (l==0) continue; else //初始化該房間的床位 { p2= (fangjian*)malloc(sizeof(fangjian)); p2->fj_num=1; printf ("請輸入房間等級為%d房間號為l的床位個數(shù)的最大值:\n",p->lv_num,k); scanf ("%d",&(p2->max)); //輸入房間l的床位數(shù)目 p2->mem_num=0; //該
27、房間當(dāng)前人數(shù)賦值為0 p->fj_next=p2; p3=p2; for (k=2;k<=1;k++) { p1=(fangjian*)malloc(sizeof(fangjian)); p3->next=p1; p1->fj_num=k; printf ("請輸入房間等級為%d房間號為%d的床位的個數(shù)的最大值;\n",p->lv_num,k); scanf ("%d",&(p1->max)); //輸入房間K的床位數(shù)目 p1->mem_num=0; //該房間的當(dāng)前人數(shù)賦值為0 p3=p1; } p3->next=NULL
28、; //房間鏈表尾指針為空 } q=q->next; } q->next=NULL; //等級鏈表尾指針域為空 system ("pause"); } (7) 打印客人信息 void Pr_divide(cus *p,fangjian *q) { printf ("*************************************************************\n\n"); printf (
29、" 賓館房間分配系統(tǒng) \n\n"); printf ("*************************************************************\n\n"); printf ("| | 性別 | 年齡 | 等級號 | 房間號 | 床位號 | 入住時間 |\n"); printf ("| %6s | %d | %2d | %2d | %2d | %2d | %4d-%2d-%2d | \n", p->name,p->sex,
30、p->age,p->lv,q->fj_num,p->bed_num,p->year,p->month,p->day); printf ("***************************************************************\n"); printf ("\n"); system ("pause"); } 四.程序截圖說明 (1) 程序主菜單: (2) 錄入客人信息 〔3〕查詢客人信息 〔4〕統(tǒng)計業(yè)務(wù) 〔5〕 退房業(yè)務(wù) 五.分析總結(jié): 1. 出現(xiàn)問題與解決方法: 剛開始,我
31、想賓館管理系統(tǒng)的算法和學(xué)生宿舍管理系統(tǒng)一樣,所以開始,我定義的結(jié)構(gòu)體數(shù)組,進展編寫??墒窃诔跏蓟臅r候因為賓館和宿舍的情況不一樣,而且數(shù)組大小也不能用變量來指示,所以在用數(shù)組進展初始化的時候遇到了麻煩,有想到,如果用鏈表來編寫的話,不用定義鏈表的長度,所以改用鏈表來編寫。 在客人入住的情況中,開始沒有設(shè)置頭結(jié)點,寫到后面覺得不對勁,因為有好多情況要進展考慮,〔如:判斷是否客滿,是否需要的等級有空位等〕,所以又參加頭結(jié)點。在床頭分配的時候,因為沒有設(shè)置床頭的頭結(jié)點,所以要對第一個床位進展特別判斷。然后進展屢次修改,最終實現(xiàn)客人的入住。 退房更入住時候一樣,需要考慮很多情況,在床位回收的時候,
32、還是因為沒有設(shè)置頭結(jié)點,所以要對第一個床位進展特別判斷,還有就是一開始我把那個輸入退房人的房間號和床位號的語句放在的循環(huán)體,出現(xiàn)了一次循環(huán)要輸入一次,后來經(jīng)過調(diào)試發(fā)現(xiàn)了問題,移出來虹歐解決了這個問題。 最后進展住函數(shù)的界面編寫,查詢操作比擬簡單,沒有出現(xiàn)什么問題,由于自己不會文件的保存與讀取函數(shù)的編寫,所以沒有采取文件的存儲與讀取。 : 能夠很好的實現(xiàn)入住,查詢,統(tǒng)計,退房等功能,但是不能實現(xiàn)文件的保存與讀取。 六.致: 轉(zhuǎn)眼間,八周的課程設(shè)計完畢了,感教師為我們提供的每周數(shù)次的到機房上機調(diào)試的機會,在那里,教師將為我們解決各種難題,同學(xué)之間也可以相互討論,這才有了今天的成果,特別是
33、教師的寶貴的意見,給了我很大的啟示,同時也要感那些給予過我?guī)椭耐瑢W(xué)們。
七.源程序代碼
#include
34、next; }cus; typedef struct hotel_lv //賓館結(jié)構(gòu)體 { int lv_num; struct hotel_lv *next; struct fangjian *fj_next; }hotel_lv; typedef struct fangjian //房間結(jié)構(gòu)體 { int fj_num; int max; int mem_num; struct fangjian *next; struct customer *cus_n
35、ext;
}fangjian;
void Init(hotel_lv *L) //初始化函數(shù)
{
int i,j,k,l;
hotel_lv *p,*q;
fangjian *p1, *p2,*p3;
printf ("請輸入房間分為幾個等級:\n");
scanf ("%d",&j); //輸入房間分為幾個等級
q=L;
for (i=1;i
36、m=i; //給房間等級賦值 printf ("請輸入房間等級為%d的房間個數(shù):\n",p->lv_num); scanf ("%d",&l); //輸入該等級房間的數(shù)目 if (l==0) continue; else //初始化該房間的床位 { p2= (fangjian*)malloc(sizeof(fangjian)); p2->fj_num=1; printf ("請輸入房
37、間等級為%d房間號為l的床位個數(shù)的最大值:\n",p->lv_num,k); scanf ("%d",&(p2->max)); //輸入房間l的床位數(shù)目 p2->mem_num=0; //該房間當(dāng)前人數(shù)賦值為0 p->fj_next=p2; p3=p2; for (k=2;k<=1;k++) { p1=(fangjian*)malloc(sizeof(fangjian)); p3->next=p1; p1->fj_num=k; printf ("請輸入房間等級為%d房間號為%d的床位的個數(shù)的最大值;\n",
38、p->lv_num,k); scanf ("%d",&(p1->max)); //輸入房間K的床位數(shù)目 p1->mem_num=0; //該房間的當(dāng)前人數(shù)賦值為0 p3=p1; } p3->next=NULL; //房間鏈表尾指針為空 } q=q->next; } q->next=NULL; //等級鏈表尾指針域為空 system ("pause"); } int full (hote
39、l_lv *L) //判斷是否客滿 { hotel_lv *l;fangjian *f; l=L->next; while (l!=NULL) { f=l->fj_next; while (f!=NULL) { if (f->mem_num!=f->max) //如果有房間的當(dāng)前人數(shù)不等于房間的最大人數(shù),如此返回0 return 0; else f=f->next; } l=l->next; } if (!l) //否如此返回1 return
40、1; else return 0; } void Pr_divide(cus *p,fangjian *q) //打印客人信息 { printf ("********************************************************************\n\n"); printf (" 賓館房間分配系統(tǒng) \n\n"); printf ("*********************************
41、***********************************\n\n"); printf ("| | 性別 | 年齡 | 等級號 | 房間號 | 床位號 | 入住時間 |\n"); printf ("| %6s | %d | %2d | %2d | %2d | %2d | %4d-%2d-%2d | \n", p->name,p->sex,p->age,p->lv,q->fj_num,p->bed_num,p->year,p->month,p->day); printf ("***************************
42、******************************************\n"); printf ("\n"); system ("pause"); } void input (hotel_lv *L) //入住函數(shù) { char c; int i,lv; fangjian *p1; cus *s,*p2,*p3; hotel_lv *l; l=L->next; if (full (L)) //判斷是否客滿 { printf ("房間已滿,不能入住。\n"); sy
43、stem ("pause"); } else { printf ("請輸入旅客所需的房間等級:"); scanf ("%d",&lv); while (l!=NULL) //等級不為空時 { if (l->lv_num!=lv) l=l->next; else //有此等級時 { p1=l->fj_next; while (p1!=NULL) //房間不為空 { if (p1->mem_num==p1->max) /
44、/是否有空床位 { p1=p1->next; if (p1==NULL) { getchar (); printf ("此等級為%d的所有房間均無空位\n是否愿意更好等級[y/n]",lv); scanf ("%c",&c); //選擇 if (c=='y') input (L); else return; } } else //客人信息登記 { //因為床位沒有設(shè)置頭結(jié)點,所以對于第一個結(jié)點要特別判斷 if(p1->mem_num==0) { s=
45、(cus*)malloc(sizeof(cus)); printf ("\n---------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請輸入客人的:"); scanf ("%s",s->name); printf("\n 請輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n
46、請輸入客人入住的時間〔如:1990 10 11〕:"); scanf ("%d %d %d",&s->year,&s->month,&s->day); s->lv=lv; //指針修改 p1->cus_next=s; p1->mem_num++; //房間當(dāng)前最大人數(shù)加1 s->bed_num=1; s->next=NULL; //尾指針設(shè)置為空 Pr_divide (s,p1); //打印房間分配表 system ("cls"); brea
47、k; } else { p2=p1->cus_next; p3=p2; i=1; while (i<=p1->mem_num) { if (i==p3->bed_num) { p3=p3->next; i++; } else { i++; break; } } if (p3==NULL) { s=(cus*)malloc(sizeof(cus)); printf("\n--------------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n
48、 請輸入客人的:"); scanf ("%s",s->name); printf("\n 請輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請輸入客人入住的時間〔如:1990 10 11〕:"); scanf ("%d %d %d",&s->year,&s->month,&s->day); s->lv=lv; while (p2->next!=p3) p2=p2->next;
49、 p2->next=s; p1->mem_num++; s->bed_num=i; s->next=NULL; Pr_divide (s,p1); system("cls"); break; } else { while(p2->bed_num==i) p2=p2->next; s=(cus*)malloc(sizeof(cus)); printf("\n--------------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請輸入客人的:"); sca
50、nf ("%s",s->name); printf("\n 請輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請輸入客人入住的時間〔如:1990 10 11〕:"); scanf ("%d %d %d",&s->year,&s->month,&s->day); s->lv=lv; s->next=p2->next; p2->next=s; p1->mem_num++; s->
51、bed_num=i-1; Pr_divide(s,p1); system("cls"); break; } } } } break; } } } } cus* Delete (hotel_lv *L) //退房 { cus *p,*q;char c; fangjian *f; int lv,hotel_num,bed_num; hotel_lv *l; l=L->next; printf ("請輸入該退房客人的房間等級:\n"); scanf ("%d",&lv);
52、 //輸入退房人的房間等級 getchar (); while (l!=NULL) { if (l->lv_num!=lv) l=l->next; else //找到該等級 { f=l->fj_next; printf("請輸入退房客人的房間:\n"); scanf ("%d",&hotel_num); //輸入退房人的房間 getchar (); while (f!=NULL) { if (f->fj_num!=hotel_num) f=f->next; el
53、se //找到該房間 { p=f->cus_next; q=f->cus_next; printf("請輸入該客人的床位號:\n"); scanf ("%d",&bed_num); //輸入退放入的床位號 getchar (); while (q!=NULL) { if (q->bed_num!=bed_num) q=q->next; else //查找該床位 { if (bed_num==1) //因為床位沒有
54、設(shè)置頭結(jié)點,所以對第一個結(jié)點要特別判斷 { //直接打印客人信息 printf ("此等級、此房間、此床位的客人信息為:\n"); printf ("改客人的信息為:\n"); printf ("\t性別\t年齡\t入住時間\n"); printf ("%s\t%d\t%d\t%d-%d-%d\n",q->name,q->sex,q->age,q->year,q->month,q->day); printf ("是否與退房人的信息一樣?[y/n]\n"); scanf ("%c",&c); if (c=='y')
55、 //做出是否退房的選擇 { f->mem_num--; printf ("退房成功!\n"); system ("pause"); return (q); } else return NULL; } else //如果床位不為1 { while (p->next!=q) //指向下一床位 p=p->next; //打印客人信息 printf ("此等級、此房間、此床位的客人信息為:\n"); printf ("改客人的信息
56、為:\n"); printf ("\t性別\t年齡\t入住時間\n"); printf ("%s\t%d\t%d\t%d-%d-%d\n",q->name,q->sex,q->age,q->year,q->month,q->day); printf ("是否與退房人的信息一樣?[y/n]\n"); scanf ("%c",&c); if (c=='y') //做出是否退房的選擇 { f->mem_num--; printf ("退房成功!\n"); system ("pause"); return (q); } else return
57、 NULL; } } } if (q=NULL) //如果該房間床位為空 { printf ("沒有找到該床位,請核對信息后重新輸入。\n"); } } } if (f==NULL) //如果該等級的房間為空 { printf ("沒有找到該房間號,請從新輸入。\n"); } } } if (l==NULL) //如果等級鏈表為空 { printf ("沒有找到該房間等級,請核對后輸入!\n
58、"); } system ("pause"); } void cx_customer (hotel_lv *L) //查詢客人信息 { char s[15]; hotel_lv *l; fangjian *f; cus *t; int flag=0; //設(shè)置標(biāo)志量 printf ("請輸入要查詢的客人:\n"); scanf ("%s",s); //輸入要查詢的客人 getchar (); l=L->ne
59、xt; while (l!=NULL) //等級不為空時,走向房間 { f=l->fj_next; while (f!=NULL) //房間不為空時,走向床位 { if (f->mem_num==0) //假設(shè)此房間當(dāng)前人數(shù)為0,走向下一見房 f=f->next; else { t=f->cus_next; while (t!=NULL) { if (!strcmp (t->name,s)) //如果找到該客人 { Pr_divide (t,f);
60、 //打印信息 t=t->next; //指向下一個人,繼續(xù)查找 flag++; //標(biāo)量加1 } else t=t->next; } f=f->next; } } l=l->next; } if (!flag) //標(biāo)志量為0,如此未查找到 { printf ("沒有找到該客人,請核對再輸入。\n"); system ("pause"); } }
61、 //統(tǒng)計函數(shù)與查詢函數(shù)根本類似 void tongji_cus (hotel_lv *L) //統(tǒng)計當(dāng)前客人人數(shù)函數(shù) { hotel_lv *l; fangjian *f; cus *t; int i=0,j=0; int flag; l=L->next; while (l!=NULL) { flag=0; i++; f=l->fj_next; while (f!=NULL) { if (f->mem_num==0) f=f->next;
62、else { t=f->cus_next; while (t!=NULL) { flag++; j=j+flag; t=t->next; } f=f->next; } } printf ("等級為%d的房間的入住人數(shù)為%d\n",i,flag); l=l->next; } if (!j) printf ("此時無人入住。\n"); system ("pause"); } void main () //主函數(shù) { hotel_lv *L; cus *p; int
63、 c; L=(hotel_lv *)malloc (sizeof(hotel_lv)); printf ("初始化旅店信息:\n"); Init (L); while (1) //進入菜單項選擇項 { system ("cls"); printf ("\n\n\n"); printf ("************************************************************\n"); printf ("*
64、 *\n"); printf ("* 歡迎進入賓館客房管理系統(tǒng) *\n"); printf ("* *\n"); printf ("************************************************************\n"); printf ("*********工程學(xué)院 計算機學(xué)院 1117141班 胡山權(quán)***********\n\n"); printf
65、("------------------------------------------所有,侵權(quán)必究\n"); printf (" 1 錄入客人信息\n"); printf (" 2 退房業(yè)務(wù) \n "); printf (" 3 查詢客人信息\n"); printf (" 4 統(tǒng)計客人信息\n"); printf (" 0 退出系統(tǒng) \n"); printf (" 請選擇你要辦理的業(yè)務(wù) \n"); scanf ("%d",&c); // 做選擇 getchar (); switch (c) { case 1: input (L); break; case 2: p=Delete (L);free (p); break; case 3: cx_customer (L); break; case 4: tongji_cus (L); break; case 0: return; } getchar (); } } 30 / 30
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案