C語言旅館信息管理系統(tǒng)_第1頁
C語言旅館信息管理系統(tǒng)_第2頁
C語言旅館信息管理系統(tǒng)_第3頁
C語言旅館信息管理系統(tǒng)_第4頁
C語言旅館信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

年4月19日C語言旅館信息管理系統(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);//開辟新的節(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("無法打開文件!\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("無法打開文件!\n"); getch(); exit(0); } ch=fgetc(fp); system("cls"); printf("\n\n\t\t\t旅店信息介紹:(若沒有信息請(qǐng)返回創(chuàng)立)"); printf("\n\n\n\t"); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } fclose(fp); }voidsearch_number() //李春普、溫健成:定義search_number函數(shù),用來完成查看某一房間的信息{ 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("無此房間!"); return; } continue; } } pa=pa->next; } else { printf("\n該房間還沒有旅客入住"); return; } }while(1);}voidshow_all() //戴雨晨:定義是show_all函數(shù),用來顯示所有旅客信息{ 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ù),用來完成查看某一旅客的信息{ charch[2]; charinname[20]; //用數(shù)組inname[20]來儲(chǔ)存需要查詢的旅客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沒有查到該旅客的信息"); 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("無法打開文件!\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("無此房間!"); return; } p1->room_number=number; //在該房間沒有旅客時(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(年月日空格隔開):"); 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);//將鏈表信息保存到磁盤文件 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("無此房間!"); 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("無此房間!"); getch(); return; } pa->room_number=newroom_number; break; } pa=pa->next; } else { printf("\n該房間還沒有旅客入?。n"); getch(); return; } }while(1); fclose(fp); if((fp=fopen("resturant.txt","wb"))==NULL) { printf("無法打開文件!\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]來儲(chǔ)存需要退房旅客name structHotel*head,*qian,*pa,*L; head=load(); qian=(structHotel*)malloc(LEN);//開辟新的節(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論