版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計( C+)課程大作業(yè)設(shè)計題目:停車場管理系統(tǒng)設(shè)計院系:計算機科學(xué)與信息工程學(xué)院專業(yè)班級:學(xué)號姓名:指導(dǎo)教師:年 1 月目錄成員分工 . 1需求分析. 2總體設(shè)計. 3詳細設(shè)計. 6系統(tǒng)測試. 17總結(jié) . 20參考文獻. 21一 成員分工我們小組成員共有三名,分別是,為了能按時圓滿的完成這次 VC+課程設(shè)計,我們小組進行了詳細的分工,以確保設(shè)計能按時完成。經(jīng)過周密的考慮和詳細的調(diào)查最終確定該停車場管理系統(tǒng)需要以下 幾個功能模塊:需求分析界面的設(shè)計添加功能顯示功能查詢功能編輯功能刪除功能統(tǒng)計功能保存功能讀取功能經(jīng)過小組成員的討論,并根據(jù)個人的特長和具體愛好做如下具體分工:神 1
2、具體完成以下模塊的設(shè)計與實現(xiàn):需求分析界面的設(shè)計添加功能保存功能神 2 具體完成以下模塊的設(shè)計與實現(xiàn):顯示功能查詢功能顯示功能神 3 主要具體完成以下模塊的設(shè)計與實現(xiàn): (1) 編輯功能刪除功能讀取功能二 需求分析1問題描述定義車輛類,屬性有車牌號、顏色、車型(小汽車、小卡、中卡和大卡)、到達的時間和離開的時間等信息和相關(guān)的對屬性做操作的行為。定義一個管理類,完成對停車場的管理。停車場的具體要求:設(shè)停車場是一個可停放 n 輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場內(nèi)已停滿
3、n 輛汽車,則后來的汽車只能在門外的便道上等待,一旦有車開走,則排在便道上的第一輛車即可開入;每輛停放在車場的車在它離開停車場時必須按它停留的時間長 短交納費用。2. 基本要求添加功能:程序能夠添加到達停車場的車輛信息, 要求車輛的車牌號要唯一, 如果添加了重復(fù)編號的記錄時,則提示數(shù)據(jù)添加重復(fù)并取消添加。查詢功能:可根據(jù)車牌號、車型等信息對已添加的停車場中的車輛信息進行 查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;顯示功能:可顯示當前系統(tǒng)中所有車輛的信息,每條記錄占據(jù)一行。 (4) 編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進行修改,修改時注意車牌號的唯一性。 (5 )刪除
4、功能:主要實現(xiàn)對已添加的車輛記錄進行刪除。如果當前系統(tǒng)中沒有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作。(6 )統(tǒng)計功能:能統(tǒng)計停車場中車輛的總數(shù)、按車型、按到達時間進行統(tǒng)計等。 (7 )保存功能:可將當前系統(tǒng)中各類人員記錄和休假記錄存入文件中,存入方式任意。(8 )讀取功能:可將保存在文件中的信息讀入到當前系統(tǒng)中,供用戶進行使用。 3系統(tǒng)運行環(huán)境硬件環(huán)境。聯(lián)想 雙核處理器,2G 內(nèi)存,2G 獨立顯卡,80G 硬盤。軟件環(huán)境。Microsoft Visual C+6.0,WindosXP 系統(tǒng)。三 總體設(shè)計(1) 設(shè)計思想本停車場 n 個車位, 所以可以用數(shù)組表示,每輛車用一結(jié)構(gòu)體表示,包
5、括車牌號、顏色、車 型、 車位號、停車時間和停車標志位(標志是否停車)。當車入庫時,將更改信息,當車出 庫時,將信息寫入 car.dat 中。再次進入該系統(tǒng)時,還用這個該數(shù)組,來接受 car.dat 數(shù)據(jù) 的讀入,便于用戶以后的操作,防止停車信息的流失。此外,由于需要顯示所有汽車的停車 信息,所以我們又加了一個顧客結(jié)構(gòu)體,一個顧客鏈表,當存車時,新建用戶節(jié)點,并使用 頭插法,插于鏈表(便于取車時查到用戶,補充完整用戶的信息),填寫用戶的相關(guān)信息(車 牌號,顏色,車型,車位號,車入庫時刻)。當出庫時,查找相應(yīng)節(jié)點,補充完整用戶信息, 包括(用戶留言,停車時間總計,花費)。當退出系統(tǒng)后,將已出庫的
6、汽車的車主信息,寫 入歷史文件 list.dat 中,便于管理員的查詢。將還未取走車的車主的信息存入臨時文件 temp.dat 中,防止系統(tǒng)關(guān)閉后數(shù)據(jù)信息的丟失,車主取車時找不到車。同時,還要將成員 信息寫入臨時文件 user.dat;(2) 數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)體 Car,保存每個車位的停車信息。結(jié)構(gòu)體 Gustomer,保存每個客戶的信息。結(jié)構(gòu)體 User,保存管理員信息。數(shù)組 Cars,保存整個停車狀況。數(shù)組 user;鏈表 CustList,保存所有客戶的信息,包括車已取走,和車未取走的。(3) 程序模塊(1) 此停車場管理系統(tǒng),主要分為以下若干模塊:首先定義用來模擬停車的數(shù)組,用來保存顧客信
7、息的鏈表,保存管理員信息的結(jié)構(gòu)以及全局變量,然后編寫主函數(shù),在此主函數(shù)中實現(xiàn)對其它各個模塊的調(diào)用。在主函數(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 的函
8、數(shù)。建立 user.dat 存放管理人員的信息。最后,在主界面選擇“退出”,保存歷史文件list.dat 和臨時文件 temp.dat。當用戶選擇車管系統(tǒng)時,調(diào)用管理員身份驗證函數(shù),從而跳入車管界面,然后相應(yīng)的功能函數(shù), 實現(xiàn)查詢所有停車信息。(2)各模塊之間的調(diào)用關(guān)系以及算法設(shè)計下圖是個模塊之間的調(diào)用關(guān)系:歡迎頁面進入主頁面客戶界面停車場管理員界面存車界面取車界面返回主頁退出退出輸入車牌號退出輸入車牌號初始停車場車輛信息輸入管理員信息顯示管理員信息否車 牌有效顯示憑據(jù)客戶留言返回主頁是滿注:在取、存操作后,會自動保存信息到 car.dat 中。在每次退出系統(tǒng)時,會保存 list.dat 和
9、temp.dat。(3)函數(shù)設(shè)計int UsertestAdd();void SaveUsers(User users6);void loa(User users6);void FourUserIn(User users6);void Load(Car cars6);void Showusers(User users6);void loafile(User users6,char name10,char id10,char password10, int qingjia,int empty);void Loadfile(Car cars6,char license10,char pchexin
10、g10,char pcolor2,int pnumber,int ptime,int empty);void FourCarIn(Car Cars6);void Enterpark(Car cars6);void Showcars(Car cars6);void Savecars(Car cars6);bool IsEmpty(Car cars6);void Print(char license10,char pchexing10,char pcolor2,int pnumber,int ptime,float &cost);void Leavepark(Car cars6,char lice
11、nse,char pchexing,char pcolor,int &pnumber,int &ptime,float &cost,char note100);void CarOutMenu(char license,char pchexing,char pcolor,int &pnumber,int &ptime,float &cost,char note100);void Manage(Car cars6);void InitCustList(CustList *&cl);void CreateCustList(CustList *&cl,char *license,char *pchex
12、ing,char *pcolor);void GetDate(char tmp64);void SearchCust(CustList *&cl,char *license,char *pchexing,char *pcolor,float cost,int pcount);void Customer(Car cars6);void CustomerNote(char note100);void EachGuideInfor(Car c);四 詳細設(shè)計實現(xiàn)概要設(shè)計中定義的所有數(shù)據(jù)類型,對主要操作寫出實現(xiàn)算法,對主程序和其他模塊寫出算法, 寫出函數(shù)的調(diào)用關(guān)系。(1) 數(shù)據(jù)類型結(jié)構(gòu)體 Car,保存
13、每個車位的停車信息。struct Carchar license8;int pnumber;char pcolor2;char pchexing10;int ptime;int empty;/標志位,有車為 1,無車為 0;struct Customerchar license10;/車牌號char pchexing10;/車的型號char pcolor2;/車的顏色char date64;/停車的時刻int ptimecount;/本次停車總時間float cost;char note100;/顧客留言Customer *next;struct Userchar id10;/編號char n
14、ame10;/姓名char password10;/留言int qingjia;int empty;/標志位,有車為 1,無車為 0 ;數(shù)組 Cars,保存整個停車狀況。數(shù)組 User,保存整個管理人員的信息。Car CarsPNUMBER;鏈表,保存所有客戶的信息,包括車已取走,和車未取走的。 typedef struct Snode CustList;(2) 主要操作1) 存車void Enterpark(Car cars6)coutinput your license,chexing,colorlicenpcolopche;while(!licen)coutinput your lice
15、nse,chexing,colorlicenpcolopche;/判斷車庫是否已經(jīng)滿了int i;for(i=0;i6;i+)if(carsi.empty=1)carsi.ptime +=5;elsecarsi.pnumber =i+1;carsi.ptime=5;carsi.empty=1;strcpy(carsi.license,licen);return; /如果使用 break,則只能跳出單層循環(huán),2) 取車void Leavepark(Car carsFLOORPNUMBER,char license,int&pnumber,int &ptime,char note100)/判斷車位
16、是否已空if(IsEmpty(cars)=1)cout停車場已沒有車停放!請確定您是否停車。endl;return;/查找車位int sign=1;/標志位,車庫有該車為 1,沒有賦值為零,初始值為 0int i,j;while(sign)for(i=0;iFLOOR;i+)for(j=0;jPNUMBER;j+)if(strcmp(carsij.license,license)=0)&floor,intsign=0;floor=i;pnumber=j;ptime=carsij.ptime;if(sign)cout您剛才輸入的車牌號不存在!endl; coutlicense;if(sign=0
17、)cout車已找到,請稍等。endl; strcpy(note,0000000000);floor+=1;pnumber+=1;/system (cls);for(i=0;i100000000;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.license, );3)添加管理員的信息到 User.txt 中void SaveUsers(Use
18、r users6)FILE* fp = fopen(user.txt,wb);if(fp=NULL)coutCan not open this fileendl; return;User user;int j=0;while(j6)if(usersj.empty =1)strcpy( , );strcpy(user.id ,usersj.id );strcpy(user.password ,usersj.password);user.qingjia =usersj.qingjia;fwrite(&user,sizeof(user),1,fp);j+;fc
19、lose(fp);4)登錄界面int UsertestAdd()/simple 登陸驗證和注冊用戶功能User UserArr10=031010216,神 1,031010216;/默認用戶int count=0;/統(tǒng)計輸入用戶名和密碼錯誤次數(shù)int i=0;/遍歷變量或找到用戶的 IDint k=1;/表示已存在的用戶數(shù)while(1)int n=0;/標識是否匹配,若匹配,則退出外循環(huán)cout請輸入您的管理賬號id;cout請輸入密碼password;for(i=0;i10;i+)if(!strcmp(UserArri.id,id)&!strcmp(UserArri.password,pa
20、ssword)n=1;break;if(n)break;i=0;count+;cout密碼或賬號錯誤,;if(count=2|k=2)cout您今天已累計輸錯count 次-;cout您是否要注冊用戶?(否則您將自動退出系統(tǒng))endl;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(Use
21、rArrk+1.name ,name);cout請輸入您的密碼password;strcpy(UserArrk+1.password ,password);cout注冊成功,系統(tǒng)正在為您跳轉(zhuǎn)到登陸界面endl;int j=0;while(j1000000000)j+;coutendl;+k;else return 0;coutendl;cout*endl;cout歡迎進 UserA 入停車場后臺管理系統(tǒng)endl; cout*endl;coutendl;return 1;5)顧客界面void Customer(Car cars6)cout*停車場*endl;while(1)cou
22、t1 存車endl;cout2 取車endl;cout3 返回上一級endl;couti;if(i3)cout您的操作非法!endl; continue;if(i=1|i=2)switch(i)case 1:system (cls);cout*停車場*endl; Enterpark(cars);Savecars(cars);cout退出?(Y:是,N:不)endl;couta;Brea;case 2:system (cls);cout*停車場*endl; int pnumber,ptime;int pcount=0;float cost;char note100;coutlicenpchepc
23、olo;Leavepark(cars,licen,pche,pcolo,pnumber,ptime,cost,note);CarOutMenu(licen,pche,pcolo,pnumber,ptime,cost,note);system (cls);/SearchCust(cl,licen,cost,pcount);Savecars(cars);break;if(a=Y)system (cls);break;elsesystem (cls);break;6)后臺程序void Manage(Car cars6)coutWelcome!endl;while(1)cout1 初始停車場endl;
24、cout2 顯示所有車輛信息endl;cout3 輸入管理員信息 endl;cout4 顯示管理員信息endl; cout5 退出endl;couti;if(i4)cout您的操作非法!endl; continue;if(i=1|i=2|i=3|i=4)switch(i)case 1: system (cls);FourCarIn(cars);cout退出?(Y:是,N:不)endl; couta;break;case 2:system (cls);Showcars(cars);break;case 3:system (cls);FourUserIn(users);break;case 4:s
25、ystem (cls);Showusers(users);break;if(a=Y)system (cls);break;elsesystem (cls);break;7)主函數(shù)int main()UsertestAdd();Car cars6;int j;for(j=0;j6;j+)carsj.pnumber=0;carsj.ptime=0;carsj.empty=0;strcpy(carsj.license , );/CustList *cl;/InitCustList(cl);Load(cars);while(1)cout*停車場*endl; cout1 客戶界面endl;cout2 車
26、管界面endl;cout3 退出endl;couti;if(i3)cout您的操作非法!endl; continue;system (cls);switch(i)case 1:Customer(cars);break;case 2:Manage(cars);break;case 3:exit(-1);五系統(tǒng)測試(1)登陸界面(2)客戶界面(3)存車(4)取車(5)車管界面六 總結(jié)這次通過課程設(shè)計首先加深啦對對 C+程序設(shè)計這一課程所學(xué)內(nèi)容進一步理解和鞏固,特別是對順序進棧以及鏈式隊列的結(jié)構(gòu)還有保存程序到文件著幾塊,一次停車場系統(tǒng)的設(shè)計開發(fā)主要用的就是這幾種,在進行系統(tǒng)開發(fā)的準備階段,也就是進行
27、需求分析階段,對系統(tǒng)功能進行分析,并設(shè)計合理的模塊化結(jié)構(gòu),提高了對問題分析和設(shè)計的能力。在進行系統(tǒng)開發(fā)的階段能運用合理的控制流程編寫清晰高效的程序,也訓(xùn)練了 C+語言程序的調(diào)試能力,能將一個小型各級組織系統(tǒng)聯(lián)調(diào)通過,基本上可以完成每一項功能。汽車進入停車場的信息、離開停車場的信息以及通道上的信息都可以在程序上一一實現(xiàn)。但是,該程序也有不足的地方,就是管理員賬號無法修改登錄密碼還有一些兼容性不是很好,不過為了簡便代碼,所以未實現(xiàn)這一功能。同時我覺得這一系統(tǒng)也一點可改進的方面在于還應(yīng)該增加時 間的判斷功能,即停車場內(nèi)有可能有車輛停放時間超過一天。總之,在這次對于停車場管理系統(tǒng)的課程設(shè)計中。我的收獲
28、還是挺多的,在系統(tǒng)開發(fā)中,使得我將 計算機課程所學(xué)知識與實際問題很好的相聯(lián)接在了一起。1數(shù)據(jù)結(jié)構(gòu)理論與實踐七 參考文獻楊永斌主編 天津科學(xué)技術(shù)出版社2Visual C+課程設(shè)計與系統(tǒng)開發(fā)案例伍俊良編著 清華大學(xué)出版社3C+程序設(shè)計譚浩強編著清華大學(xué)出版社4求實科技.數(shù)據(jù)庫通用模塊及典型系統(tǒng)開發(fā)M. 人民郵電出版社, 2006.5陳剛. CSS 標準網(wǎng)頁布局開發(fā)指南M. 清華大學(xué)出版社, 2007.6尹堃.淺談 ASP.NET 技術(shù)的應(yīng)用J.硅谷動力, 2009,(07).7蔡義忠.在 ASP.NET 應(yīng)用開發(fā)中驗證碼的設(shè)計J.黃岡職業(yè)技術(shù)學(xué)院學(xué)報,2009,(01). 8徐安鳳,黃河濤.基于
29、ASP.NET 2.0 的文件上傳研究J.福建電腦, 2009,(03).9胡曉慶.多層架構(gòu)在 WEB 程序設(shè)計中的應(yīng)用J.兵工自動化, 2007,(03).10廖作斌,徐智.基于 ASP.NET 技術(shù)的數(shù)據(jù)庫訪問通用類設(shè)計J.福建電腦,2006,(11).11程宴,徐征. ASP.NET 的網(wǎng)站新聞管理系統(tǒng)的設(shè)計與開發(fā)J.艦船電子工程,2008,(08).附錄:#include #include #include #include #include #define PNUMBER 6using namespace std;struct Carchar license10;char pchex
30、ing10;char pcolor2;int pnumber;int ptime;int empty;/標志位,有車為 1,無車為 0;/ /顧客信息節(jié)點struct Customerchar license10;/車牌號char pchexing10;/車的型號char pcolor2;/車的顏色char date64;/停車的時刻int ptimecount;/本次停車總時間float cost;char note100;/顧客留言Customer *next;/顧客信息鏈表typedef Customer CustList;/管理員struct Userchar id10;/編號char
31、 name10;/姓名char password10;/留言int qingjia;int empty;/標志位,有車為 1,無車為 0;User users6;int UsertestAdd();void SaveUsers(User users6);void loa(User users6);void FourUserIn(User users6);void Load(Car cars6);void Showusers(User users6);void loafile(User users6,char name10,char id10,char password10, int qingj
32、ia,int empty);void Loadfile(Car cars6,char license10,char pchexing10,char pcolor2,int pnumber,int ptime,int empty);void FourCarIn(Car Cars6);void Enterpark(Car cars6);void Showcars(Car cars6);void Savecars(Car cars6);bool IsEmpty(Car cars6);void Print(char license10,char pchexing10,char pcolor2,int
33、pnumber,int ptime,float &cost);void Leavepark(Car cars6,char license,char pchexing,char pcolor,int &pnumber,int &ptime,float &cost,char note100);void CarOutMenu(char license,char pchexing,char pcolor,int &pnumber,int &ptime,float &cost,char note100);void Manage(Car cars6);void InitCustList(CustList
34、*&cl);void CreateCustList(CustList *&cl,char *license,char *pchexing,char *pcolor);void GetDate(char tmp64);void SearchCust(CustList *&cl,char *license,char *pchexing,char *pcolor,float cost,int pcount);void Customer(Car cars6);void CustomerNote(char note100);void EachGuideInfor(Car c);/游客個人信息的自我查詢v
35、oid EachGuideInfor(Car c)cout.setf(ios:left);cout.width(10);cout車牌號;cout.width(8);cout顏色;cout.width (8);cout車型;cout.width(8);cout車位號;cout.width(8);cout停車開始時間endl;cout.setf(ios:left);cout.width(10);coutc.license;cout.width(2);coutc.pcolor ;cout.width (10);coutc.pchexing;cout.width(8);coutc.pnumber;co
36、ut.width(8);coutc.ptimeendl;/顧客留言void CustomerNote(char note100)coutnote;/存車void Enterpark(Car cars6)char licen10,pche10,pcolo2;coutlicen;coutpche;cout pcolo;while(!licen)coutlicen;coutpche;cout pcolo;/判斷車庫是否已經(jīng)滿了int i;for(i=0;i6;i+)if(carsi.empty=1)carsi.ptime +=5;elsecarsi.pnumber =i+1;carsi.ptime=
37、5;carsi.empty=1;strcpy(carsi.license,licen);return; /如果使用 break,則只能跳出單層循環(huán),/取車void Leavepark(Car cars6,char license,char pchexing10,char pcolor2,int &pnumber,int &ptime,float &cost,char note100)/判斷車位是否已空if(IsEmpty(cars)=1)cout停車場已沒有車停放!請確定您是否停車。endl; return;/查找車位int sign=1;/標志位,車庫有該車為 1,沒有賦值為零,初始值為 0
38、 int j;while(sign)for(j=0;j6;j+)if(strcmp(carsj.license,license)=0)sign=0;pnumber=j;ptime=carsj.ptime;if(sign)cout您剛才輸入的車牌號不存在!endl;coutlicense;if(sign=0)cout車已找到,請稍等。endl;pnumber+=1;/system (cls);/延時for(j=0;j1000000000;j+);/車出庫,將車位空出carspnumber-1.pnumber =0;carspnumber-1.ptime=0;carspnumber-1.empty
39、=0;strcpy(carspnumber-1.license, );/由于 floor,pnumber 與實際的二位數(shù)組有區(qū)別,加 1/取車的菜單項void CarOutMenu(char license,char pchexing10,char pcolor2,int &pnumber,int &ptime,float &cost,char note100)cout1 輸出憑據(jù)endl;cout2 留言endl;cout3 直接退出endl;while(1)couti;if(i3)cout您的操作非法!endl;continue;switch(i)case 1:cout-現(xiàn)有汽車停車信息-
40、endl;Print(license,pchexing,pcolor,pnumber,ptime,cost);break;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 cars6)int j;for(j=1;j6;j+)if(carsj
41、.empty=1) return false;return true;/逐條添加記錄到 car.dat 中void Savecars(Car cars6)FILE* fp = fopen(car.txt,wb);if(fp=NULL)coutCan not open this fileendl;return;/to fileCar car;int j=0;while(j6)if(carsj.empty =1)strcpy(car.license ,carsj.license );car.pnumber =carsj.pnumber ;car.ptime =carsj.ptime ;car.em
42、pty=carsj.empty ;/ fwrite(&cars,sizeof(car),1,fp); / 如果寫成這樣,每次都從 car00地址開始寫入,回報原來的內(nèi)容覆蓋掉,加深了我對 fwrite()的理解fwrite(&car,sizeof(car),1,fp);j+;fclose(fp);void SaveUsers(User users6)FILE* fp = fopen(user.txt,wb);if(fp=NULL)coutCan not open this fileendl;return;/to fileUser user;int j=0;while(j6)if(usersj.
43、empty =1)strcpy( , );strcpy(user.id ,usersj.id );strcpy(user.password ,usersj.password);user.qingjia =usersj.qingjia;/ fwrite(&cars,sizeof(car),1,fp); / 如果寫成這樣,每次都從 car00地址開始寫入,回報原來的內(nèi)容覆蓋掉,加深了我對 fwrite()的理解fwrite(&user,sizeof(user),1,fp);j+;fclose(fp);void Load(Car cars6)FILE* fp
44、= fopen(car.txt,rb);if(fp=NULL)coutcan not open this fileendl;return;Car car;int n;while(!feof(fp)/read one car informationn = fread(&car,sizeof(car),1,fp);if(n!=1)break;/ coutcar.license car.flo car.pnumber car.ptime endl;Loadfile(cars,car.license,car.pchexing,car.pcolor,car.pnumber,car.ptime,car.e
45、mpty );fclose(fp);void Loa(User users6)FILE* fp = fopen(user.txt,rb);if(fp=NULL)coutcan not open this fileendl;return;User user;int n;while(!feof(fp)/read one car informationn = fwrite(&user,sizeof(user),1,fp);if(n!=1)break;loafile( users,user.id,,user.password ,user.qingjia ,user.empty); /
46、 coutcar.license car.flo car.pnumber car.ptimeendl;fclose(fp);/輸出 收費后 個人 憑據(jù)void Print(char license,char pchexing10,char pcolor2,int pnumber,int ptime,float &cost) /計算費用cost=ptime*float (0.2);/輸出cout.setf(ios:left);cout.width(10);cout車牌號;cout.width(10);cout車型;cout.width(2);cout車的顏色;cout.width(8);cout
47、車位號;cout.width(8);cout消費endl;cout.setf(ios:left);cout.width(10);coutlicense;cout.width(10);coutpchexing;cout.width(10);coutpcolor;cout.width(10);coutpnumber;cout.width(10);coutcostendl;void FourUserIn(User users6)User a;int i;cout請輸入四位管理人員的信息:endl;for(i=0;i4;i+)cout第 i+1;cout第 i+1a.id;cout第 i+
48、1a.password;cout第 i+1a.qingjia;a.empty=1;void loafile(User users6,char name10,char id10,char password10, empty);SaveUsers(users);void FourCarIn(Car cars6)/4 車進庫Car c;int i;cout請輸入四輛車的信息:endl;for(i=0;i4;i+)cout第 i+1c.license;cout第 i+1c.pchexing;int qingjia,intcout第 i+1c.pcolor;cout第 i+1c.pnumber;cout
49、第 i+1c.ptime;c.empty=1;void Loadfile(Car cars6,char license10,char pchexing10,char pcolor2,int pnumber,int ptime,int empty);/寫入文件 car.datSavecars(cars);/記錄一個停車位的狀態(tài)void Loadfile(Car cars6,char license10,char pchexing10,char pcolor2,int pnumber,int ptime,int empty)if(!license);(carspnumber-1.license,l
50、icense);carspnumber-1.pnumber =pnumber;carspnumber-1.ptime =ptime;carspnumber-1.empty =empty;void loafile(User users6,char name10,char id10,char password10, int qingjia,int empty)strcpy(,name);strcpy(usersqingjia-1.id,id);strcpy(usersqingjia-1.password,password);usersqingjia-1.emp
51、ty =empty;void Showcars(Car cars6)cout-現(xiàn)有汽車停車信息-endl;int j;cout.setf(ios:left);cout.width(10);cout車牌號;cout.width(10);cout車型;cout.width (2);cout車色;cout.width(8);cout車位號; cout.width(8);cout停車時間endl; for(j=0;j6;j+)if(carsj.empty=1)cout.setf(ios:left);cout.width(10);coutcarsj.license;cout.width(10);cout
52、carsj.pchexing;cout.width(2);coutcarsj.pcolor;cout.width(8);coutcarsj.pnumber;cout.width(8);coutcarsj.ptimeendl;void Showusers(User users6)cout-現(xiàn)有管理員信息-endl; int j;cout.setf(ios:left);cout.width(10);cout姓名;cout.width(10);cout管理號;cout.width (2);cout密碼;cout.width(8);cout請假次數(shù);coutendl;for(j=0;j6;j+)if(
53、usersj.empty=1)cout.setf(ios:left);cout.width(10);;cout.width(10);coutusersj.id;cout.width(2);coutusersj.password;cout.width(8);coutusersj.qingjia;coutendl;int UsertestAdd()/simple 登陸驗證和注冊用戶功能User UserArr10=031010216,神 1,031010216;/默認用戶int count=0;/統(tǒng)計輸入用戶名和密碼錯誤次數(shù)int i=0;/遍歷變量或找到用戶的 IDint k=1;/表示已存在的用戶數(shù)while(1)int n=0;/標識是否匹配,若匹配,則退出外循環(huán)cout請輸入您的管理賬號id;cout請輸入密碼password;for(i=0;i10;i+)if(!strcmp(UserArri.id,id)&!strcmp(UserArri.password,password)n=1;break;if(n)break;i=0;count+;cout密碼或賬號錯誤,;if(count=2|k=2)cout您今天已累計輸錯count 次-;cout您是否要注冊用戶?(否則您將自動退出系統(tǒng))endl;coutendl;cout輸入數(shù)字 1 表示同
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開展老年護理工作計劃
- 工程施工安全
- 初中地理知識科普
- 初物理教學(xué)工作計劃
- 2025高爐熱風爐灌漿施工承包合同
- 福安藥業(yè)回復(fù)函
- 2025集體土地房產(chǎn)買賣合同
- 輸液科護理工作總結(jié)
- 電信設(shè)備采購合同三篇
- 2025經(jīng)營合同 鄉(xiāng)鎮(zhèn)企業(yè)以物抵債協(xié)議書
- GB/T 24474.1-2020乘運質(zhì)量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實施方案(一)
- 高血壓患者用藥的注意事項講義課件
- 特種作業(yè)安全監(jiān)護人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
- 常暗之廂(7規(guī)則-簡體修正)
評論
0/150
提交評論