停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì)說(shuō)明_第1頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì)說(shuō)明_第2頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì)說(shuō)明_第3頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì)說(shuō)明_第4頁(yè)
停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)( C+)課程大作業(yè)設(shè)計(jì)題目:停車(chē)場(chǎng)管理系統(tǒng)設(shè)計(jì)院系:計(jì)算機(jī)科學(xué)與信息工程學(xué)院專(zhuān)業(yè)班級(jí):學(xué)號(hào)姓名:指導(dǎo)教師:年 1 月目錄成員分工 . 1需求分析. 2總體設(shè)計(jì). 3詳細(xì)設(shè)計(jì). 6系統(tǒng)測(cè)試. 17總結(jié) . 20參考文獻(xiàn). 21一 成員分工我們小組成員共有三名,分別是,為了能按時(shí)圓滿的完成這次 VC+課程設(shè)計(jì),我們小組進(jìn)行了詳細(xì)的分工,以確保設(shè)計(jì)能按時(shí)完成。經(jīng)過(guò)周密的考慮和詳細(xì)的調(diào)查最終確定該停車(chē)場(chǎng)管理系統(tǒng)需要以下 幾個(gè)功能模塊:需求分析界面的設(shè)計(jì)添加功能顯示功能查詢(xún)功能編輯功能刪除功能統(tǒng)計(jì)功能保存功能讀取功能經(jīng)過(guò)小組成員的討論,并根據(jù)個(gè)人的特長(zhǎng)和具體愛(ài)好做如下具體分工:神 1

2、具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):需求分析界面的設(shè)計(jì)添加功能保存功能神 2 具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):顯示功能查詢(xún)功能顯示功能神 3 主要具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn): (1) 編輯功能刪除功能讀取功能二 需求分析1問(wèn)題描述定義車(chē)輛類(lèi),屬性有車(chē)牌號(hào)、顏色、車(chē)型(小汽車(chē)、小卡、中卡和大卡)、到達(dá)的時(shí)間和離開(kāi)的時(shí)間等信息和相關(guān)的對(duì)屬性做操作的行為。定義一個(gè)管理類(lèi),完成對(duì)停車(chē)場(chǎng)的管理。停車(chē)場(chǎng)的具體要求:設(shè)停車(chē)場(chǎng)是一個(gè)可停放 n 輛汽車(chē)的狹長(zhǎng)通道,且只有一個(gè)大門(mén)可供汽車(chē)進(jìn)出。汽車(chē)在停車(chē)場(chǎng)內(nèi)按車(chē)輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門(mén)在最南端,最先到達(dá)的第一輛車(chē)停放在車(chē)場(chǎng)的最北端),若車(chē)場(chǎng)內(nèi)已停滿

3、n 輛汽車(chē),則后來(lái)的汽車(chē)只能在門(mén)外的便道上等待,一旦有車(chē)開(kāi)走,則排在便道上的第一輛車(chē)即可開(kāi)入;每輛停放在車(chē)場(chǎng)的車(chē)在它離開(kāi)停車(chē)場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng) 短交納費(fèi)用。2. 基本要求添加功能:程序能夠添加到達(dá)停車(chē)場(chǎng)的車(chē)輛信息, 要求車(chē)輛的車(chē)牌號(hào)要唯一, 如果添加了重復(fù)編號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。查詢(xún)功能:可根據(jù)車(chē)牌號(hào)、車(chē)型等信息對(duì)已添加的停車(chē)場(chǎng)中的車(chē)輛信息進(jìn)行 查詢(xún),如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;顯示功能:可顯示當(dāng)前系統(tǒng)中所有車(chē)輛的信息,每條記錄占據(jù)一行。 (4) 編輯功能:可根據(jù)查詢(xún)結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意車(chē)牌號(hào)的唯一性。 (5 )刪除

4、功能:主要實(shí)現(xiàn)對(duì)已添加的車(chē)輛記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒(méi)有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作。(6 )統(tǒng)計(jì)功能:能統(tǒng)計(jì)停車(chē)場(chǎng)中車(chē)輛的總數(shù)、按車(chē)型、按到達(dá)時(shí)間進(jìn)行統(tǒng)計(jì)等。 (7 )保存功能:可將當(dāng)前系統(tǒng)中各類(lèi)人員記錄和休假記錄存入文件中,存入方式任意。(8 )讀取功能:可將保存在文件中的信息讀入到當(dāng)前系統(tǒng)中,供用戶(hù)進(jìn)行使用。 3系統(tǒng)運(yùn)行環(huán)境硬件環(huán)境。聯(lián)想 雙核處理器,2G 內(nèi)存,2G 獨(dú)立顯卡,80G 硬盤(pán)。軟件環(huán)境。Microsoft Visual C+6.0,WindosXP 系統(tǒng)。三 總體設(shè)計(jì)(1) 設(shè)計(jì)思想本停車(chē)場(chǎng) n 個(gè)車(chē)位, 所以可以用數(shù)組表示,每輛車(chē)用一結(jié)構(gòu)體表示,包

5、括車(chē)牌號(hào)、顏色、車(chē) 型、 車(chē)位號(hào)、停車(chē)時(shí)間和停車(chē)標(biāo)志位(標(biāo)志是否停車(chē))。當(dāng)車(chē)入庫(kù)時(shí),將更改信息,當(dāng)車(chē)出 庫(kù)時(shí),將信息寫(xiě)入 car.dat 中。再次進(jìn)入該系統(tǒng)時(shí),還用這個(gè)該數(shù)組,來(lái)接受 car.dat 數(shù)據(jù) 的讀入,便于用戶(hù)以后的操作,防止停車(chē)信息的流失。此外,由于需要顯示所有汽車(chē)的停車(chē) 信息,所以我們又加了一個(gè)顧客結(jié)構(gòu)體,一個(gè)顧客鏈表,當(dāng)存車(chē)時(shí),新建用戶(hù)節(jié)點(diǎn),并使用 頭插法,插于鏈表(便于取車(chē)時(shí)查到用戶(hù),補(bǔ)充完整用戶(hù)的信息),填寫(xiě)用戶(hù)的相關(guān)信息(車(chē) 牌號(hào),顏色,車(chē)型,車(chē)位號(hào),車(chē)入庫(kù)時(shí)刻)。當(dāng)出庫(kù)時(shí),查找相應(yīng)節(jié)點(diǎn),補(bǔ)充完整用戶(hù)信息, 包括(用戶(hù)留言,停車(chē)時(shí)間總計(jì),花費(fèi))。當(dāng)退出系統(tǒng)后,將已出庫(kù)的

6、汽車(chē)的車(chē)主信息,寫(xiě) 入歷史文件 list.dat 中,便于管理員的查詢(xún)。將還未取走車(chē)的車(chē)主的信息存入臨時(shí)文件 temp.dat 中,防止系統(tǒng)關(guān)閉后數(shù)據(jù)信息的丟失,車(chē)主取車(chē)時(shí)找不到車(chē)。同時(shí),還要將成員 信息寫(xiě)入臨時(shí)文件 user.dat;(2) 數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)體 Car,保存每個(gè)車(chē)位的停車(chē)信息。結(jié)構(gòu)體 Gustomer,保存每個(gè)客戶(hù)的信息。結(jié)構(gòu)體 User,保存管理員信息。數(shù)組 Cars,保存整個(gè)停車(chē)狀況。數(shù)組 user;鏈表 CustList,保存所有客戶(hù)的信息,包括車(chē)已取走,和車(chē)未取走的。(3) 程序模塊(1) 此停車(chē)場(chǎng)管理系統(tǒng),主要分為以下若干模塊:首先定義用來(lái)模擬停車(chē)的數(shù)組,用來(lái)保存顧客信

7、息的鏈表,保存管理員信息的結(jié)構(gòu)以及全局變量,然后編寫(xiě)主函數(shù),在此主函數(shù)中實(shí)現(xiàn)對(duì)其它各個(gè)模塊的調(diào)用。在主函數(shù)中首先調(diào)用option()函數(shù),出現(xiàn)歡迎用戶(hù)使用的界面,然后提示用戶(hù)進(jìn)入此停車(chē)場(chǎng)管理系統(tǒng)后,再出現(xiàn)一個(gè)供用戶(hù)選擇的主界面(包括顧客界面和停車(chē)場(chǎng)管理員管理界面)。當(dāng)用戶(hù)選擇顧客界面時(shí),跳入到顧客界面,再次界面,用戶(hù)可以選擇存車(chē)、取車(chē)及返回主頁(yè)面。在用戶(hù)的選擇過(guò)程中,程序又分別存車(chē),取車(chē)函數(shù)調(diào)用以及退出程序這三個(gè)函數(shù)模塊。其中,當(dāng)存車(chē)時(shí),調(diào)用了顯示空閑車(chē)位狀態(tài)的信息函數(shù),并調(diào)用了保存 car.dat 的函數(shù);當(dāng)取車(chē)時(shí),調(diào)用顯示本次停車(chē)情況以及消費(fèi)金額的函數(shù), 并調(diào)用了保存 car.dat 的函

8、數(shù)。建立 user.dat 存放管理人員的信息。最后,在主界面選擇“退出”,保存歷史文件list.dat 和臨時(shí)文件 temp.dat。當(dāng)用戶(hù)選擇車(chē)管系統(tǒng)時(shí),調(diào)用管理員身份驗(yàn)證函數(shù),從而跳入車(chē)管界面,然后相應(yīng)的功能函數(shù), 實(shí)現(xiàn)查詢(xún)所有停車(chē)信息。(2)各模塊之間的調(diào)用關(guān)系以及算法設(shè)計(jì)下圖是個(gè)模塊之間的調(diào)用關(guān)系:歡迎頁(yè)面進(jìn)入主頁(yè)面客戶(hù)界面停車(chē)場(chǎng)管理員界面存車(chē)界面取車(chē)界面返回主頁(yè)退出退出輸入車(chē)牌號(hào)退出輸入車(chē)牌號(hào)初始停車(chē)場(chǎng)車(chē)輛信息輸入管理員信息顯示管理員信息否車(chē) 牌有效顯示憑據(jù)客戶(hù)留言返回主頁(yè)是滿注:在取、存操作后,會(huì)自動(dòng)保存信息到 car.dat 中。在每次退出系統(tǒng)時(shí),會(huì)保存 list.dat 和

9、temp.dat。(3)函數(shù)設(shè)計(jì)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);四 詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有數(shù)據(jù)類(lèi)型,對(duì)主要操作寫(xiě)出實(shí)現(xiàn)算法,對(duì)主程序和其他模塊寫(xiě)出算法, 寫(xiě)出函數(shù)的調(diào)用關(guān)系。(1) 數(shù)據(jù)類(lèi)型結(jié)構(gòu)體 Car,保存

13、每個(gè)車(chē)位的停車(chē)信息。struct Carchar license8;int pnumber;char pcolor2;char pchexing10;int ptime;int empty;/標(biāo)志位,有車(chē)為 1,無(wú)車(chē)為 0;struct Customerchar license10;/車(chē)牌號(hào)char pchexing10;/車(chē)的型號(hào)char pcolor2;/車(chē)的顏色char date64;/停車(chē)的時(shí)刻int ptimecount;/本次停車(chē)總時(shí)間float cost;char note100;/顧客留言Customer *next;struct Userchar id10;/編號(hào)char n

14、ame10;/姓名char password10;/留言int qingjia;int empty;/標(biāo)志位,有車(chē)為 1,無(wú)車(chē)為 0 ;數(shù)組 Cars,保存整個(gè)停車(chē)狀況。數(shù)組 User,保存整個(gè)管理人員的信息。Car CarsPNUMBER;鏈表,保存所有客戶(hù)的信息,包括車(chē)已取走,和車(chē)未取走的。 typedef struct Snode CustList;(2) 主要操作1) 存車(chē)void Enterpark(Car cars6)coutinput your license,chexing,colorlicenpcolopche;while(!licen)coutinput your lice

15、nse,chexing,colorlicenpcolopche;/判斷車(chē)庫(kù)是否已經(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) 取車(chē)void Leavepark(Car carsFLOORPNUMBER,char license,int&pnumber,int &ptime,char note100)/判斷車(chē)位

16、是否已空if(IsEmpty(cars)=1)cout停車(chē)場(chǎng)已沒(méi)有車(chē)停放!請(qǐng)確定您是否停車(chē)。endl;return;/查找車(chē)位int sign=1;/標(biāo)志位,車(chē)庫(kù)有該車(chē)為 1,沒(méi)有賦值為零,初始值為 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您剛才輸入的車(chē)牌號(hào)不存在!endl; coutlicense;if(sign=0

17、)cout車(chē)已找到,請(qǐng)稍等。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 登陸驗(yàn)證和注冊(cè)用戶(hù)功能User UserArr10=031010216,神 1,031010216;/默認(rèn)用戶(hù)int count=0;/統(tǒng)計(jì)輸入用戶(hù)名和密碼錯(cuò)誤次數(shù)int i=0;/遍歷變量或找到用戶(hù)的 IDint k=1;/表示已存在的用戶(hù)數(shù)while(1)int n=0;/標(biāo)識(shí)是否匹配,若匹配,則退出外循環(huán)cout請(qǐng)輸入您的管理賬號(hào)id;cout請(qǐng)輸入密碼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密碼或賬號(hào)錯(cuò)誤,;if(count=2|k=2)cout您今天已累計(jì)輸錯(cuò)count 次-;cout您是否要注冊(cè)用戶(hù)?(否則您將自動(dòng)退出系統(tǒng))endl;coutendl;cout輸入數(shù)字 1 表示同意注冊(cè),其他則表示不同意條款tip;if(tip=1)if(k=2)cout 很遺憾,系統(tǒng)管理員用戶(hù)總數(shù)達(dá)到上限,無(wú)法注冊(cè),若需注冊(cè),請(qǐng)聯(lián)系管理員 endl;return 0;elsecout請(qǐng)輸入要注冊(cè)賬號(hào)id;strcpy(UserArrk+1.id ,id);cout請(qǐng)輸入您的姓名name;strcpy(Use

21、rArrk+1.name ,name);cout請(qǐng)輸入您的密碼password;strcpy(UserArrk+1.password ,password);cout注冊(cè)成功,系統(tǒng)正在為您跳轉(zhuǎn)到登陸界面endl;int j=0;while(j1000000000)j+;coutendl;+k;else return 0;coutendl;cout*endl;cout歡迎進(jìn) UserA 入停車(chē)場(chǎng)后臺(tái)管理系統(tǒng)endl; cout*endl;coutendl;return 1;5)顧客界面void Customer(Car cars6)cout*停車(chē)場(chǎng)*endl;while(1)cou

22、t1 存車(chē)endl;cout2 取車(chē)endl;cout3 返回上一級(jí)endl;couti;if(i3)cout您的操作非法!endl; continue;if(i=1|i=2)switch(i)case 1:system (cls);cout*停車(chē)場(chǎng)*endl; Enterpark(cars);Savecars(cars);cout退出?(Y:是,N:不)endl;couta;Brea;case 2:system (cls);cout*停車(chē)場(chǎng)*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)后臺(tái)程序void Manage(Car cars6)coutWelcome!endl;while(1)cout1 初始停車(chē)場(chǎng)endl;

24、cout2 顯示所有車(chē)輛信息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*停車(chē)場(chǎng)*endl; cout1 客戶(hù)界面endl;cout2 車(chē)

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)測(cè)試(1)登陸界面(2)客戶(hù)界面(3)存車(chē)(4)取車(chē)(5)車(chē)管界面六 總結(jié)這次通過(guò)課程設(shè)計(jì)首先加深啦對(duì)對(duì) C+程序設(shè)計(jì)這一課程所學(xué)內(nèi)容進(jìn)一步理解和鞏固,特別是對(duì)順序進(jìn)棧以及鏈?zhǔn)疥?duì)列的結(jié)構(gòu)還有保存程序到文件著幾塊,一次停車(chē)場(chǎng)系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)主要用的就是這幾種,在進(jìn)行系統(tǒng)開(kāi)發(fā)的準(zhǔn)備階段,也就是進(jìn)行

27、需求分析階段,對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu),提高了對(duì)問(wèn)題分析和設(shè)計(jì)的能力。在進(jìn)行系統(tǒng)開(kāi)發(fā)的階段能運(yùn)用合理的控制流程編寫(xiě)清晰高效的程序,也訓(xùn)練了 C+語(yǔ)言程序的調(diào)試能力,能將一個(gè)小型各級(jí)組織系統(tǒng)聯(lián)調(diào)通過(guò),基本上可以完成每一項(xiàng)功能。汽車(chē)進(jìn)入停車(chē)場(chǎng)的信息、離開(kāi)停車(chē)場(chǎng)的信息以及通道上的信息都可以在程序上一一實(shí)現(xiàn)。但是,該程序也有不足的地方,就是管理員賬號(hào)無(wú)法修改登錄密碼還有一些兼容性不是很好,不過(guò)為了簡(jiǎn)便代碼,所以未實(shí)現(xiàn)這一功能。同時(shí)我覺(jué)得這一系統(tǒng)也一點(diǎn)可改進(jìn)的方面在于還應(yīng)該增加時(shí) 間的判斷功能,即停車(chē)場(chǎng)內(nèi)有可能有車(chē)輛停放時(shí)間超過(guò)一天??傊谶@次對(duì)于停車(chē)場(chǎng)管理系統(tǒng)的課程設(shè)計(jì)中。我的收獲

28、還是挺多的,在系統(tǒng)開(kāi)發(fā)中,使得我將 計(jì)算機(jī)課程所學(xué)知識(shí)與實(shí)際問(wèn)題很好的相聯(lián)接在了一起。1數(shù)據(jù)結(jié)構(gòu)理論與實(shí)踐七 參考文獻(xiàn)楊永斌主編 天津科學(xué)技術(shù)出版社2Visual C+課程設(shè)計(jì)與系統(tǒng)開(kāi)發(fā)案例伍俊良編著 清華大學(xué)出版社3C+程序設(shè)計(jì)譚浩強(qiáng)編著清華大學(xué)出版社4求實(shí)科技.數(shù)據(jù)庫(kù)通用模塊及典型系統(tǒng)開(kāi)發(fā)M. 人民郵電出版社, 2006.5陳剛. CSS 標(biāo)準(zhǔn)網(wǎng)頁(yè)布局開(kāi)發(fā)指南M. 清華大學(xué)出版社, 2007.6尹堃.淺談 ASP.NET 技術(shù)的應(yīng)用J.硅谷動(dòng)力, 2009,(07).7蔡義忠.在 ASP.NET 應(yīng)用開(kāi)發(fā)中驗(yàn)證碼的設(shè)計(jì)J.黃岡職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009,(01). 8徐安鳳,黃河濤.基于

29、ASP.NET 2.0 的文件上傳研究J.福建電腦, 2009,(03).9胡曉慶.多層架構(gòu)在 WEB 程序設(shè)計(jì)中的應(yīng)用J.兵工自動(dòng)化, 2007,(03).10廖作斌,徐智.基于 ASP.NET 技術(shù)的數(shù)據(jù)庫(kù)訪問(wèn)通用類(lèi)設(shè)計(jì)J.福建電腦,2006,(11).11程宴,徐征. ASP.NET 的網(wǎng)站新聞管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(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;/標(biāo)志位,有車(chē)為 1,無(wú)車(chē)為 0;/ /顧客信息節(jié)點(diǎn)struct Customerchar license10;/車(chē)牌號(hào)char pchexing10;/車(chē)的型號(hào)char pcolor2;/車(chē)的顏色char date64;/停車(chē)的時(shí)刻int ptimecount;/本次停車(chē)總時(shí)間float cost;char note100;/顧客留言Customer *next;/顧客信息鏈表typedef Customer CustList;/管理員struct Userchar id10;/編號(hào)char

31、 name10;/姓名char password10;/留言int qingjia;int empty;/標(biāo)志位,有車(chē)為 1,無(wú)車(chē)為 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);/游客個(gè)人信息的自我查詢(xún)v

35、oid EachGuideInfor(Car c)cout.setf(ios:left);cout.width(10);cout車(chē)牌號(hào);cout.width(8);cout顏色;cout.width (8);cout車(chē)型;cout.width(8);cout車(chē)位號(hào);cout.width(8);cout停車(chē)開(kāi)始時(shí)間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;/存車(chē)void Enterpark(Car cars6)char licen10,pche10,pcolo2;coutlicen;coutpche;cout pcolo;while(!licen)coutlicen;coutpche;cout pcolo;/判斷車(chē)庫(kù)是否已經(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),/取車(chē)void Leavepark(Car cars6,char license,char pchexing10,char pcolor2,int &pnumber,int &ptime,float &cost,char note100)/判斷車(chē)位是否已空if(IsEmpty(cars)=1)cout停車(chē)場(chǎng)已沒(méi)有車(chē)停放!請(qǐng)確定您是否停車(chē)。endl; return;/查找車(chē)位int sign=1;/標(biāo)志位,車(chē)庫(kù)有該車(chē)為 1,沒(méi)有賦值為零,初始值為 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您剛才輸入的車(chē)牌號(hào)不存在!endl;coutlicense;if(sign=0)cout車(chē)已找到,請(qǐng)稍等。endl;pnumber+=1;/system (cls);/延時(shí)for(j=0;j1000000000;j+);/車(chē)出庫(kù),將車(chē)位空出carspnumber-1.pnumber =0;carspnumber-1.ptime=0;carspnumber-1.empty

39、=0;strcpy(carspnumber-1.license, );/由于 floor,pnumber 與實(shí)際的二位數(shù)組有區(qū)別,加 1/取車(chē)的菜單項(xiàng)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)有汽車(chē)停車(chē)信息-

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;/得到當(dāng)前時(shí)間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); / 如果寫(xiě)成這樣,每次都從 car00地址開(kāi)始寫(xiě)入,回報(bào)原來(lái)的內(nèi)容覆蓋掉,加深了我對(duì) 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); / 如果寫(xiě)成這樣,每次都從 car00地址開(kāi)始寫(xiě)入,回報(bào)原來(lái)的內(nèi)容覆蓋掉,加深了我對(duì) 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);/輸出 收費(fèi)后 個(gè)人 憑據(jù)void Print(char license,char pchexing10,char pcolor2,int pnumber,int ptime,float &cost) /計(jì)算費(fèi)用cost=ptime*float (0.2);/輸出cout.setf(ios:left);cout.width(10);cout車(chē)牌號(hào);cout.width(10);cout車(chē)型;cout.width(2);cout車(chē)的顏色;cout.width(8);cout

47、車(chē)位號(hào);cout.width(8);cout消費(fèi)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請(qǐng)輸入四位管理人員的信息: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 車(chē)進(jìn)庫(kù)Car c;int i;cout請(qǐng)輸入四輛車(chē)的信息: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);/寫(xiě)入文件 car.datSavecars(cars);/記錄一個(gè)停車(chē)位的狀態(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)有汽車(chē)停車(chē)信息-endl;int j;cout.setf(ios:left);cout.width(10);cout車(chē)牌號(hào);cout.width(10);cout車(chē)型;cout.width (2);cout車(chē)色;cout.width(8);cout車(chē)位號(hào); cout.width(8);cout停車(chē)時(shí)間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管理號(hào);cout.width (2);cout密碼;cout.width(8);cout請(qǐng)假次數(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 登陸驗(yàn)證和注冊(cè)用戶(hù)功能User UserArr10=031010216,神 1,031010216;/默認(rèn)用戶(hù)int count=0;/統(tǒng)計(jì)輸入用戶(hù)名和密碼錯(cuò)誤次數(shù)int i=0;/遍歷變量或找到用戶(hù)的 IDint k=1;/表示已存在的用戶(hù)數(shù)while(1)int n=0;/標(biāo)識(shí)是否匹配,若匹配,則退出外循環(huán)cout請(qǐng)輸入您的管理賬號(hào)id;cout請(qǐng)輸入密碼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密碼或賬號(hào)錯(cuò)誤,;if(count=2|k=2)cout您今天已累計(jì)輸錯(cuò)count 次-;cout您是否要注冊(cè)用戶(hù)?(否則您將自動(dòng)退出系統(tǒng))endl;coutendl;cout輸入數(shù)字 1 表示同

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論