數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、科技大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目停車場管理器設(shè)計院系信息工程學(xué)院專業(yè)計算機科學(xué)與技術(shù)姓名馬小強學(xué)號1167111103指導(dǎo)教師康懿2013年7月5日科技大學(xué)課程設(shè)計任務(wù)書課程名稱數(shù)據(jù)結(jié)構(gòu)課程設(shè)計設(shè)計題目停車場管理器設(shè)計指導(dǎo)教師康懿時間2013.6.242013.7.5一、教學(xué)要求掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法 和作風二、設(shè)計資料及參數(shù)每個學(xué)生在教師提供的課程設(shè)計

2、題目中任意選擇一題,獨立完成,題目選定后不可更換。停車場管理器設(shè)計以結(jié)構(gòu)體類型表示停車時間和車輛信息,在此基礎(chǔ)上借助棧完成對車輛的入場和出場操作, 借助隊列完成輔助停車場便道,即存放等待入場車輛或輔助車場中的某輛車出場。要求設(shè)計類(或類模板)來描述棧、隊列、停車場及其操作,包含必要的構(gòu)造函數(shù)和析構(gòu) 函數(shù),以及其他能夠完成如下功能的成員函數(shù):壓棧、退棧入隊列、出隊列車輛到場(有車位即入場,否則入便道等待)、車輛出場(任意位置車輛均可出場)查詢車輛信息、輸出停車場(包括停車位和便道的車輛)并設(shè)計主函數(shù)測試該類。三、設(shè)計要求及成果分析課程設(shè)計題目的要求寫出詳細設(shè)計說明編寫程序代碼,調(diào)試程序使其能正確

3、運行設(shè)計完成的軟件要便于操作和使用設(shè)計完成后提交課程設(shè)計報告四、進度安排資料查閱與討論(1天)系統(tǒng)分析(2天)系統(tǒng)的開發(fā)與測試(5天)編寫課程設(shè)計說明書和驗收(2天)五、評分標準根據(jù)平時上機考勤、表現(xiàn)和進度,教師將每天點名和檢查根據(jù)課程設(shè)計完成情況,必須有可運行的軟件。根據(jù)課程設(shè)計報告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。根據(jù)答辯的情況,應(yīng)能夠以請晰的思路和準確、簡練的語言敘述自己的設(shè)計和回答教師的提問六、建議參考資料數(shù)據(jù)結(jié)構(gòu)億語言版)嚴蔚敏、吳偉民 主編 請華大學(xué)出版社2004.11數(shù)據(jù)結(jié)構(gòu)課程設(shè)計案例精編(用C/C+描述),建學(xué) 等 編著,請華大學(xué)出版社2007.2教據(jù)結(jié)構(gòu):用

4、面向?qū)ο蠓椒ㄅcC+語言描述,殷人昆主編,請華大學(xué)出版社2007.6目錄2 TOC o 1-5 h z HYPERLINK l bookmark33 o Current Document 第一章、需求分析4 HYPERLINK l bookmark36 o Current Document 第一節(jié)、問題描述4 HYPERLINK l bookmark39 o Current Document 第二節(jié)、基本要求5 HYPERLINK l bookmark42 o Current Document 第二章、概要設(shè)計5第一節(jié)、設(shè)計恩想5 HYPERLINK l bookmark48 o Current

5、 Document 第二節(jié)、數(shù)據(jù)結(jié)構(gòu)6 HYPERLINK l bookmark51 o Current Document 第三節(jié)、程序模塊6 HYPERLINK l bookmark54 o Current Document 第三章、詳細設(shè)計10第一節(jié)、數(shù)據(jù)類型10 HYPERLINK l bookmark60 o Current Document 第二節(jié)、主要操作12 HYPERLINK l bookmark63 o Current Document 第四章、測試與分析19 HYPERLINK l bookmark66 o Current Document 第一節(jié)、調(diào)試過程中的主要問題19

6、 HYPERLINK l bookmark69 o Current Document 第二節(jié)、測試結(jié)果的分析與討論19 HYPERLINK l bookmark78 o Current Document 第五章、用戶使用說明23 HYPERLINK l bookmark93 o Current Document 第六章、總結(jié)24 HYPERLINK l bookmark104 o Current Document 第七章、發(fā)現(xiàn)問題及錯誤分析 26 HYPERLINK l bookmark107 o Current Document 第一節(jié)、邏輯錯誤函數(shù)26第二節(jié)、修改前得代碼26 HYPERL

7、INK l bookmark110 o Current Document 第三節(jié)、錯誤描述27 HYPERLINK l bookmark75 o Current Document 第四節(jié)、解決方案如下28 HYPERLINK l bookmark113 o Current Document 第八章、參考文獻29 HYPERLINK l bookmark119 o Current Document 附錄代碼:30第一章、需求分析根據(jù)題目要求,充分地分析和理解問題,描述系統(tǒng)的功能要求,明確問題要求做什 么?以及限制條件是什么?第一節(jié),問題描述隨著我國人民生活水平提高和汽車工業(yè)的高速發(fā)展.越來越多的

8、家庭擁有了汽車, 但受到土地的F艮制,所以采用立體停車場是解決停車難的激、然出路。立體停車場占地少, 容量大.利用效率高;泊車與取車全自動化,省時省力,安全防盜。本文主要以兩層停 車場為例,設(shè)計一能完成存車與取車的停車場系統(tǒng)。有一個兩層的停車場,每層有6個車位,當?shù)谝粚榆囃M后才允許使用第二層.(停 車場可用一個二維數(shù)組實現(xiàn),每個數(shù)組元素存放一個車牌號)每輛車的信息包括車牌 號、層號、車位號、停車時間共4項,其中停車時間按分鐘計算。假設(shè)停車場初始狀態(tài)為第一層巳經(jīng)停有4輛車,其車位號依次為14 ,停車時間依 次為20, 15, 10,5 .即先將這四輛車的信息存入文件” car.dat”中(數(shù)組

9、的對應(yīng)元素也 要進行賦值)。停車操作:當一輛車進入停車場時,先輸入其車牌號,再為它分配一個層號和一個 車位號,停車時間設(shè)為5,最后將新停入的汽車的信息添加文件car.dat”中,并將在此 之前的所有車的停車時間加5。收費管理(取車):當有車離開時,輸入其車牌號,先按其停車時間計算費用,每5分 鐘0.2元.(停車費用可設(shè)置一個變量進行保存),同時從文件car.dat”中刪除該車的信 息,并將該車對應(yīng)的車位設(shè)置為可使用狀態(tài)(即二維數(shù)組對應(yīng)元素清零).按用戶的選擇 來判斷是否要輸出停車收費的總計。第二節(jié)、基本要求輸入的形式和輸入值的圍程序以車牌號作為車主的身份驗證,以真實的汽車車牌號為準,當取車或停

10、車時, 需輸入車牌號,輸入字段長7位。輸出的形式用戶:當車主存車時,要求顯示空閑的車位,方便車主在層選擇(層間要滿足,如 果第一層有空則必須停在第一層)。當車主取車時,可以根據(jù)客戶選擇,決定是否輸出 憑據(jù)。管理員:能夠查詢?nèi)寇囕v的信息。程序所能達到的功能用戶存車:包括查找空位,選擇車位;用戶取車:包括出車,顯示憑據(jù)。更改停車 場的狀態(tài)。停車場管理員:初始化停車場,查詢所有車的停車信息(歷史停車信息),進行一 定的查詢功能。第二章、概要設(shè)計第一節(jié),設(shè)計思想本停車場有兩層,每層有6個車位,所以停車場可用一個二維數(shù)組實現(xiàn),用來描述 現(xiàn)停汽車的信息。每輛車用一結(jié)構(gòu)體表示,包括車牌號、層號、車位號、停

11、車時間和 停車標志位(標志是否停車)。當車入庫時,將更改二維數(shù)組的信息,當車出庫時,將 信息寫入 car.dat 中o 再次進入該系統(tǒng)時,還用這個二維數(shù)組,來接受car.dat數(shù)據(jù)的讀 入,便于用戶以后的操作,防止停車信息的流失。此外,由于需要顯示所有汽車的停車 信息,所以我們又加了一個顧客結(jié)構(gòu)體,一個顧客鏈表,當存車時,新建用戶節(jié)點,并 使用頭插法,插于鏈表(便于取車時查到用戶,補充完整用戶的信息兒填寫用戶的相 關(guān)信息(車牌號,層號,車位號,車入庫時刻)。當出庫時,查找相應(yīng)節(jié)點,補充完整 用戶信息,包括(用戶留言,停車時間總計,花費)。當退出系統(tǒng)后,將巳出庫的汽車 的車主信息,寫入歷史文件l

12、ist.dat中,便于管理員的查詢。將還未取走車的車主的信息 存入臨時文件temp.dat中,防止系統(tǒng)關(guān)閉后數(shù)據(jù)信息的丟失,車主取車時找不到車。第二節(jié)、教據(jù)結(jié)構(gòu)結(jié)構(gòu)體Car,保存每個車位的停車信息。結(jié)構(gòu)體Snode,保存每個客戶的信息。結(jié)構(gòu)體U ser,保存管理員信息。結(jié)構(gòu)體Date,保存時間。數(shù)組Cars,保存整個停車狀況。鏈表CustList,保存所有客戶的信息,包括車巳取走,和車未取走的。第三節(jié)、程序模塊(1)此停車場管理系統(tǒng),主要分為以下若干模塊:首先定義用來模擬停車的數(shù)組,用來保存顧客信息的鏈表,保存管理員信息的結(jié)構(gòu) 以及全局變量,然后編寫主函數(shù),在此主函數(shù)中實現(xiàn)對其它各個模塊的調(diào)用

13、。在主函數(shù) 中首先調(diào)用option()函數(shù),出現(xiàn)歡迎用戶使用的界面,然后提示用戶進入此停車場管理 系統(tǒng)后,再出現(xiàn)一個供用戶選擇的主界面(包括顧客界面和停車場管理員管理界面)。當用戶選擇顧客界而時,跳入到顧客界面,再次界面,用戶可以選擇存車、取車及返回 主頁面。在用戶的選擇過程中,程序又分別存車,取車函數(shù)調(diào)用以及退出程序這三個函 數(shù)模塊。其中,當存車時,調(diào)用了顯示空閑車位狀態(tài)的信息函數(shù),并調(diào)用了保存car.dat 的函數(shù);當取車時,調(diào)用顯示本次停車情況以及消費金額的函數(shù) 并調(diào)用了保存car.dat 的函數(shù)。最后,在主界而選擇“退出”,保存歷史文件list.dat和臨時文件temp.dat。當 用

14、戶選擇車管系統(tǒng)時,調(diào)用管理員身份驗證函數(shù),從而跳入車管界而,然后相應(yīng)的功能 函數(shù),實現(xiàn)查詢所有停車信息。(2)在以上各個模塊中,出現(xiàn)的調(diào)用的函數(shù)為:/ 客 戶 void Customer(Car carsFLOORPNUMBER);void CustomerNote(char note100,CustList *cl);/ 存車int Enterpark(Car carsFLOORPNUMBER,char *license,int &floor,int &pnumber);void GetDate(Date &date);bool IsFull(Car carsFLOORPNUMBER);bo

15、ol IsSame(Car carsFLOORPNUMBER,char *license);/ 取車int CarOutMenu(char license,int &floor,int &pnumber,int &ptime,float &cost,char note100);bool IsEmpty(Car carsFLOORPNUMBER);void Print(char license,int floor,int pnumber,int ptime,float &cost);void Leavepark(Car carsFLOORPNUMBER,char license,int &flo

16、or,int&pnumber,int &ptime,char note100);/后臺管理void Manage(Car carsFLOORPNUMBER); /保存到 car.datvoid Savecars(Car carsFLOORPNUMBER);void FourCarIn(Car CarsFLOORPNUMBER); / 初始停車場int UsertestAdd(); /管理員身份驗證void Load(Car carsFLOORPNUMBER); / 加載文件void Loadfile(Car carsFLOORPNUMBER,char license8,int floor,in

17、t pnumber,int ptime,int empty);void Showcars(Car carsFLOORPNUMBER,CustList *cl); /顯示停車場現(xiàn)存車void Message(CustList *clr); /顯示客戶信息void News();/ 發(fā)布消息void Income(CustList *cl,char day,float &amount); 一些查詢void CheckOneCar(CustList *clr,char *license);/ 后臺中關(guān)于單鏈表的void InitCustList(CustList *&cl);void InsertT

18、oFirst(CustList *cl,char *license,int floor,int pnumber,Date date);void InsertToLst(CustList *cl,char *license,int floor,int pnumber,int ptime,float cost,Date date);void SearchCust(CustList *&cl,char *license,float cost,int ptimecount,char note);void SaveListTemp(CustList *cl);/保存到 temp.datvoid Save

19、List(CustList *cl); /保存到 list.datvoid DeleteAll(CustList *cl);void ReadFromList(CustList *cl);void LoadList(CustList *clr);void DeleteByNote(CustList *cl);(3)各模塊之間的調(diào)用關(guān)系以及算法設(shè)計下圖是個模塊之間的調(diào)用關(guān)系(如圖2-1):圖2-1模塊調(diào)用關(guān)系第三章,詳細設(shè)計實現(xiàn)概要設(shè)計中定義的所有數(shù)據(jù)類型,對主要操作寫出實現(xiàn)算法,對主程序和其他 模塊寫出算法,寫出函數(shù)的調(diào)用關(guān)系。第一節(jié),救據(jù)類型結(jié)構(gòu)體Car,保存每個車位的停車信息。struct

20、 Carchar license8;int floor;int pnumber;int ptime;int empty;/標志位,有車為1,無車為0;結(jié)構(gòu)體Snode,保存每個客戶的信息。struct Snodechar license8; 車牌號Date date; /停車的時刻int floor;int pnumber;int ptimecount; /本次停車總時問float cost;char note100;/顧客留言Snode *next;結(jié)構(gòu)體U ser,保存管理員信息。struct Userchar id10;char name10;char password10;結(jié)構(gòu)體Dat

21、e,保存時間。struct Datechar day11;char shike9;char weekday10;);數(shù)組Cars,保存整個停車狀況。Car CarsFLOORPNUMBER;鏈表,保存所有客戶的信息,包括車巳取走,和車未取走的。typedef struct Snode CustList;第二節(jié)、主要操作(1)存車:int Enterpark(Car carsFLOORPNUMBER,char *license,int &floor,int &pnumber) 輸入車牌號,判斷車牌號的有效性coutlicen;while(!licen)|(strlen(licen)! = 7)c

22、outlicen;)查看是否有重復(fù)while if(IsSame(cars,licen) = = 1)cout”巳經(jīng)存在這輛車,請重新輸入:licen;)else break;)判斷車場是否巳經(jīng)滿了查看是否有空位,并顯示。便于客戶選擇int i,j;if(IsFull(cars) = = 1)cout巳經(jīng)沒有空車位了,謝謝惠顧!正在跳轉(zhuǎn)到顧客界面ooo endl;return 0;)int sign=1;/sign標志第幾層有空位0表一,1表二coutvv”您可以選擇的車位”vvendl;coutvvendl;cout.setf(ios:left);cout.width(8);cout”樓層”

23、;cout.width(8);cout車位號”;coutendl;for(i = 0;iFLOOR;i+) if(sign=0) break;for(j=0;jPNUMBER;j+) if(carsij.empty=0)&(i = =0)sign=0;cout.setf(ios:left);cout.width(8);couti+1;cout.width(8);coutj+1endl;if(j = = PNUMBER-1) break;)else if(carsij.empty=0)&(i = = 1)cout.setf(ios:left);cout.width(8);couti+1;cout

24、.width(8);coutj+1endl;)coutendl;int temf;couttemf;while if(carssigntemf-1.empty=0)&(temf = 1&temf = 6)修改一個車位的信息carssigntemf-1.empty=1;floor=carssigntemf-1.floor=sign+1;pnumber=carssigntemf-1.pnumber=temf;strcpy(carssigntemf-1.license,licen);strcpy(license,licen);carssigntemf-1.ptime=0;修改整個停車場的信息for(

25、i=0;iFLOOR;i+)for(j = 0;jPNUMBER;j+)if(carsij.empty= = 1)carsij.ptime+=5;)break;)else cout”輸入有誤!請輸入車位號”temf;)return 1;)(2)取車:void Leavepark(Car carsFLOORPNUMBER,char license,int &floor,int&pnumber,int &ptime,char note100)判斷車位是否巳空if(IsEmpty(cars) = = 1) cout”停車場巳沒有車停放!請確定您是否停車。endl;return;)查找車位int si

26、gn=1;/標志位,車庫有該車為1,沒有賦值為零,初始值為0int i,j;while(sign)for(i=0;iFLOOR;i+)for(j = 0;jPNUMBER;j+)if(strcmp(carsij.license,license) = =0)sign=0;floor=i;pnumber=j;ptime=carsij.ptime;)if(sign)cout”您剛才輸入的車牌號不存在!”endl;coutlicense;)if(sign= = 0)cout車巳找到,請稍等。endl;strcpy(note,”0000000000);floor+=1;pnumber+=1;/syste

27、m (cls);延時for(i = 0;iiIHISTKATOKXffiasdDan not openthis file面面戶管出擇客車退選;清Tn圖4-1系統(tǒng)主界面客戶界面(如圖4-2)lc: rC: DOCUflEHTS AID SETTINGSADIIIISTRATORilDasdYD2d圖4-2客戶界面存車(如圖4-3)*C: BOClfflEHTS AffD SITTIMGSVADHLHISTlATORXffiK 3(3( 學(xué) 1 弁 JCXXJf )(,MZJCX重輸入你的車牌號Bsses退出? 3 =是,不)請輸X: n2取車3彼回上一級 請選擇:圖4-3存車界面取車(如圖4-4

28、)|n| xg= C:BOCU1E1T5 AID SETTINGSVU)工BISTRATOEA堂面消費iH8S息號信位 w。 群車, frp . 0 hjl f琴 車 好 A雋 汽層 很 一至用 扈1務(wù) =的,據(jù)出1現(xiàn) 2服 一一您尊退. _S 一號明擇=皋 =輸己曾直選一牌B8選留選 笙吊;3請一車蒙請請請L1I a圖4-4取車界面管理員界面(如圖4-5)c th DE輸入不同數(shù)壬代表不同功能 三m德羸2input your license33333license floor pnumber ptime11111Q09522222Q19044444Q380版弱B47566666055inpu

29、t your license 77777Lic:ens:e 11111FIooppnumber02222244444777773圖7-4加載錯誤(1)第四節(jié)、解決方案如下pt ine16516Q988515圖7-5加載錯誤(2)if(!license)return;strcpy(carsfloor-1pnumber-1.license,license);carsfloor-1pnumber-1.floor =floor;carsfloor-1pnumber-1.pnumber =pnumber;carsfloor-1pnumber-1.ptime =ptime;carsfloor-1pnumb

30、er-1.empty =empty;)第八章,參考文獻1、數(shù)據(jù)結(jié)構(gòu)(C語言版)嚴蔚敏、吳偉民主編康華大學(xué)出版社 2004.112、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計案例精編(用C/C+描述),建學(xué) 等 編 著,康華大學(xué)出版社2007.23、數(shù)據(jù)結(jié)構(gòu):用面向?qū)ο蠓椒ㄅcC+語言描述,殷人昆主編,清華大學(xué)出版社2007.6附錄代碼:#include #include #include #include #include #define FLOOR 2 #define PNUMBER 6struct Carchar license10;int floor;int pnumber;int ptime;int empty;

31、/標志位,有車為1,無車為0;/顧客信息節(jié)點struct Customerchar license10; 車牌號char date64;/停車的時刻int ptimecount; /本次停車總時問float cost;char note100;/ 顧客留言Customer *next;顧客信息鏈表typedef Customer CustList;/管理員struct Userchar id10;char name10;char password10;int UsertestAdd();void Load(Car cars26);void Loadfile(Car cars26,char li

32、cense10,int floor,int pnumber,int ptime,int empty);void FourCarIn(Car Cars26);void Enterpark(Car cars26);void Showcars(Car cars26);void Savecars(Car cars26);bool IsEmpty(Car cars26);void Print(char license,int floor,int pnumber,int ptime,float &cost);void Leavepark(Car cars26,char license,int &floor

33、,int &pnumber,int &ptime,float &cost,char note100);void CarOutMenu(char license,int &floor,int &pnumber,int &ptime,float &cost,char note100);void Manage(Car cars26);void InitCustList(CustList *&cl);void CreateCustList(CustList *&cl,char *license);void GetDate(char tmp64);void SearchCust(CustList *&c

34、l,char *license,float cost,int pcount);void Customer(Car cars26);void CustomerNote(char note100);void EachGuideInfor(Car c);游客個人信息的自我查詢void EachGuideInfor(Car c)cout.setf(ios:left);cout.width(10);cout車牌號”;cout.width(8);cout”樓層”;cout.width(8);cout車位號”;cout.width(8);cout停車開始時間endl;cout.setf(ios:left);

35、cout.width(10);cout.width(8);coutc.floor;cout.width(8);coutc.pnumber;cout.width(8);coutc.ptimeendl;)顧客留言void CustomerNote(char note100)coutnote;)/存車void Enterpark(Car cars26)coutinput your licenselicen;while(!licen)coutinput your licenselicen;)判斷車庫是否巳經(jīng)滿了,順便將原來的ptime加5int i,j;for(i = 0;i2;i+)for(j =

36、0;j6;j+)if(carsij.empty= = 1)carsij.ptime +=5;)elsecarsij.floor =i+1;carsij.pnumber =j+1;carsij.ptime=5;carsij.empty=1;strcpy(carsij.license,licen);return; 如果使用break,則只能跳出單層循環(huán), )顯示停車信息/ cout”顯示停車信息? (Y:是,N:否)endl;/couta;/ if(a = = Y)/ (EachGuideInfor(cars);)取車void Leavepark(Car cars26,char license,i

37、nt &floor,int &pnumber,int &ptime,float&cost,char note100)判斷車位是否巳空if(IsEmpty(cars) = = 1)cout停車場巳沒有車停放!請確定您是否停車。endl;return;)查找車位int sign=1;/標志位,車庫有該車為1,沒有賦值為零,初始值為0int i,j;while(sign)for(i = 0;i2;i+)for(j=0;j6;j+)if(strcmp(carsij.license,license) = = 0)sign=0;floor=i;pnumber=j;ptime=carsij.ptime;)i

38、f(sign)cout”您剛才輸入的車牌號不存在!”endl;coutlicense;)if(sign = = 0)cout”車巳找到,請稍等。endl;floor+=1;pnumber+=1;/system (cls);延時for(i = 0;i1000000000;i+);車出庫,將車位空出carsfloor-1pnumber-1.floor =0;carsfloor-1pnumber-1.pnumber =0;carsfloor-1pnumber-1.ptime=0;carsfloor-1pnumber-1.empty=0;strcpy(carsfloor-1pnumber-1.lice

39、nse,);/由于floor,pnumber與實際的二位數(shù)組有區(qū)別,加1)取車的菜單項void CarOutMenu(char license,int &floor,int &pnumber,int &ptime,float &cost,charnote100)cout1 輸出憑據(jù)vvendl;cout2 留言”endl;cout”3 直接退出endl;while couti;if(i3)cout您的操作非法!”endl;continue;)switch(i)case 1:cout現(xiàn)有汽車停車信息endl;Print(license,floor,pnumber,ptime,cost);brea

40、k;case 2:CustomerNote(note);break;case 3:break;)if(i = = 1|i = =2) continue;else break;)得到當前時間void GetDate(char tmp64)time_t t = time( 0 );strftime(tmp, sizeof(tmp), %Y/%m/%d %X %A”,localtime(&t);)bool IsEmpty(Car cars26)int i,j;for(i = 0;i2;i+)for(j = i;j6;j+)if(carsij.empty= = 1) return false;retu

41、rn true;)逐條添加記錄到car.dat中void Savecars(Car cars26)FILE* fp = fopen(car.txt”,wb”);if(fp=NULL)return;)/to fileCar car;int i=0;int j=0;while(i2)while(j6)if(carsij.empty = = 1)car.floor =carsij.floor ;strcpy(car.license ,carsij.license );car.pnumber =carsij.pnumber ;car.ptime =carsij.ptime ;car.empty=car

42、sij.empty ;/ fwrite(&cars,sizeof(car),1,fp);/ 如果寫成這樣,每次都從car00地址開始寫入,回報原來的容覆蓋掉,加深了我對fwrite()的理解fwrite(&car,sizeof(car),1,fp);)j+;)i+;)fclose(fp);)void Load(Car cars26)FILE* fp = fopen(car.txt”,rb”);if(fp=NULL)coutcan not open this fileendl;return;)Car car;int n;while(!feof(fp)/read one car informati

43、onn = fread(&car,sizeof(car),1,fp);if(n! = 1)break;/ coutcar.license car.floor car.pnumber car.ptime endl;Loadfile(cars,car.license ,car.floor,car.pnumber ,car.ptime ,car.empty );)fclose(fp);)輸出收費后個人憑據(jù)void Print(char license,int floor,int pnumber,int ptime,float &cost)計算費用cost=ptime*float (0.2);輸出co

44、ut.setf(ios:left);cout.width(10);cout車牌號”;cout.width(8);cout”樓層”;cout.width(8);cout車位號”;cout.width(8);cout消費”endl;cout.setf(ios:left);coutlicense;cout.width(8);coutfloor;cout.width(8);coutpnumber;cout.width(8);coutcostendl;)void FourCarIn(Car cars26)/4車進庫Car c;int i;cout請輸入四輛車的信息:endl;for(i = 0;i4;i

45、+)cout第i+1c.license;cout第i+1c.floor;cout第i+1c.pnumber;cout”第i+1c.ptime;c.empty=1;Loadfile(cars,c.license,c.floor,c.pnumber,c.ptime,c.empty );)/寫入文件 car.datSavecars(cars);)記錄一個停車位的狀態(tài)void Loadfile(Car cars26,char license10,int floor,int pnumber,int ptime,int empty )if(!license)return;strcpy(carsfloor-

46、1pnumber-1.license,license);carsfloor-1pnumber-1.floor =floor;carsfloor-1pnumber-1.pnumber =pnumber;carsfloor-1pnumber-1.ptime =ptime;carsfloor-1pnumber-1.empty =empty;)void Showcars(Car cars26)int i,j;cout.setf(ios:left);cout.width(10);cout車牌號”;cout.width(8);cout”樓層”;cout.width(8);cout車位號”;cout.wid

47、th(8);cout停車時間endl;for(i = 0;i2;i+)for(j = 0;j6;j+)if(carsij.empty= = 1)cout.setf(ios:left);cout.width(10);coutcarsij.license;cout.width(8);coutcarsij.floor;coutcarsij.pnumber;cout.width(8);coutcarsij.ptimeid;cout”請輸入密碼password;for(i = 0;i10;i+)if(!strcmp(UserArri.id,id)&!strcmp(UserArri.password,pa

48、ssword)n = 1;break;)if(n)break;)i=0;count+;cout密碼或賬號錯誤,;if(count=2|k=2)cout您今天巳累計輸錯count”次-”;coutendl;cout輸入數(shù)字1表示同意注冊,其他則表示不同意條款”tip;if(tip= = 1)if(k=2)cout很遺憾,系統(tǒng)管理員用戶總數(shù)達到上限,無法注冊,若需 注冊,請聯(lián)系管理員endl;return 0;)elsecout請輸入要注冊賬號id;strcpy(UserArrk+1.id ,id);cout請輸入您的姓名”name;strcpy(UserArrk+1.name ,name);char password10;cinpassword;strcpy(UserArrk+1.password ,password);cout注冊成功,系統(tǒng)正在為您跳轉(zhuǎn)到登陸界面”end

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論