




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)與C語言綜合訓(xùn)練實(shí)習(xí)報(bào)告信息工程學(xué)院數(shù)據(jù)結(jié)構(gòu)與C語言綜合訓(xùn)練報(bào)告 (20122013學(xué)年第 二學(xué)期)報(bào)告題目:旅店收款POS機(jī)管理系統(tǒng) 姓 名:郝勇專 業(yè):信息年級班級: 121完成日期:2013/7/20一、綜合訓(xùn)練目的和要求本綜合訓(xùn)練是計(jì)算機(jī)科學(xué)與技術(shù)、信息管理與信息系統(tǒng)、軟件工程、電子商務(wù)專業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完程序設(shè)計(jì)語言(C)、數(shù)據(jù)結(jié)構(gòu)課程后進(jìn)行的一次全面的綜合練習(xí)。本課綜合訓(xùn)練的目的和任務(wù):1. 鞏固和加深學(xué)生對C語言、數(shù)據(jù)結(jié)構(gòu)課程的基本知識的理解和掌握2. 掌握C語言編程和程序調(diào)試的基本技能3. 利用C語言進(jìn)行基本的軟件設(shè)計(jì)4. 掌握書寫程序設(shè)計(jì)說明文檔的
2、能力5. 提高運(yùn)用C語言、數(shù)據(jù)結(jié)構(gòu)解決實(shí)際問題的能力二、綜合訓(xùn)練任務(wù)內(nèi)容1前臺管理:包括空房分等級顯示、入住登記、退房結(jié)算、洗衣房管理和娛樂項(xiàng)目管理;2后臺管理包括客房預(yù)定分析、營業(yè)額統(tǒng)計(jì),報(bào)表; 3設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)文件來實(shí)現(xiàn)數(shù)據(jù)庫管理,包括數(shù)據(jù)錄入、查詢、刪除、修改、更新。三、總體設(shè)計(jì)1.程序設(shè)計(jì)組成框圖:界 面信息整合錄入顧客信息后臺處理信息查詢與處理旅店信息2. 程序運(yùn)行流程圖:四、詳細(xì)設(shè)計(jì)說明函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等(分模塊逐一說明函數(shù)功能、入口及出口參數(shù),函數(shù)調(diào)用關(guān)系描述等)1.此系統(tǒng)可以設(shè)計(jì)要求:前臺管理:包括空房分等級顯示、入住登記、退房結(jié)算、洗衣房娛樂項(xiàng)目管
3、理;后臺管理包括客房預(yù)定分析、營業(yè)額統(tǒng)計(jì)、營業(yè)史報(bào)表);設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)文件來實(shí)現(xiàn)數(shù)據(jù)庫管理,包括數(shù)據(jù)錄入、查詢、刪除、修改、更新。2.功能簡易介紹:錄入:a、判斷存儲上次保留的文件是否有未退房的旅客,有則錄入到當(dāng)前旅客列表b、顧客基本信息的錄入及存儲,選房間時(shí)候要考慮到房間是否已經(jīng)被使用和是否存在該房間號,所選房間星級,身份證,電話等;.顧客基本信息的刪除與修改,與信息錄入存儲緊密聯(lián)系。要考慮到顧客之信息是否存在,是否允許刪除,以及刪除與修改后房間的剩余量等房間信息的隨之改變.顧客是否需要其他服務(wù),如早中晚餐,洗衣,娛樂項(xiàng)目,并且加以計(jì)費(fèi)。.后臺服務(wù)臺對任意顧客信息的查詢,當(dāng)前旅店信息的查詢(房
4、間使用情況,營業(yè)史等.顧客選擇退房,并且記錄下來,結(jié)算現(xiàn)金,刪除其信息.退出時(shí)提示當(dāng)前信息可能丟失,是否選擇保存,或是回到主菜單取消退出三個(gè)頭文件#include "c1.h"#include "definition.h"#include "fun.h"3.定義(包含在definition.h的頭文件里typedef struct passenger char name20; int roomnum;此結(jié)構(gòu)體定義了旅客的基本信息,包括姓名、房間號、房間等級、電話、身份證號碼、消費(fèi)量 int star; char ID20; char
5、tel20; int money;ElemType;此結(jié)構(gòu)體定義了各個(gè)等級客房的基本信息,包括3、4、5星級的客房價(jià)格,總房間數(shù),剩余房間數(shù) struct Rooms int price; int num; int remain_num; room3 ,room4 ,room5 struct rooms此結(jié)構(gòu)體定義了300個(gè)客房的基本信息,3、4、5星級的客房各100間,房間號碼都初始化為0,房間的標(biāo)識符也都初始化為0 int room_300; int flag_room;allroom301=0,0; struct LNode 此結(jié)構(gòu)體定義鏈表的結(jié)構(gòu) ElemType data; LNod
6、e *next; ; typedef LNode *LinkList;4.部分主要函數(shù)(包含在fun.h的頭文件里)void welcome()打開軟件的歡迎界面,任意鍵可以進(jìn)入使用界面。void desktop()顯示菜單的界面,具有一定的的美觀性。菜單的選項(xiàng)一目了然,從鍵盤輸入正確菜單選項(xiàng)即可運(yùn)行,輸入非法或錯(cuò)誤選項(xiàng)時(shí),會有親情提示void do_rooms300(void)再次初始化300間房,具體是將房間號分別命名為1、2、3299、300,使其恰好是結(jié)構(gòu)體數(shù)組allroom300的下標(biāo),對后面的房間信息處理提供便利Status InitList(LinkList &L)定義全
7、局變量的鏈表指針L后,在主函數(shù)首先將其初始化,建立空的鏈表,用于存儲所有旅客的信息Status read_left_info(LinkList &L) 每一次打開軟件時(shí),此函數(shù)用于讀取文件(上次退出時(shí)保存的未退房旅客的信息)里的數(shù)據(jù),如果上次退出沒有保存旅客信息或是沒有未退房旅客信息需要保存,此函數(shù)講不執(zhí)行Status out(LinkList L)選擇退出系統(tǒng)時(shí)的提示函數(shù),如果有未退房旅客,此函數(shù)會提示用戶直接退出會丟失信息,可以選擇保存在退出,以便下次使用系統(tǒng)時(shí)讀?。╮ead_left_info函數(shù)讀?。㏒tatus create(LinkList &L)創(chuàng)建旅客信息的函數(shù)
8、,有旅客需要住房,需要錄入各種旅客信息,以及選擇幾星級房間和房間號,如果輸入房間等級和房間號不合法會有提示,如果輸入的房間號已經(jīng)在使用之中,也會有“此房間已被使用”的提示,完全正確輸入后自動返回主菜單Status deleteroom(LinkList &L)刪除某客房信息的函數(shù),在有必要時(shí)舍棄某些信息,次信息直接從當(dāng)前鏈表刪除,不存儲到文件(不同于outroomnum函數(shù))Status outroomnum (LinkList &L)選擇某房間號的退房處理,退房時(shí)會有收取旅客費(fèi)用(基礎(chǔ)客房費(fèi)用和額外的消費(fèi))的提示,將其從鏈表刪除節(jié)點(diǎn),成功退房后,還會將旅客信息存入文件,已被將
9、來查找住房記錄或營業(yè)額統(tǒng)計(jì)Status researchroomnum(LinkList L)查找并查看某客房的信息,若是空房,或非法輸入會有提示Status changeroomnum(LinkList &L)改變旅客信息的函數(shù),需要重新輸入次客房旅客的信息,修改時(shí)其住房消費(fèi)會改變,如果更改房間等級,房間不同等級的剩余量以及其他相關(guān)信息亦會隨之更新Status allInfoPrint(LinkList L,void(*vi)(ElemType)用于查看當(dāng)前所有已用房間及住客的基本信息Status othercost(LinkList &L)旅客可以選擇在旅館的其他消費(fèi),如用
10、餐、洗衣、娛樂和購買生活用品等,并收取費(fèi)用(可在消費(fèi)前退出消費(fèi))Status InfoCon(LinkList L)查看其他信息:查找所有旅客:顯示出所有旅客姓名;查找所有客房信息:提供所有客房信息,各等級房間的使用量剩余量,已使用、未使用的房間號,以及各個(gè)房間所在的樓層;查找未收房費(fèi)及其房間號及未收費(fèi)的總額;查找營業(yè)業(yè)務(wù)史,以表格的形式顯示過去營業(yè)的總報(bào)表(退房時(shí)再次存儲記錄),總營業(yè)額。5.Main函數(shù)中的循環(huán):用循環(huán)來進(jìn)行多次菜單項(xiàng)的選擇操作,直到退出 do 輸入菜單選項(xiàng)k; switch(k) case 0: if(out(L)=2) continue; printf("nt
11、t已退出系統(tǒng)-謝謝使用"); exit(0); case 1: create(L); break; case 2: outroomnum(L); break; case 3: researchroomnum(L); break; case 4: changeroomnum(L); break; default : printf("無此選項(xiàng),請重新輸入n"); printf("a"); break; /switch /do while(k!=0);五、軟件使用說明開始運(yùn)行軟件,進(jìn)入歡迎界面,出現(xiàn)pos機(jī)的圖形,有提示任意鍵可進(jìn)入使用狀態(tài),如圖所示
12、: 進(jìn)入菜單界面出現(xiàn)簡明的菜單選項(xiàng)(可能會有這在錄入的提示,這是上次退出儲存了一些未退房的旅客,此次打開系統(tǒng)會自動讀取,如下圖:)。進(jìn)入菜單,可以進(jìn)行菜單選擇,如選擇1,及進(jìn)行來客信息錄入(在錄入房間等級和房間號時(shí)會有嚴(yán)格的要求,任何錯(cuò)的操作都會有提示,所以提供的應(yīng)有的提示信息,如上圖所示:)其他菜單選項(xiàng),如查找,要求輸入正確的房間號(1300)查看當(dāng)前房間信息,未登記房間會有“此房間未使用”提示。如下圖:。其他查詢信息:如圖所示為查找4項(xiàng)中的未收費(fèi)用,及當(dāng)前所有住客住房及其費(fèi)用,然后統(tǒng)計(jì)總費(fèi)用:菜單選項(xiàng)7供旅客其他生活的消費(fèi),可選擇房間號進(jìn)入消費(fèi)狀態(tài),或是退出,輸入有效的房號會有次旅客基本信
13、息的顯示,并提供消費(fèi)選擇及其價(jià)格(此時(shí)亦可退出消費(fèi)),如圖:查看6.2選項(xiàng)時(shí)會有所有客房信息的輸出,所有客房信息,各等級房間的使用量、剩余量,已使用、未使用的房間號,以及各個(gè)房間所在的樓層,使用中的房間號在樓層中顯示“x x”,如上圖:查看6.2選項(xiàng)會輸出所有歷史住客記錄(包括以前使用軟件是進(jìn)行退房操作的對象),此信息存在txt文件里,便于以后查看。最后還會顯示住房房次,總營業(yè)額。選項(xiàng)0退出時(shí)會對當(dāng)前客房信息進(jìn)行檢索如有未退房者(存貯旅客信息的鏈表不為空),如果為空直接退出,否則顯示如下圖:如果選擇舍棄信息,會有如圖1提示,此時(shí)防止信息丟失可選擇返回(主菜單) 當(dāng)然若再次確認(rèn)舍棄,就會退出程序
14、,丟失信息(可能是無用的信息,否則盡量選擇存儲在退出,如下2圖)圖1圖2尚有其他功能再次簡單補(bǔ)充說明(無圖),退房選項(xiàng):退房時(shí)會要求輸入對的房間號,提示收取費(fèi)用,并將其信息存入文件,以備后期使用軟件查看歷史用房記錄報(bào)表。修改信息:輸入客房號,重新寫入次旅客信息,重新選房,其相關(guān)信息,如因房間等級變化消費(fèi)的變化,旅店客房不同等級剩余量的改變等(此些改變都可以在信息查詢顯示中看到信息輸出的變化)。等等其他功能六、調(diào)試與測試實(shí)習(xí)過程中所得經(jīng)驗(yàn)教訓(xùn)和所學(xué)到的處理問題的新知識如下:在使用庫函數(shù)時(shí),要注意正確的拼寫,有些錯(cuò)誤的拼寫是沒有錯(cuò)誤提示的,但是在編譯時(shí)就會出現(xiàn)錯(cuò)誤的結(jié)果,往往難以查找錯(cuò)誤所在,如:
15、把default寫錯(cuò)不會有提示錯(cuò)誤,但是編譯時(shí)達(dá)不到預(yù)想效果。還有就是處理字符型誤輸入為字符型導(dǎo)致程序出錯(cuò)或陷入死循環(huán)的情況(可參考7-14的日志)運(yùn)用循環(huán)語句塊:do printf("請進(jìn)行菜單選項(xiàng):"); do if(scanf("%d",&k) != 1) printf("無此選項(xiàng),請重新輸入n"); fflush(stdin); continue; else break; while(1);判斷語句if(scanf("%d",&k) != 1)的意思是如果輸入的數(shù)據(jù)類型不是整型數(shù)就執(zhí)行下面的
16、語句,這是因?yàn)閟canf(“%d”,&k);在正確使用時(shí)返回值為1,輸入錯(cuò)誤返回值為0.注意“=”和“=”的正確使用,雖然這是個(gè)很簡單的問題,但是好多人都有混淆使用的情況!在編寫changeroom函數(shù)時(shí),需要改變相關(guān)等級房間remain_num(房間剩余量)大小,就要在輸入所需改變房間號時(shí)先讓當(dāng)前所在房間的remain_num-;輸入改變后的房間等級再讓所在等級的remain_num+;至于消費(fèi)的改變要用到小算法:【更新后的消費(fèi)=(更新后的等級-之前的房間等級)*50 + 更前后的消費(fèi)】這是因?yàn)?,4,5星級房間相鄰等級差價(jià)都是50元。在處理界面交換(每一次操作周后回到主菜單),用到
17、:system("cls"):清除屏幕所有內(nèi)容;easydesktop():重新顯示界面。把他們放到主函數(shù)的do-while循環(huán)里即可七、工作日志2013-7-12周五今天是實(shí)習(xí)的day1,看著剛拿到的實(shí)習(xí)訓(xùn)練題:旅店收款POS機(jī)管理系統(tǒng),心里充滿了期待,期待實(shí)習(xí)過程中解決問題的那種爽的感覺,期待自己10天后的成果,期待10天后就可以回家鄉(xiāng)了!此題的要求很實(shí)用,因此我才選了它:1)前臺管理:包括空房分等級顯示、入住登記退房、洗衣房和娛樂項(xiàng)目的管理;2)后臺管理包括客房預(yù)定分析、營業(yè)額統(tǒng)計(jì)、營業(yè)史報(bào)表;3)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)文件來實(shí)現(xiàn)數(shù)據(jù)庫管理,包括數(shù)據(jù)錄入、查詢、刪除、修改、更新
18、今天的任務(wù)就是熟悉項(xiàng)目要求規(guī)劃自己的設(shè)計(jì)要求,不過還是簡簡單單開始了編程之旅,設(shè)計(jì)一個(gè)簡單的界面先,先要給人以美的印象。2013-7-13周六實(shí)習(xí)day2,要對自己的程序有個(gè)大致的設(shè)計(jì)吧,不然函數(shù)會無從下手的:1錄入:a、判斷存儲上次保留的文件是否有未退房的旅客,有則錄入到當(dāng)前旅客列表;b、顧客基本信息的錄入及存儲,選房間時(shí)候要考慮到房間是否已經(jīng)被使用和是否存在該房間號,所選房間星級,身份證,電話等;2.顧客基本信息的刪除與修改,與信息錄入存儲緊密聯(lián)系。要考慮到顧客之信息是否存在,是否允許刪除,以及刪除與修改后房間的剩余量等房間信息的隨之改變3.顧客是否需要其他服務(wù),如早中晚餐,洗衣,娛樂項(xiàng)目
19、,并且加以計(jì)費(fèi)。 4.后臺服務(wù)臺對任意顧客信息的查詢,當(dāng)前旅店信息的查詢(房間使用情況,營業(yè)史等)5.顧客選擇退房,并且記錄下來,結(jié)算現(xiàn)金,刪除其信息。6、退出時(shí)提示當(dāng)前信息可能丟失,是否選擇保存,或是回到主菜單取消退出有了大致的規(guī)劃就知道接下來幾天要干什么了,可能有些功能的實(shí)現(xiàn)會遇到棘手的問題,在自己的努力和同學(xué)指導(dǎo)老師的幫助下,一定都能實(shí)現(xiàn)!2013-7-14周日Day3開始真正的編程用do-while循環(huán)為主體寫出來主函數(shù)的框架,是對菜單欄選擇重復(fù)多次使用的保障,還有就是創(chuàng)建creat函數(shù),在此期間遇到的最大問題就是如何處理允許輸錯(cuò)的情況,經(jīng)過一天的學(xué)習(xí),得到了1種解決方案:把選項(xiàng)的數(shù)字
20、定義成整型數(shù) do printf("請進(jìn)行菜單選項(xiàng):"); do if(scanf("%d",&k) != 1) printf("無此選項(xiàng),請重新輸入n"); fflush(stdin); continue; else break; while(1); /處理誤輸入字符的情況此循環(huán)語句解決了,數(shù)字類型的數(shù)字誤輸入為字符而使程序出現(xiàn)錯(cuò)誤的情況,在通過switch選擇語句對數(shù)字處理,無此數(shù)字選項(xiàng)用default:continue;break;即可從新循環(huán)。2013-7-15周一:Day4要進(jìn)行大量函數(shù)的編寫:首先完善界面:void
21、 welcome();void desktop();建立存儲信息的鏈表:Status InitList(LinkList &L);繼續(xù)做建立信息的函數(shù),畢竟里面有很多小問題: Status create(LinkList &L) ;刪除信息的函數(shù),很簡單的:Status deleteroom(LinkList &L) ;查找旅客信息的函數(shù):Status researchroomnum(LinkList L);此外對昨天的問題找到解決方案2:把選項(xiàng)的數(shù)字定義成整型數(shù),再用清除緩存函數(shù)fflush(stdin);但是這種方案的缺點(diǎn)就是:如果輸入選項(xiàng)為1,輸入”12334.”
22、,亦可以通過,這是因?yàn)槭紫茸x取的“1”,再清除緩存,1是符合選項(xiàng)要求的,所以本人不提倡此種方案。2013-7-16周三實(shí)習(xí)day5開始有了疲憊的感覺,還好明天就可以休戰(zhàn)了,繼續(xù)堅(jiān)持些函數(shù):改變旅客信息:Status changeroomnum(LinkList &L) ;所有信息輸出:Status allInfoPrint(LinkList L,void(*vi)(ElemType);其他信息統(tǒng)計(jì): Status InfoCon(LinkList L);消費(fèi):Status othercost(LinkList &L);2013-7-18周四Day6狀態(tài)良好,主要的函數(shù)都實(shí)現(xiàn)了,計(jì)劃添加文件操作,復(fù)習(xí)一下上學(xué)期的知識,完善退房的功能:退房時(shí)把信息存入文本文件;再完善打開退出軟件的功能:退出提示信息的存儲到文本文件,打開時(shí)自動錄入文本文件的數(shù)據(jù)。2013-7-19周五Day7進(jìn)行調(diào)試,找出還有什么不完美的地方,不過沒啥問題了,很好。2013-7-20周六終于快結(jié)束了,day8要開始寫實(shí)踐報(bào)告,總結(jié)和展示自己的成果,順便與同學(xué)交流心得
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 14刷子李(教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版語文五年級下冊
- 公主病人測試試題及答案
- 2024秋七年級英語下冊 Module 6 Around town Unit 2 The London Eye is on your right教學(xué)設(shè)計(jì) (新版)外研版
- 深入了解珠寶鑒定的機(jī)器技術(shù)試題及答案
- 公共事業(yè)管理考試心理調(diào)整試題及答案
- 未來的暢想(教學(xué)設(shè)計(jì))-2023-2024學(xué)年贛美版美術(shù)三年級下冊
- 三年級道德與法治下冊 第一單元 我和我的同伴 4同學(xué)相伴教學(xué)設(shè)計(jì) 新人教版
- 食品儲存安全考題及答案
- 2024-2025學(xué)年高中物理 第七章 機(jī)械能守恒定律 10 能量守恒定律與能源教學(xué)設(shè)計(jì) 新人教版必修2
- 澳洲本科面試試題及答案
- 532近代前夜的危機(jī)
- 物理人教版(2019)必修第二冊5.2運(yùn)動的合成與分解(共19張ppt)
- 病原微生物實(shí)驗(yàn)室生物安全備案專家意見表
- 中國航信離港系統(tǒng)講義
- 6000m3內(nèi)浮頂油罐設(shè)計(jì)
- 食堂管理考核評分表
- (精心整理)朱德熙_說 “的”
- 《雷鋒叔叔,你在哪里》說課稿(附優(yōu)質(zhì)教案)
- 日語N5閱讀理解
- 醫(yī)院住院病歷質(zhì)量檢查評分表
- 板式樓梯計(jì)算表
評論
0/150
提交評論