




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
年4月19日C語(yǔ)言旅館信息管理系統(tǒng)文檔僅供參考/***題目:旅店信息管理系統(tǒng)**小組成員:閆若琳戴雨晨馬淵沐張子飛李闖王浩崔以博孫浩浩李春普溫健成*/#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#defineMIN1 #defineMAX30 #defineLENsizeof(structHotel) //用LEN代替結(jié)構(gòu)體的"長(zhǎng)度" voidregeist();voidout_information(); voidsearch_number(); voidshow_all(); voidsearch_name();voidchange(); voidfire(); structHotel*load();FILE*fp; structHotel { introom_number; charname[20]; charsex[10]; charID[20]; floatpaid[10]; intinyear; intinmonth; intinday; structHotel*next;};structHotel*load() //定義load函數(shù)讀取當(dāng)前的信息,并存到內(nèi)存鏈表中{ structHotel*head,*pb,*s; pb=(structHotel*)malloc(LEN);//開(kāi)辟新的節(jié)點(diǎn) s=(structHotel*)malloc(LEN); if((pb==NULL)||(s==NULL)) { printf("動(dòng)態(tài)內(nèi)存分配失敗!\n"); getch(); exit(0); } if((fp=fopen("resturant.txt","rb"))==NULL) { printf("無(wú)法打開(kāi)文件!\n"); getch(); exit(0); } head=pb; while(fread(s,LEN,1,fp))//讀取當(dāng)前的信息,并存到鏈表中 { pb->next=s; pb=s; s=(structHotel*)malloc(LEN); } pb->next=NULL; returnhead; //返回鏈表的頭指針}intmain() //崔以博、孫浩浩 {charchoice; do{printf("\n\n歡迎使用旅店信息管理系統(tǒng)\n\n"); printf("1.查看旅店信息\n2.查看某一房間信息\n3.查看旅客信息\n"); printf("4.查找某一旅客信息\n5.旅客入住\n6.旅客換房\n7.旅客退房\n8.退出\n"); printf("\n\n"); choice=getch(); switch(choice) { case'1':out_information();break; case'2':search_number();break; case'3':show_all();break; case'4':search_name();break; case'5':regeist();break; case'6':change();break; case'7':fire();break; case'8':exit(0);break; default:printf("Error!");break; } printf("\n\n請(qǐng)按任意鍵繼續(xù)!\n"); getch(); system("cls"); }while(1); return0;}voidout_information() //張子飛:定義out_information函數(shù),完成查看旅店信息功能{ FILE*fp; charch; if((fp=fopen("information.txt","r"))==NULL) { printf("無(wú)法打開(kāi)文件!\n"); getch(); exit(0); } ch=fgetc(fp); system("cls"); printf("\n\n\t\t\t旅店信息介紹:(若沒(méi)有信息請(qǐng)返回創(chuàng)立)"); printf("\n\n\n\t"); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } fclose(fp); }voidsearch_number() //李春普、溫健成:定義search_number函數(shù),用來(lái)完成查看某一房間的信息{ charch[2]; introom_number; structHotel*head,*pa; head=load(); printf("\n請(qǐng)輸入需要查看的房間序號(hào):(%d~%d):",MIN,MAX); scanf("%d",&room_number); pa=head->next; if(room_number<MIN||room_number>MAX) { printf("\a\nError!"); return; } do { if(pa) { if(room_number==pa->room_number) //如果找到相應(yīng)信息,則輸出 { printf("\n"); printf("roomnumber:\t%d",pa->room_number); printf("\n"); printf("name:\t\t%s",pa->name); printf("\n"); printf("sex:\t\t%s",pa->sex); printf("\n"); printf("ID:\t\t%s",pa->ID); printf("\n"); printf("paid:\t\t%s",pa->paid); printf("\n"); printf("%d%d%d",pa->inyear,pa->inmonth,pa->inday); printf("\n"); printf("\n請(qǐng)選擇是否繼續(xù)查看信息(y/n):\n"); scanf("%s",ch); if((strcmp(ch,"Y")!=0)&&(strcmp(ch,"y")!=0)) { return; } else { printf("\n請(qǐng)輸入需要查看的房間序號(hào):(%d~%d):",MIN,MAX); scanf("%d",&room_number); pa=head->next; if(room_number<MIN||room_number>MAX) { printf("無(wú)此房間!"); return; } continue; } } pa=pa->next; } else { printf("\n該房間還沒(méi)有旅客入住"); return; } }while(1);}voidshow_all() //戴雨晨:定義是show_all函數(shù),用來(lái)顯示所有旅客信息{ structHotel*head,*pa; head=load(); pa=head->next; printf("\n所有入住旅客的信息如下:\n"); while(pa) //顯示所有的旅客信息 { printf("\n"); printf("roomnumber:\t%d",pa->room_number); printf("\n"); printf("name:\t\t%s",pa->name); printf("\n"); printf("sex:\t\t%s",pa->sex); printf("\n"); printf("ID:\t\t%s",pa->ID); printf("\n"); printf("paid:\t\t%s",pa->paid); printf("\n"); printf("date:\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday); printf("\n"); pa=pa->next; }}voidsearch_name() //馬淵沐:定義search_name函數(shù),用來(lái)完成查看某一旅客的信息{ charch[2]; charinname[20]; //用數(shù)組inname[20]來(lái)儲(chǔ)存需要查詢(xún)的旅客name structHotel*head,*pa; head=load(); printf("\n請(qǐng)輸入需要查看的旅客姓名:"); scanf("%s",inname); pa=head->next; do { if(pa) { if(strcmp(inname,pa->name)==0) { printf("\n"); printf("roomnumber:\t%d",pa->room_number); printf("\n"); printf("name:\t\t%s",pa->name); printf("\n"); printf("sex:\t\t%s",pa->sex); printf("\n"); printf("ID:\t\t%s",pa->ID); printf("\n"); printf("paid:\t\t%s",pa->paid); printf("\n"); printf("date:\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday); printf("\n"); printf("\n請(qǐng)選擇是否繼續(xù)查看信息(y/n):\n"); scanf("%s",ch); if((strcmp(ch,"Y")!=0)&&(strcmp(ch,"y")!=0)) { return; } else { printf("\n請(qǐng)輸入需要查看的旅客姓名:"); scanf("%s",inname); pa=head->next; continue; } } pa=pa->next; } else { printf("\n沒(méi)有查到該旅客的信息"); return; } }while(1);}voidregeist() //閆若琳:定義regeist函數(shù)實(shí)現(xiàn)入住功能{ charch[2]; intnumber; structHotel*head,*p1,*p2,*pa; head=load(); pa=head->next; printf("\n已入住房間:\n"); while(pa) { printf("\n"); printf("roomnumber:\t%d",pa->room_number); pa=pa->next;} fclose(fp); if((fp=fopen("resturant.txt","a+"))==NULL) { printf("無(wú)法打開(kāi)文件!\n"); getch(); exit(0); } head=NULL; p1=(structHotel*)malloc(LEN); p2=(structHotel*)malloc(LEN); if((p1==NULL)||(p2==NULL)) { printf("動(dòng)態(tài)內(nèi)存分配失敗!\n"); getch(); exit(0); } printf("\n請(qǐng)登記入住信息!\n"); printf("請(qǐng)選擇房間號(hào)(%d~%d):",MIN,MAX); scanf("%d",&number); if(number<MIN||number>MAX) { printf("無(wú)此房間!"); return; } p1->room_number=number; //在該房間沒(méi)有旅客時(shí),登記入住 printf("name:\t"); scanf("%s",&p1->name); printf("sex:\t"); scanf("%s",&p1->sex); printf("ID:\t");scanf("%s",&p1->ID); printf("paid:\t"); scanf("%s",&p1->paid); printf("date(年月日空格隔開(kāi)):"); scanf("%d%d%d",&p1->inyear,&p1->inmonth,&p1->inday); p1->next=NULL; if(head==NULL) //將輸入的信息保存到鏈表 { head=p1; p2=p1; } else { p2->next=p1; p2=p1; } fwrite(p2,LEN,1,fp); fclose(fp);//將鏈表信息保存到磁盤(pán)文件 printf("\n請(qǐng)選擇是否繼續(xù)登記信息(y/n):"); //判斷是否繼續(xù)登記旅客信息 scanf("%s",ch); if((strcmp(ch,"y")!=0)) { printf("\n登記旅客入住信息成功!"); return(0); } elseregeist(); return; //登記完成后返回頭鏈表指針}voidchange()//李創(chuàng):定義change函數(shù)實(shí)現(xiàn)換房功能{ introom_number; intnewroom_number; structHotel*head,*pa,*L; head=load(); printf("\n請(qǐng)輸入需要換房的房間序號(hào):(%d~%d):",MIN,MAX); scanf("%d",&room_number); if(room_number<MIN||room_number>MAX) { printf("無(wú)此房間!"); getch(); return; } pa=head->next;do { if(pa) { if(room_number==pa->room_number) { printf("\n"); printf("roomnumber:\t%d",pa->room_number); printf("\n"); printf("name:\t\t%s",pa->name); printf("\n"); printf("sex:\t\t%s",pa->sex); printf("\n"); printf("ID:\t\t%s",pa->ID); printf("\n"); printf("paid:\t\t%s",pa->paid); printf("\n"); printf("date:\t\t%d%d%d",pa->inyear,pa->inmonth,pa->inday); printf("\n"); printf("\n請(qǐng)輸入需要換到的房間序號(hào):(%d~%d):",MIN,MAX); scanf("%d",&newroom_number); if(newroom_number<MIN||newroom_number>MAX) { printf("無(wú)此房間!"); getch(); return; } pa->room_number=newroom_number; break; } pa=pa->next; } else { printf("\n該房間還沒(méi)有旅客入?。n"); getch(); return; } }while(1); fclose(fp); if((fp=fopen("resturant.txt","wb"))==NULL) { printf("無(wú)法打開(kāi)文件!\n"); getch(); exit(0); } L=head->next; while(L) { fwrite(L,LEN,1,fp); L=L->next; } fclose(fp); printf("\n換房成功!"); return;}voidfire()//王浩:定義fire函數(shù)實(shí)現(xiàn)退房功能{ charinname[20]; //用數(shù)組inname[20]來(lái)儲(chǔ)存需要退房旅客name structHotel*head,*qian,*pa,*L; head=load(); qian=(structHotel*)malloc(LEN);//開(kāi)辟新的節(jié)點(diǎn) if(qian==NULL) { printf("動(dòng)態(tài)內(nèi)存分配失?。n"); //如果動(dòng)態(tài)內(nèi)存分配失敗,返回失敗信息 getch(); exit(0); } printf("\n請(qǐng)輸入需要退房的旅客姓名:"); scanf("%s",inname); pa=head->next; do { if(pa) { if(strcmp(innam
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能領(lǐng)域人才引進(jìn)措施
- 特殊學(xué)生遠(yuǎn)程教育幫扶措施
- 機(jī)電安裝施工進(jìn)度計(jì)劃和工期保證措施
- 2025高一下學(xué)期物理作業(yè)布置計(jì)劃
- 混凝土工程施工質(zhì)量驗(yàn)收措施
- 西師版五年級(jí)下冊(cè)數(shù)學(xué)學(xué)科競(jìng)賽計(jì)劃
- 2025幼兒園保教安全管理計(jì)劃
- 高校英語(yǔ)興趣小組比賽活動(dòng)計(jì)劃
- 中華師道視角的智慧校園建設(shè)范文
- 2025年職業(yè)技術(shù)院校教師培訓(xùn)計(jì)劃
- 人力資源 公司勞務(wù)派遣招聘流程及制度
- 降低住院患者壓力性損傷發(fā)生率
- 三年級(jí)上冊(cè)《貴州省生態(tài)文明城市建設(shè)讀本》小學(xué)中年級(jí)版教案
- 廣東省韶關(guān)市2023-2024學(xué)年八年級(jí)下學(xué)期期末歷史試題(解析版)
- 08D800-8民用建筑電氣設(shè)計(jì)與施工防雷與接地
- 福建省醫(yī)療機(jī)構(gòu)三伏貼醫(yī)療技術(shù)備案表
- JBT 14645-2023 低溫裝置用密封墊片 (正式版)
- DZ∕T 0213-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 石灰?guī)r、水泥配料類(lèi)(正式版)
- 2024年廣東省香港大學(xué)深圳醫(yī)院財(cái)務(wù)部崗位招聘歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 中國(guó)歷史地理智慧樹(shù)知到期末考試答案章節(jié)答案2024年北京大學(xué)
- 上冊(cè)《漢語(yǔ)拼音單韻母-a-o-e-i-u-ü》教學(xué)課件
評(píng)論
0/150
提交評(píng)論