停车场管理系统设计_第1页
停车场管理系统设计_第2页
停车场管理系统设计_第3页
停车场管理系统设计_第4页
停车场管理系统设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计(面向对象程序设计(C+C+)课程大作业)课程大作业设计题目:设计题目: 停车场管理系统设计停车场管理系统设计 院院 系:系: 计算机科学与信息工程学院计算机科学与信息工程学院 专业班级:专业班级: 学号姓名:学号姓名: 指导教师:指导教师: 年年 1 月月目目 录录一、一、 成员分工成员分工.1 1二、需求分析二、需求分析 .2 2三、总体设计三、总体设计 .3 3四、详细设计四、详细设计 .6 6五、系统测试五、系统测试 .1717六、总结六、总结 .2020七、参考文献七、参考文献 .2121 一一 成员分工成员分工 我们小组成员共有三名,分别是,为了能按时圆满的完成这次

2、 VC+课程设计,我们小组进行了详细的分工,以确保设计能按时完成。经过周密的考虑和详细的调查最终确定该停车场管理系统需要以下几个功能模块:(1)需求分析(2)界面的设计(3)添加功能(4)显示功能(5)查询功能(6)编辑功能(7)删除功能(8)统计功能(9)保存功能(10) 读取功能经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工: 神 1 具体完成以下模块的设计与实现:(1 ) 需求分析(2 ) 界面的设计(3 ) 添加功能(4 )保存功能 神 2 具体完成以下模块的设计与实现:(1)显示功能(2)查询功能(3)显示功能 神 3 主要具体完成以下模块的设计与实现:(1)编辑功能(

3、2)删除功能(3)读取功能二二 需求分析需求分析1 1问题描述问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡) 、到达的时间和离开的时间等信息和相关的对属性做操作的行为。 定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满 n 辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短

4、交纳费用。 2. 基本要求基本要求(1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。 (5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。 (6)统计功能:能统

5、计停车场中车辆的总数、按车型、按到达时间进行统计等。 (7)保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 3 3系统运行环境系统运行环境 (1)硬件环境。联想 双核处理器,2G 内存,2G 独立显卡,80G 硬盘。 (2)软件环境。Microsoft Visual C+6.0,WindosXP 系统。三三 总体设计总体设计(1) 设计思想设计思想本停车场 n 个车位, 所以可以用数组表示,每辆车用一结构体表示,包括车牌号、颜色、车型、 车位号、停车时间和停车标志位(标志是否停车)。当车入库时,

6、将更改信息,当车出库时,将信息写入 car.dat 中。再次进入该系统时,还用这个该数组,来接受 car.dat 数据的读入,便于用户以后的操作,防止停车信息的流失。此外,由于需要显示所有汽车的停车信息,所以我们又加了一个顾客结构体,一个顾客链表,当存车时,新建用户节点,并使用头插法,插于链表(便于取车时查到用户,补充完整用户的信息),填写用户的相关信息(车牌号,颜色,车型,车位号,车入库时刻)。当出库时,查找相应节点,补充完整用户信息,包括(用户留言,停车时间总计,花费)。当退出系统后,将已出库的汽车的车主信息,写入历史文件 list.dat 中,便于管理员的查询。将还未取走车的车主的信息存

7、入临时文件 temp.dat 中,防止系统关闭后数据信息的丢失,车主取车时找不到车。同时,还要将成员信息写入临时文件 user.dat;(2) 数据结构数据结构结构体 Car,保存每个车位的停车信息。结构体 Gustomer,保存每个客户的信息。结构体 User,保存管理员信息。数组 Cars,保存整个停车状况。数组 user;链表 CustList,保存所有客户的信息,包括车已取走,和车未取走的。(3) 程序模块程序模块 (1) 此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车的数组,用来保存顾客信息的链表,保存管理员信息的结构以及全局变量,然后编写主函数,在此主函数中实现对其它

8、各个模块的调用。在主函数中首先调用option()函数,出现欢迎用户使用的界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的主界面(包括顾客界面和停车场管理员管理界面)。当用户选择顾客界面时,跳入到顾客界面,再次界面,用户可以选择存车、取车及返回主页面。在用户的选择过程中,程序又分别存车,取车函数调用以及退出程序这三个函数模块。其中,当存车时,调用了显示空闲车位状态的信息函数,并调用了保存 car.dat 的函数;当取车时,调用显示本次停车情况以及消费金额的函数, 并调用了保存 car.dat 的函数。建立 user.dat 存放管理人员的信息。最后,在主界面选择“退出”,保存历

9、史文件 list.dat 和临时文件 temp.dat。当用户选择车管系统时,调用管理员身份验证函数,从而跳入车管界面,然后相应的功能函数,实现查询所有停车信息。 (2)各模块之间的调用关系以及算法设计下图是个模块之间的调用关系: 欢迎页面进入主页面客户界面停车场管理员界面存车界面取车界面返回主页退出输入车牌号满显示车位,客户选择车牌有效退出退出输入车牌号退出显示凭据客户留言返回主页否是(3)函数设计 int UsertestAdd(); void SaveUsers(User users6);车辆信息注:在取、存操作后,会自动保存信息到 car.dat 中。在每次退出系统时,会保存 list

10、.dat和 temp.dat。初始停车场输入管理员信息显示管理员信息 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 pchexing10,char pcolor2,int p

11、number,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 license,char pc

12、hexing,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,

13、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);四四 详细设计详细设计实现概要设计中定义的所有数据类型,对主要操作写出实现算法,对主程序

14、和其他模块写出算法,写出函数的调用关系。(1) 数据类型数据类型结构体 Car,保存每个车位的停车信息。struct Carchar license8;int pnumber;char pcolor2;char pchexing10;int ptime;int empty;/标志位,有车为 1,无车为 0; struct Customer char license10;/车牌号 char pchexing10;/车的型号 char pcolor2;/车的颜色 char date64;/停车的时刻 int ptimecount;/本次停车总时间 float cost; char note100;

15、/顾客留言 Customer *next; ; struct User char id10;/编号 char name10;/姓名 char password10;/留言 int qingjia; int empty;/标志位,有车为 1,无车为 0 ;数组 Cars,保存整个停车状况。数组 User,保存整个管理人员的信息。Car CarsPNUMBER;链表,保存所有客户的信息,包括车已取走,和车未取走的。typedef struct Snode CustList;(2) 主要操作主要操作1)存车void Enterpark(Car cars6)coutinput your license

16、,chexing,colorlicenpcolopche;while(!licen)coutinput your license,chexing,colorlicenpcolopche;/判断车库是否已经满了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,则只能跳出单层循环,2)取车void Leavepark(Car carsFLOORPN

17、UMBER,char license,int &floor,int &pnumber,int &ptime,char note100)/判断车位是否已空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)sign=0;floor=i;pnumber

18、=j;ptime=carsij.ptime;if(sign)cout您刚才输入的车牌号不存在!endl;coutlicense;if(sign=0)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(

19、carsfloor-1pnumber-1.license, );3)添加管理员的信息到 User.txt 中void SaveUsers(User 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.passw

20、ord);user.qingjia =usersj.qingjia;fwrite(&user,sizeof(user),1,fp);j+;fclose(fp);4)登录界面int UsertestAdd()/simple 登陆验证和注册用户功能User UserArr10=031010216,神 1,031010216;/默认用户int count=0;/统计输入用户名和密码错误次数int i=0;/遍历变量或找到用户的 IDint k=1;/表示已存在的用户数while(1)int n=0;/标识是否匹配,若匹配,则退出外循环cout请输入您的管理账号id;cout请输入密码pass

21、word;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您是否要注册用户?(否则您将自动退出系统)endl;coutendl;cout输入数字 1 表示同意注册,其他则表示不同意条款tip;if(tip=1)if(k=2)cout很遗憾,系统管理员用户总数达到上限,无法注册,若需注册,请联系管理员endl;ret

22、urn 0;elsecout请输入要注册账号id;strcpy(UserArrk+1.id ,id);cout请输入您的姓名name;strcpy(UserArrk+1.name ,name);cout请输入您的密码password;strcpy(UserArrk+1.password ,password);cout注册成功,系统正在为您跳转到登陆界面endl;int j=0;while(j1000000000)j+;coutendl;+k;else return 0;coutendl;cout*endl;cout欢迎进 UserA 入停车场后台管理系统endl;cout*en

23、dl;coutendl;return 1;5)顾客界面void Customer(Car cars6)cout*停车场*endl;while(1)cout1 存车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*停车场*en

24、dl;int pnumber,ptime;int pcount=0;float cost;char note100;coutlicenpchepcolo;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);br

25、eak;6)后台程序void Manage(Car cars6)coutWelcome!endl;while(1)cout1 初始停车场endl;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);Show

26、cars(cars);break;case 3: system (cls); FourUserIn(users); break; case 4: system (cls); Showusers(users); break;if(a=Y)system (cls);break;elsesystem (cls);break;7)主函数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 *c

27、l;/InitCustList(cl);Load(cars);while(1)cout*停车场*endl;cout1 客户界面endl;cout2 车管界面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); 五五 系统测试系统测试(1)登陆界面(2)客户界面(3)存车(4)取车(5)车管界面 六六 总结总结这次通过课程设计首先加深啦对对 C+程序设计这一

28、课程所学内容进一步理解和巩固,特别是对顺序进栈以及链式队列的结构还有保存程序到文件着几块,一次停车场系统的设计开发主要用的就是这几种,在进行系统开发的准备阶段,也就是进行需求分析阶段,对系统功能进行分析,并设计合理的模块化结构,提高了对问题分析和设计的能力。在进行系统开发的阶段能运用合理的控制流程编写清晰高效的程序,也训练了 C+语言程序的调试能力,能将一个小型各级组织系统联调通过,基本上可以完成每一项功能。汽车进入停车场的信息、离开停车场的信息以及通道上的信息都可以在程序上一一实现。但是,该程序也有不足的地方,就是管理员账号无法修改登录密码还有一些兼容性不是很好,不过为了简便代码,所以未实现

29、这一功能。同时我觉得这一系统也一点可改进的方面在于还应该增加时间的判断功能,即停车场内有可能有车辆停放时间超过一天。 总之,在这次对于停车场管理系统的课程设计中。我的收获还是挺多的,在系统开发中,使得我将计算机课程所学知识与实际问题很好的相联接在了一起。 七七 参考文献参考文献1数据结构理论与实践 杨永斌主编 天津科学技术出版社2Visual C+课程设计与系统开发案例 伍俊良编著 清华大学出版社3C+程序设计 谭浩强编著 清华大学出版社4求实科技.数据库通用模块及典型系统开发M. 人民邮电出版社, 2006.5陈刚. CSS 标准网页布局开发指南M. 清华大学出版社, 2007. 6尹堃.浅

30、谈 ASP.NET 技术的应用J.硅谷动力, 2009,(07). 7蔡义忠.在 ASP.NET 应用开发中验证码的设计J.黄冈职业技术学院学报,2009,(01).8徐安凤,黄河涛.基于 ASP.NET 2.0 的文件上传研究J.福建电脑, 2009,(03). 9胡晓庆.多层架构在 WEB 程序设计中的应用J.兵工自动化, 2007,(03). 10廖作斌,徐智.基于 ASP.NET 技术的数据库访问通用类设计J.福建电脑,2006,(11). 11程宴,徐征. ASP.NET 的网站新闻管理系统的设计与开发J.舰船电子工程,2008,(08).附录:附录:#include #includ

31、e #include #include #include #define PNUMBER 6using namespace std;struct Carchar license10;char pchexing10;char pcolor2;int pnumber;int ptime;int empty;/标志位,有车为 1,无车为 0;/顾客信息节点struct Customerchar license10;/车牌号char pchexing10;/车的型号 char pcolor2;/车的颜色char date64;/停车的时刻int ptimecount;/本次停车总时间float cos

32、t;char note100;/顾客留言Customer *next;/顾客信息链表typedef Customer CustList;/管理员struct Userchar id10;/编号char 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);v

33、oid Showusers(User users6);void loafile(User users6,char name10,char id10,char password10,int qingjia,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 Save

34、cars(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 license,char pchexing,char pcolor,int &pnumber,int &ptime,float &cost,char note100);void CarOutMenu(char license,char pchexi

35、ng,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 *pchexing,char *pcolor);void GetDate(char tmp64);void SearchCust(CustList *&cl,char *license,char *pch

36、exing,char *pcolor,float cost,int pcount);void Customer(Car cars6);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车位号;cout.width(8);cout停车开始时间endl

37、;cout.setf(ios:left);cout.width(10);coutc.license;cout.width(2);coutc.pcolor ;cout.width (10);coutc.pchexing;cout.width(8);coutc.pnumber;cout.width(8);coutc.ptimeendl;/顾客留言void CustomerNote(char note100)coutnote;/存车void Enterpark(Car cars6)char licen10,pche10,pcolo2;coutlicen;coutpche;cout pcolo;whi

38、le(!licen)coutlicen;coutpche;cout pcolo;/判断车库是否已经满了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,则只能跳出单层循环,/取车void Leavepark(Car cars6,char license,char pchexing10,char pcolor2,int &pnumber,

39、int &ptime,float &cost,char note100)/判断车位是否已空if(IsEmpty(cars)=1)cout停车场已没有车停放!请确定您是否停车。endl;return;/查找车位int sign=1;/标志位,车库有该车为 1,没有赋值为零,初始值为 0int 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

40、=0)cout车已找到,请稍等。endl;pnumber+=1;/system (cls);/延时for(j=0;j1000000000;j+);/车出库,将车位空出carspnumber-1.pnumber =0;carspnumber-1.ptime=0;carspnumber-1.empty=0;strcpy(carspnumber-1.license, );/由于 floor,pnumber 与实际的二位数组有区别,加 1/取车的菜单项void CarOutMenu(char license,char pchexing10,char pcolor2,int &pnumber,i

41、nt &ptime,float &cost,char note100)cout1 输出凭据endl;cout2 留言endl;cout3 直接退出endl;while(1)couti;if(i3)cout您的操作非法!endl;continue;switch(i)case 1:cout-现有汽车停车信息-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;/

42、得到当前时间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.empty=1) return false;return true;/逐条添加记录到 car.dat 中void Savecars(Car cars6)FILE* fp = fopen(car.txt,wb);if(fp=NULL)coutCan not open t

43、his 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.empty=carsj.empty ;/fwrite(&cars,sizeof(car),1,fp); / 如果写成这样,每次都从 car00地址开始写入,回报原来的内容覆盖掉,加深了我对 fwrite()的理解fwrite(&car,sizeof(car)

44、,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.empty =1)strcpy( , );strcpy(user.id ,usersj.id );strcpy(user.password ,usersj.password);user.qingjia =usersj

45、.qingjia;/fwrite(&cars,sizeof(car),1,fp); / 如果写成这样,每次都从 car00地址开始写入,回报原来的内容覆盖掉,加深了我对 fwrite()的理解fwrite(&user,sizeof(user),1,fp);j+;fclose(fp);void Load(Car cars6)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

46、onn = 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.empty );fclose(fp);void Loa(User users6)FILE* fp = fopen(user.txt,rb);if(fp=NULL)coutcan not open this fileendl;return;

47、 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); /coutcar.license car.flo car.pnumber car.ptime endl;fclose(fp);/输出收费后 个人 凭据void Print(char license,char pchexing1

48、0,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车位号;cout.width(8);cout消费endl;cout.setf(ios:left);cout.width(10);coutlicense;cout.width(10);coutpchexing;cout.w

49、idth(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+1a.password;cout第 i+1a.qingjia;a.empty=1;void loafile(User users6,char name10,char id10,char password10,int q

50、ingjia,int 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; cout第 i+1c.pcolor;cout第 i+1c.pnumber;cout第 i+1c.ptime;c.empty=1; void Loadfile(Car cars6,char license10,char pchexing10,char pcolor2,int pnumber,int

51、ptime,int empty);/写入文件 car.datSavecars(cars);/记录一个停车位的状态void Loadfile(Car cars6,char license10,char pchexing10,char pcolor2,int pnumber,int ptime,int empty)if(!license)return;strcpy(carspnumber-1.license,license);carspnumber-1.pnumber =pnumber;carspnumber-1.ptime =ptime;carspnumber-1.empty =empty;vo

52、id 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.empty =empty;void Showcars(Car cars6)cout-现有汽车停车信息-endl;int j;cout.setf(ios:left);cout.width(10);co

53、ut车牌号;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);coutcarsj.pchexing;cout.width(2);coutcarsj.pcolor;cout.width(8);coutcarsj.pnumber;cout.width(8);coutca

54、rsj.ptimeendl;void Showusers(User users6)cout-现有管理员信息-endl;int j;cout.setf(ios:left);cout.width(10);cout姓名;cout.width(10);cout管理号;cout.width (2);cout密码;cout.width(8);cout请假次数;coutendl;for(j=0;j6;j+)if(usersj.empty=1)cout.setf(ios:left);cout.width(10);;cout.width(10);coutusersj.id;cout

55、.width(2);coutusersj.password;cout.width(8);coutusersj.qingjia;coutendl;int UsertestAdd() /simple 登陆验证和注册用户功能User UserArr10=031010216,神 1,031010216;/默认用户 int count=0;/统计输入用户名和密码错误次数 int i=0;/遍历变量或找到用户的 IDint k=1;/表示已存在的用户数while(1)int n=0;/标识是否匹配,若匹配,则退出外循环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 次-;cou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论