




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C 語 言 課 程 實 習 報 告所 在 院 系 : 班 級 學 號 : 姓 名 : 程序 已存檔 : 是 否 指 導 老 師 :趙 曼評 分 :二零一四年七月目錄1.題目與要求(1)2.功能實現設計(2)2.1總體設計 (2)2.2詳細設計 (2)2.2.1保存函數 (2)2.2.2讀取函數 (3)2.3 功能模塊設計(4)2.3.1 注冊模塊(4)2.3.2 統計模塊(5)2.3.3查詢模塊 (7)2.3.4修改模塊 (9)2.4主函數(11)3.上機操作(12)4.結束語(16)實習課題:客房管理系統1.題目與要求:實現登記功能,要提供結構體的輸入操作,實現統計功能,要提供相應的統計操作
2、,實現查詢功能,要提供查找操作,實現修改功能,要提供修改操作;另外還有提供鍵盤式菜單實現功能選擇。頭文件:#include<time.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#define NUM 50/定義常量NUMvoid input();void record();void find();void modify();int now_no;/定義全局變量now_no建立如下結構體:struct Client char name2
3、0; char sex10; int age; char ID_card20; int year; int month; int date; int Room_ID; char Tel15; int Price; char Sign10; RoomNUM;2.功能實現設計:2.1總體設計:下面來分析一下整個系統,根據上面的要求分析,可將這個系統設計為五大模塊(見下圖):注冊模塊,統計模塊,查詢模塊,修改模塊,退出模塊。其主要功能為:注冊,統計,查詢,修改功能。客房管理系統 系統系統 注冊統計 查詢修改退出2.2詳細設計: 程序中需要用到的函數。2.2.1保存函數用于將輸入的數據保存到文本文件客
4、戶信息.txt文件中,實現數據的保存void save()FILE *fp;int i;if (fp=fopen("客戶信息.txt","a+")=NULL)/*a+表示以讀和追加方式打開文件客戶信息.txt */printf("cannot open filen");return;for(i=0;i<Roomi.age!=0;i+)fprintf(fp,"%s %s %d %s %d %d %d %d %s %d %sn",R,Roomi.sex,Roomi.age,Roomi.ID_ca
5、rd,Roomi.year,Roomi.month,Roomi.date,Roomi.Room_ID,Roomi.Tel,Roomi.Price,Roomi.Sign);/按照規定的格式保存客戶信息fclose(fp); 2.2.2讀取函數將文本文件客戶信息.txt中的客戶個人信息讀取出來,從而實現統計、查詢以及修改的功能。void read()FILE *fp;int i;if(fp=fopen("客戶信息.txt","r")=NULL) printf("nCannot open filen");return; for(i=0;!f
6、eof(fp);i+)/!feof(fp)文件讀到結束時讀取停止fscanf(fp,"%s %s %d %s %d %d %d %d %s %d %sn",&R,&Roomi.sex,&Roomi.age,&Roomi.ID_card,&Roomi.year,&Roomi.month,&Roomi. date,&Roomi.Room_ID,&Roomi.Tel,&Roomi.Price,&Roomi.Sign,&now_no); fclose(fp); 2.3
7、功能模塊設計2.3.1 注冊模塊用于完成客戶個人信息的輸入功能并保存。本函數的功能為登記用戶及房間信息,包括姓名、性別、年齡、身份證、年份、月份、日期、房間電話及房間價格。系統依次分配房間號并定義此房間為非空。void input()int i=0,right,num;char as,sex10;printf("顧客人數:");scanf("%d人",&num);/輸入顧客的人數doprintf("tttt1.錄入賓客信息n輸入第%d賓客的信息n",i+1);printf("n輸入賓客姓名:");gets(
8、R);doprintf("n輸入賓客性別:");scanf("%s",&sex);if(strcmp(sex,"男")!=0&&strcmp(sex,"女")!=0)/*判斷輸入的字符是否為“男”或“女”,否則輸出“輸入有誤!”*/printf("輸入有誤!");right=1;getchar();else right=0;strcpy(Roomi.sex,sex);while(right=1);printf("n輸入賓客的年齡:")
9、;scanf("%d",&Roomi.age);printf("n輸入賓客身份證號:");scanf("%s",&Roomi.ID_card);printf("n輸入賓客入住時間:");scanf("%d",&Roomi.year);scanf("%d",&Roomi.month);scanf("%d",&Roomi.date);printf("n輸入賓客房間號:");scanf("%d
10、",&Roomi.Room_ID);printf("n輸入賓客房間電話:");scanf("%s",&Roomi.Tel);printf("n輸入賓客房間價格:");scanf("%d",&Roomi.Price);printf("n輸入該房間是否入住(yes/no):");scanf("%s",&Roomi.Sign);/輸入客戶的個人信息printf("nn");i+;now_no=i;printf("
11、;是否繼續輸入?(Y/N)");/判斷是否繼續輸入as=getch();system("cls"); save();while(as!='n'&&as!='N');system("cls");/清屏2.3.2 統計模塊用于統計總共入住的人數,并且可以統計某一天住了多少人以及收入多少。void record()int i,j,y,m,d,s=0,money=0;char as;int n=0;read();doprintf("n客房入住總數: ");fflush(stdin);f
12、or(j=0;Roomj.age!=0;j+)n=n+1;printf("%d間n",n);/統計一共入住的人數printf("輸入查詢日期: "); /按照日期統計入住人數及收入scanf("%d%d%d",&y,&m,&d);fflush(stdin);for(i=0;i<=NUM;i+)if(Roomi.year=y)&&(Roomi.month=m)&&(Roomi.date=d)/判斷輸入的日期與數據庫中的哪些日期相同s=s+1;money=money+Roomi
13、.Price;printf("n 姓名:%sn 性別:%sn 年齡:%dn 身份證號:%sn 入住時間:%d年%d月%d日n 房間號碼:%dn 電話號碼:%sn 價格:%dn 是否入住:%sn",R,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.year,Roomi.month,Roomi.date,Roomi.Room_ID,Roomi.Tel,Roomi.Price,Roomi.Sign);printf("n該天客房入住總數: %d人n",s); printf("該天共收入%d元n&quo
14、t;,money);printf("t按任意鍵返回主菜單.");as=getch();system("cls");while(!as);system("cls");2.3.3查詢模塊本函數的功能為輸出查詢功能菜單選項,包括根據房間號查詢、根據姓名查詢。系統根據輸入的選項執行相應的函數。void find()int i,a,b;char str20,as;read ();doprintf("n按以下條件查詢:1.姓名 2.房間號 3.返回主菜單n請選擇:");scanf("%d",&a);
15、switch(a)case 1:doprintf("輸入要查詢的賓客姓名:");fflush(stdin);gets(str);for(i=0;i<NUM;i+)if(!strcmp(R,str)printf("n 姓名:%sn 性別:%sn 年齡:%dn 身份證號:%sn 入住時間:%d年%d月%d日n 房間號碼:%dn 房間電話:%sn 房間價格:%dn 該房間是否入住(yes/no)%snn",R,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.year,Roomi.mont
16、h,Roomi.date,Roomi.Room_ID,Roomi.Tel,Roomi.Price,Roomi.Sign);else;while(!as);break;case 2:doprintf("輸入要查詢的房間號:");scanf("%d",&b);for(i=0;i<NUM;i+)if(Roomi.Room_ID=b)printf("n 姓名:%sn 性別:%sn 年齡:%dn 身份證號:%sn 入住時間:%d年%d月%d日n 房間號碼:%dn 房間電話:%sn 房間價格:%dn 該房間是否入住(yes/no)%snn&q
17、uot;,R,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.year,Roomi.month,Roomi.date,Roomi.Room_ID,Roomi.Tel,Roomi.Price,Roomi.Sign);else;while(!as);break;case 3:system("exit");default:break;printf("是否繼續查詢?(Y/N)n");as=getch();while(as!='n'&&as!='N');system(
18、"cls");2.3.4修改模塊本函數的功能為系統根據輸入的姓名調出該用戶及所在房間信息,同時輸出修改功能菜單選項,包括修改性別、修改年齡、修改入住年份、修改月份及修改日期等。系統根據輸入的選項修改用戶相應的信息。void modify()int i,x;char str20,as;printf("輸入要修改的賓客姓名:");scanf("%s",&str);read ();do for(i=0;Roomi.age!=0;i+)if(!strcmp(R,str)system("cls");
19、printf("n 姓名:%sn 性別:%sn 年齡:%dn 身份證號:%sn 入住時間:%d年%d月%d日n 房間號碼:%dn 電話號碼:%sn 價格:%dn 是否入住:%snn",R,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.year,Roomi.month,Roomi.date,Roomi.Room_ID,Roomi.Tel,Roomi.Price,Roomi.Sign);printf("請選擇要修改的內容:n1.姓名 tt2.性別 tt3.年齡 tt4.身份證號 n5.入住時間 t6.房間號 t7.客
20、房電話 t8.價格n請選擇:");/按照不同的選擇修改相應的內容scanf("%d",&x);switch(x)case 1:printf("ntt輸入新插入賓客信息n");printf("n輸入賓客姓名:");scanf("%s",R);break;case 2:printf("n輸入賓客性別:");scanf("%s",&Roomi.sex);break;case 3:printf("n輸入賓客的年齡:");
21、scanf("%d",&Roomi.age);break;case 4:printf("n輸入賓客身份證號:");scanf("%s",&Roomi.ID_card);break;case 5:printf("n輸入賓客入住時間:");scanf("%d",&Roomi.year);scanf("%d",&Roomi.month);scanf("%d",&Roomi.date);break;case 6:printf
22、("n輸入賓客房間號:");scanf("%d",&Roomi.Room_ID);break;case 7:printf("n輸入賓客房間電話:");scanf("%s",&Roomi.Tel);break;case 8:printf("n輸入賓客房間價格:");scanf("%d",&Roomi.Price);case 9:system("exit");default:system("cls");printf(
23、"n");save();printf("n 姓名:%sn 性別:%sn 年齡:%dn 身份證號:%sn 入住時間:%d年%d月%d日n 房間號碼:%dn 電話號碼:%sn 價格:%dn 是否入住:%sn",R,Roomi.sex,Roomi.age,Roomi.ID_card,Roomi.year,Roomi.month,Roomi.date,Roomi.Room_ID,Roomi.Tel,Roomi.Price,Roomi.Sign);break;as=getch();while(!as);system("cls"
24、);24主函數顯示各功能選項根據 n的值調用各功能模塊函數NY輸入n ,判斷n 是否是0-5void main()int as;start:doprintf("t*");printf("ntt歡迎使用客房管理系統n");printf("ntt| 1.錄入賓客信息 |ntt| 2.統計賓客信息 |ntt| 3.查詢賓客信息 |ntt| 4.修改賓客信息 |ntt| 5.退出 |n");printf("t*n");printf("tt選擇功能選項: ");/選擇語句用于選擇不同的模塊fflush(s
25、tdin);scanf("%d",&as);switch(as)case 1:system("cls");input();break;case 2:system("cls");record();break;case 3:system("cls");find();break;case 4:system("cls");modify();break;case 5:system("exit");exit(0);default:system("cls");g
26、oto start;while(1); 3.上機操作下面事各個模塊的界面圖:3.1主菜單3.2錄入信息模塊3.3統計模塊 3.4查詢模塊3.4.1按姓名查找3.4.2按房間號查找3.5修改模塊3.6退出3.7文本數據4.結束語通過此次實習,我們更加理解和懂得運用結構化程序設計的思想和方法,初步掌握開發一個小型實用系統的基本方法,學會調試一個較長程序的的基本方法,學會利用流程圖表示算法,進一步掌握和提高利用C語言進行程序設計的能力。在實習中遇到了許多的調試不出結果出乎意料的問題。在調試的過程中,得到了許多以后可以避免錯誤的經驗。也得到了很多沒有接觸過的知識。這些都使我獲益匪淺。C語言是一門計算機語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農村家庭農場租賃協議
- 廠房出售居間服務費協伐協議
- 臨川區城市發展投資集團有限公司等3家區屬國企2025年公開招聘員工【15人】筆試參考題庫附帶答案詳解
- 2025福建省泉州鳳棲實業有限責任公司社會招聘17人筆試參考題庫附帶答案詳解
- 紡織工程師技術創新的重要性試題及答案
- 藥物銷售考試題及答案
- 出機票合同協議書
- 合同協議書圖片
- 雙人合同協議書
- 情侶合同協議書
- 工會乒乓球比賽競賽規程
- qpq處理工藝流程
- 經典美味的手抓飯
- 體育產業與生態環境的共同保護
- 讀后續寫制作稻草人(T8聯考)講義-高考英語作文復習專項
- 食堂員工培訓內容-食堂從業人員培訓資料
- 基于文化創意視角的媽祖文化旅游地產發展研究莆田媽祖文化旅游地產發展條件及思路研究
- 七年級上冊語文人教版全冊文言文全文詳解及翻譯
- 北師大小學數學小升初《簡便運算》復習課件
- 三相異步電動機的電力拖動課件
- 中央新疆稅收政策解讀
評論
0/150
提交評論