影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)賓館客房管理系統(tǒng)

上傳人:無(wú)*** 文檔編號(hào):83619003 上傳時(shí)間:2022-05-02 格式:DOC 頁(yè)數(shù):30 大小:187KB
收藏 版權(quán)申訴 舉報(bào) 下載
大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)賓館客房管理系統(tǒng)_第1頁(yè)
第1頁(yè) / 共30頁(yè)
大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)賓館客房管理系統(tǒng)_第2頁(yè)
第2頁(yè) / 共30頁(yè)
大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)賓館客房管理系統(tǒng)_第3頁(yè)
第3頁(yè) / 共30頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)賓館客房管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)賓館客房管理系統(tǒng)(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、word 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 實(shí)驗(yàn)名稱 : 賓館訂房和退房系統(tǒng) 姓 名 : 胡山權(quán) 學(xué) 號(hào) : 111714110 學(xué) 院 : 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專 業(yè) : 網(wǎng)絡(luò)工程 指導(dǎo)教師 : 建新 一.需求分析 1.實(shí)驗(yàn)題目: 賓館訂房和退房系統(tǒng) 2.根本要求: 1〕實(shí)現(xiàn)賓館的訂房業(yè)務(wù) 2〕實(shí)現(xiàn)退房業(yè)務(wù) 3〕實(shí)現(xiàn)統(tǒng)計(jì)業(yè)務(wù) 4〕實(shí)現(xiàn)查詢業(yè)務(wù) 二.概要設(shè)計(jì) 本程序主要有以下幾個(gè)功能模塊 void main () //主函數(shù) void tongji_cus (hotel_lv *

2、L) //統(tǒng)計(jì)當(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)體定義 本程序通過(guò)主函數(shù)調(diào)用void main ()主函數(shù),主函數(shù)再調(diào)用其他幾個(gè)功能模塊,其中客房數(shù)量通過(guò)初始化函數(shù)來(lái)實(shí)現(xiàn),輸入客房的數(shù)量和床位的數(shù)量來(lái)確定。 三.詳細(xì)設(shè)計(jì) 賓館客房初始化 Main 錄入客人信息 查詢客人信息 統(tǒng)計(jì)入住情況 退出系

4、 統(tǒng) 查詢?nèi)胱∏闆r 某某 是 入住流程 是否客滿 是 不能入住 否 輸入所需等級(jí) 是否有床位 否 打印客人信息 年齡 性別 入住時(shí)間 分配房間成功 返回主菜單 〔3〕退房業(yè)務(wù) 某某 是 否 是 退房業(yè)務(wù) 輸入要退房的房間等級(jí) 是否有該等級(jí) 否 是否是 輸入房間號(hào) 是否有該房間號(hào) 否 輸入床位號(hào) 是否有該床位號(hào) 否 打印客人信息 年齡 性別 入住時(shí)間 是否退房 返回主菜單 退房成功 〔4〕查詢業(yè)務(wù) 不為空 不為空 不為空 客人信息查詢 輸入客人某某 遍歷各等級(jí) 遍歷各房

5、間 遍歷各床位 不為空 遍歷各床位 是否有該客人 返回主菜單 某某 性別 年齡 入住時(shí)間 〔5〕 統(tǒng)計(jì)業(yè)務(wù) 不為空 不為空 不為空 統(tǒng)計(jì)當(dāng)前客房入住人數(shù) 遍歷各等級(jí) 遍歷個(gè)房間 遍歷各床位 計(jì)數(shù)器conut++ 打印信息 返回主菜單 (1) .主菜單 Init (L); while (1) //進(jìn)入菜單項(xiàng)選擇項(xiàng) { system ("cls"); printf ("\n\n\n"); printf ("****************************

6、********************************\n"); printf("* *\n"); printf ("* 歡迎進(jìn)入賓館客房管理系統(tǒng) *\n"); printf("* *\n"); printf ("****************************************************

7、****\n"); printf ("******工程學(xué)院 計(jì)算機(jī)學(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)計(jì)客人信息\n"); printf (" 0 退出系統(tǒng) \n"); pri

8、ntf (" 請(qǐng)選擇你要辦理的業(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)計(jì)當(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 ("等級(jí)為%d的房間的入住人數(shù)為%d\n",i,flag); l=l->next; } if (!j) printf ("此時(shí)無(wú)人入住。\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 ("請(qǐng)輸入該退房客人的房間等

11、級(jí):\n"); scanf ("%d",&lv); getchar (); while (l!=NULL) { . . . . . { f->mem_num--; printf ("退房成功!\n"); system ("pause"); return (q); } else return NULL; } } } if (q=NULL) //如果該房間床位為空 { printf ("沒有找到該床位,請(qǐng)核對(duì)信息后重新輸入。\n");

12、} } } if (f==NULL) //如果該等級(jí)的房間為空 { printf ("沒有找到該房間號(hào),請(qǐng)從新輸入。\n"); } } } if (l==NULL) //如果等級(jí)鏈表為空 { printf ("沒有找到該房間等級(jí),請(qǐng)核對(duì)后輸入!\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 ("請(qǐng)輸入要查詢的客人:\n"); scanf ("%s",s); //輸入要查詢的客人 getchar (); l=L->next; while (l!=NULL) //等級(jí)不為空時(shí),走向房間 { f=l->fj_next; while (f!=NULL) //房間不為空時(shí),走向床

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; //指向下一個(gè)人,繼續(xù)查找 flag++; //標(biāo)量加1 } else t=t->nex

15、t; } f=f->next; } } l=l->next; } if (!flag) //標(biāo)志量為0,如此未查找到 { printf ("沒有找到該客人,請(qǐng)核對(duì)再輸入。\n"); system ("pause"); } } //統(tǒng)計(jì)函數(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 ("請(qǐng)輸入旅客所需的房間等級(jí):"); scanf ("%d",&lv); while (l!=NULL) //等級(jí)不為空時(shí) { if (l->lv_num!=lv) l=l->next; else

17、 //有此等級(jí)時(shí) { p1=l->fj_next; while (p1!=NULL) //房間不為空 { if (p1->mem_num==p1->max) //是否有空床位 { p1=p1->next; if (p1==NULL) { getchar (); printf ("此等級(jí)為%d的所有房間均無(wú)空位\n是否愿意更好等級(jí)[y/n]",lv); scanf ("%c",&c); //選擇 if (c=='y') input (L); else return; }

18、 } else //客人信息登記 { //因?yàn)榇参粵]有設(shè)置頭結(jié)點(diǎn),所以對(duì)于第一個(gè)結(jié)點(diǎn)要特別判斷 if(p1->mem_num==0) { s=(cus*)malloc(sizeof(cus)); printf ("\n---------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請(qǐng)輸入客人的:"); scanf ("%s",s->name); printf("\n 請(qǐng)輸入客人年齡:"); scanf

19、 ("%d",&(s->age)); printf ("\n 請(qǐng)輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請(qǐng)輸入客人入住的時(shí)間〔如: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 請(qǐng)輸入客人的:"); scanf ("%s",s->name); printf("\n 請(qǐng)輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請(qǐng)輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請(qǐng)輸入客人入住的時(shí)間〔如: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 請(qǐng)輸入客人的:"); scanf ("%s",s->name); printf("\n 請(qǐng)輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請(qǐng)輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請(qǐng)輸入客人入住的時(shí)間〔如: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 ("請(qǐng)輸入房間分為幾個(gè)等級(jí):\n"); scanf ("%d",&j); //輸入房間分為幾個(gè)等級(jí) q=L; for (i=1;inext=p; p->lv_num=i; //給房間等級(jí)賦值 printf ("請(qǐng)輸入房間等級(jí)為%d的房間個(gè)數(shù):\n",p->lv_num); scanf ("%d",&l);

26、 //輸入該等級(jí)房間的數(shù)目 if (l==0) continue; else //初始化該房間的床位 { p2= (fangjian*)malloc(sizeof(fangjian)); p2->fj_num=1; printf ("請(qǐng)輸入房間等級(jí)為%d房間號(hào)為l的床位個(gè)數(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 ("請(qǐng)輸入房間等級(jí)為%d房間號(hào)為%d的床位的個(gè)數(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; //等級(jí)鏈表尾指針域?yàn)榭? system ("pause"); } (7) 打印客人信息 void Pr_divide(cus *p,fangjian *q) { printf ("*************************************************************\n\n"); printf (

29、" 賓館房間分配系統(tǒng) \n\n"); printf ("*************************************************************\n\n"); printf ("| | 性別 | 年齡 | 等級(jí)號(hào) | 房間號(hào) | 床位號(hào) | 入住時(shí)間 |\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"); } 四.程序截圖說(shuō)明 (1) 程序主菜單: (2) 錄入客人信息 〔3〕查詢客人信息 〔4〕統(tǒng)計(jì)業(yè)務(wù) 〔5〕 退房業(yè)務(wù) 五.分析總結(jié): 1. 出現(xiàn)問(wèn)題與解決方法: 剛開始,我

31、想賓館管理系統(tǒng)的算法和學(xué)生宿舍管理系統(tǒng)一樣,所以開始,我定義的結(jié)構(gòu)體數(shù)組,進(jìn)展編寫??墒窃诔跏蓟臅r(shí)候因?yàn)橘e館和宿舍的情況不一樣,而且數(shù)組大小也不能用變量來(lái)指示,所以在用數(shù)組進(jìn)展初始化的時(shí)候遇到了麻煩,有想到,如果用鏈表來(lái)編寫的話,不用定義鏈表的長(zhǎng)度,所以改用鏈表來(lái)編寫。 在客人入住的情況中,開始沒有設(shè)置頭結(jié)點(diǎn),寫到后面覺得不對(duì)勁,因?yàn)橛泻枚嗲闆r要進(jìn)展考慮,〔如:判斷是否客滿,是否需要的等級(jí)有空位等〕,所以又參加頭結(jié)點(diǎn)。在床頭分配的時(shí)候,因?yàn)闆]有設(shè)置床頭的頭結(jié)點(diǎn),所以要對(duì)第一個(gè)床位進(jìn)展特別判斷。然后進(jìn)展屢次修改,最終實(shí)現(xiàn)客人的入住。 退房更入住時(shí)候一樣,需要考慮很多情況,在床位回收的時(shí)候,

32、還是因?yàn)闆]有設(shè)置頭結(jié)點(diǎn),所以要對(duì)第一個(gè)床位進(jìn)展特別判斷,還有就是一開始我把那個(gè)輸入退房人的房間號(hào)和床位號(hào)的語(yǔ)句放在的循環(huán)體,出現(xiàn)了一次循環(huán)要輸入一次,后來(lái)經(jīng)過(guò)調(diào)試發(fā)現(xiàn)了問(wèn)題,移出來(lái)虹歐解決了這個(gè)問(wèn)題。 最后進(jìn)展住函數(shù)的界面編寫,查詢操作比擬簡(jiǎn)單,沒有出現(xiàn)什么問(wèn)題,由于自己不會(huì)文件的保存與讀取函數(shù)的編寫,所以沒有采取文件的存儲(chǔ)與讀取。 : 能夠很好的實(shí)現(xiàn)入住,查詢,統(tǒng)計(jì),退房等功能,但是不能實(shí)現(xiàn)文件的保存與讀取。 六.致: 轉(zhuǎn)眼間,八周的課程設(shè)計(jì)完畢了,感教師為我們提供的每周數(shù)次的到機(jī)房上機(jī)調(diào)試的機(jī)會(huì),在那里,教師將為我們解決各種難題,同學(xué)之間也可以相互討論,這才有了今天的成果,特別是

33、教師的寶貴的意見,給了我很大的啟示,同時(shí)也要感那些給予過(guò)我?guī)椭耐瑢W(xué)們。 七.源程序代碼 #include #include #include #include typedef struct customer //客人結(jié)構(gòu)體 { char name[15]; int age; int sex; int lv; int bed_num; int year; int month; int day; struct customer*

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 ("請(qǐng)輸入房間分為幾個(gè)等級(jí):\n"); scanf ("%d",&j); //輸入房間分為幾個(gè)等級(jí) q=L; for (i=1;inext=p; p->lv_nu

36、m=i; //給房間等級(jí)賦值 printf ("請(qǐng)輸入房間等級(jí)為%d的房間個(gè)數(shù):\n",p->lv_num); scanf ("%d",&l); //輸入該等級(jí)房間的數(shù)目 if (l==0) continue; else //初始化該房間的床位 { p2= (fangjian*)malloc(sizeof(fangjian)); p2->fj_num=1; printf ("請(qǐng)輸入房

37、間等級(jí)為%d房間號(hào)為l的床位個(gè)數(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 ("請(qǐng)輸入房間等級(jí)為%d房間號(hào)為%d的床位的個(gè)數(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; //等級(jí)鏈表尾指針域?yàn)榭? 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 ("| | 性別 | 年齡 | 等級(jí)號(hào) | 房間號(hào) | 床位號(hào) | 入住時(shí)間 |\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 ("請(qǐng)輸入旅客所需的房間等級(jí):"); scanf ("%d",&lv); while (l!=NULL) //等級(jí)不為空時(shí) { if (l->lv_num!=lv) l=l->next; else //有此等級(jí)時(shí) { p1=l->fj_next; while (p1!=NULL) //房間不為空 { if (p1->mem_num==p1->max) /

44、/是否有空床位 { p1=p1->next; if (p1==NULL) { getchar (); printf ("此等級(jí)為%d的所有房間均無(wú)空位\n是否愿意更好等級(jí)[y/n]",lv); scanf ("%c",&c); //選擇 if (c=='y') input (L); else return; } } else //客人信息登記 { //因?yàn)榇参粵]有設(shè)置頭結(jié)點(diǎn),所以對(duì)于第一個(gè)結(jié)點(diǎn)要特別判斷 if(p1->mem_num==0) { s=

45、(cus*)malloc(sizeof(cus)); printf ("\n---------------------------------\n"); printf ("\n 入住客人信息:"); printf("\n 請(qǐng)輸入客人的:"); scanf ("%s",s->name); printf("\n 請(qǐng)輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請(qǐng)輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n

46、請(qǐng)輸入客人入住的時(shí)間〔如: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、 請(qǐng)輸入客人的:"); scanf ("%s",s->name); printf("\n 請(qǐng)輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請(qǐng)輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請(qǐng)輸入客人入住的時(shí)間〔如: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 請(qǐng)輸入客人的:"); sca

50、nf ("%s",s->name); printf("\n 請(qǐng)輸入客人年齡:"); scanf ("%d",&(s->age)); printf ("\n 請(qǐng)輸入客人的性別〔如:男1;女0〕:"); scanf ("%d",&(s->sex)); printf ("\n 請(qǐng)輸入客人入住的時(shí)間〔如: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 ("請(qǐng)輸入該退房客人的房間等級(jí):\n"); scanf ("%d",&lv);

52、 //輸入退房人的房間等級(jí) getchar (); while (l!=NULL) { if (l->lv_num!=lv) l=l->next; else //找到該等級(jí) { f=l->fj_next; printf("請(qǐng)輸入退房客人的房間:\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("請(qǐng)輸入該客人的床位號(hào):\n"); scanf ("%d",&bed_num); //輸入退放入的床位號(hào) getchar (); while (q!=NULL) { if (q->bed_num!=bed_num) q=q->next; else //查找該床位 { if (bed_num==1) //因?yàn)榇参粵]有

54、設(shè)置頭結(jié)點(diǎn),所以對(duì)第一個(gè)結(jié)點(diǎn)要特別判斷 { //直接打印客人信息 printf ("此等級(jí)、此房間、此床位的客人信息為:\n"); printf ("改客人的信息為:\n"); printf ("\t性別\t年齡\t入住時(shí)間\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 ("此等級(jí)、此房間、此床位的客人信息為:\n"); printf ("改客人的信息

56、為:\n"); printf ("\t性別\t年齡\t入住時(shí)間\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 ("沒有找到該床位,請(qǐng)核對(duì)信息后重新輸入。\n"); } } } if (f==NULL) //如果該等級(jí)的房間為空 { printf ("沒有找到該房間號(hào),請(qǐng)從新輸入。\n"); } } } if (l==NULL) //如果等級(jí)鏈表為空 { printf ("沒有找到該房間等級(jí),請(qǐng)核對(duì)后輸入!\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 ("請(qǐng)輸入要查詢的客人:\n"); scanf ("%s",s); //輸入要查詢的客人 getchar (); l=L->ne

59、xt; while (l!=NULL) //等級(jí)不為空時(shí),走向房間 { f=l->fj_next; while (f!=NULL) //房間不為空時(shí),走向床位 { 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; //指向下一個(gè)人,繼續(xù)查找 flag++; //標(biāo)量加1 } else t=t->next; } f=f->next; } } l=l->next; } if (!flag) //標(biāo)志量為0,如此未查找到 { printf ("沒有找到該客人,請(qǐng)核對(duì)再輸入。\n"); system ("pause"); } }

61、 //統(tǒng)計(jì)函數(shù)與查詢函數(shù)根本類似 void tongji_cus (hotel_lv *L) //統(tǒng)計(jì)當(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 ("等級(jí)為%d的房間的入住人數(shù)為%d\n",i,flag); l=l->next; } if (!j) printf ("此時(shí)無(wú)人入住。\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) //進(jìn)入菜單項(xiàng)選擇項(xiàng) { system ("cls"); printf ("\n\n\n"); printf ("************************************************************\n"); printf ("*

64、 *\n"); printf ("* 歡迎進(jìn)入賓館客房管理系統(tǒng) *\n"); printf ("* *\n"); printf ("************************************************************\n"); printf ("*********工程學(xué)院 計(jì)算機(jī)學(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)計(jì)客人信息\n"); printf (" 0 退出系統(tǒng) \n"); printf (" 請(qǐng)選擇你要辦理的業(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: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!