




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计(c+ )课程大作业设计题目:停车场管理系统设计院系:计算机科学与信息工程学院专业班级:学号姓名:指导教师:年 1 月目录一、 成员分工 . 1 二、需求分析 . 2 三、总体设计 . 3 四、详细设计 . 6 五、系统测试 . 17 六、总结 . 20 七、参考文献 . 21 一 成员分工我们小组成员共有三名,分别是,为了能按时圆满的完成这次vc+ 课程设计,我们小组进行了详细的分工, 以确保设计能按时完成。经过周密的考虑和详细的调查最终确定该停车场管理系统需要以下几个功能模块:(1)需求分析(2)界面的设计(3)添加功能(4)显示功能(5)查询功能(6)编辑功能(7)删除功
2、能(8)统计功能(9)保存功能(10) 读取功能经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工:神 1 具体完成以下模块的设计与实现:(1 ) 需求分析(2 ) 界面的设计(3 ) 添加功能(4 )保存功能神 2 具体完成以下模块的设计与实现:(1)显示功能(2)查询功能(3)显示功能神 3 主要具体完成以下模块的设计与实现:(1)编辑功能(2)删除功能(3)读取功能二 需求分析1问题描述定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体要求:设停车场是一个可停
3、放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n 辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。2. 基本要求(1)添加功能: 程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果
4、找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。(5)删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。(7)保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 3 系统运行环境 (1)硬件环境。联想双核处理器,2g内存, 2g独立显卡, 80g硬
5、盘。 (2)软件环境。 microsoft visual c+6.0,windosxp系统。三 总体设计(1) 设计思想本停车场 n个车位 , 所以可以用数组表示, 每辆车用一结构体表示,包括车牌号、颜色、车型、车位号、停车时间和停车标志位(标志是否停车)。当车入库时,将更改信息,当车出库时,将信息写入car.dat 中。再次进入该系统时,还用这个该数组,来接受 car.dat数据的读入, 便于用户以后的操作,防止停车信息的流失。此外,由于需要显示所有汽车的停车信息,所以我们又加了一个顾客结构体,一个顾客链表,当存车时,新建用户节点,并使用头插法,插于链表(便于取车时查到用户,补充完整用户的信
6、息),填写用户的相关信息(车牌号,颜色,车型, 车位号, 车入库时刻) 。当出库时, 查找相应节点, 补充完整用户信息,包括(用户留言,停车时间总计,花费)。当退出系统后,将已出库的汽车的车主信息,写入历史文件 list.dat 中 ,便于管理员的查询。将还未取走车的车主的信息存入临时文件temp.dat 中,防止系统关闭后数据信息的丢失,车主取车时找不到车。同时,还要将成员信息写入临时文件user.dat;(2) 数据结构结构体 car,保存每个车位的停车信息。结构体gustomer,保存每个客户的信息。结构体 user,保存管理员信息。数组 cars,保存整个停车状况。数组user; 链表
7、 custlist ,保存所有客户的信息,包括车已取走,和车未取走的。(3) 程序模块(1) 此停车场管理系统,主要分为以下若干模块:首先定义用来模拟停车的数组,用来保存顾客信息的链表,保存管理员信息的结构以及全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。在主函数中首先调用option()函数,出现欢迎用户使用的界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的主界面(包括顾客界面和停车场管理员管理界面)。当用户选择顾客界面时,跳入到顾客界面,再次界面,用户可以选择存车、取车及返回主页面。在用户的选择过程中,程序又分别存车,取车函数调用以及退出程序这三个函数模块
8、。其中,当存车时,调用了显示空闲车位状态的信息函数,并调用了保存car.dat的函数;当取车时,调用显示本次停车情况以及消费金额的函数, 并调用了保存car.dat的函数。建立 user.dat存放管理人员的信息。最后,在主界面选择“退出”,保存历史文件list.dat 和临时文件temp.dat。当用户选择车管系统时,调用管理员身份验证函数,从而跳入车管界面,然后相应的功能函数,实现查询所有停车信息。(2)各模块之间的调用关系以及算法设计下图是个模块之间的调用关系:欢迎页面进入主页面(3)函数设计int usertestadd(); void saveusers(user users6);
9、void loa(user users6); 车辆信息注:在取、存操作后 ,会自动保存信息到car.dat 中。在每次退出系统时,会保存list.dat和 temp.dat。初始停车场输入管理员信息显示管理员信息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,c
10、har 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 pnumber,int ptime,float &cost
11、); 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 *
12、&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
13、 c); 四 详细设计实现概要设计中定义的所有数据类型,对主要操作写出实现算法,对主程序和其他模块写出算法,写出函数的调用关系。(1) 数据类型结构体 car,保存每个车位的停车信息。struct car char license8; int pnumber; char pcolor2; char pchexing10; int ptime; int empty;/ 标志位,有车为1,无车为 0 ; struct customer char license10;/ 车牌号char pchexing10;/ 车的型号char pcolor2;/ 车的颜色char date64;/ 停车的时刻in
14、t ptimecount;/ 本次停车总时间float cost; char note100;/ 顾客留言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)存车vo
15、id enterpark(car cars6) coutinput your license,chexing,colorlicenpcolopche; while(!licen) coutinput your license,chexing,colorlicenpcolopche; /判断车库是否已经满了int i; for(i=0;i6;i+) if(carsi.empty=1) carsi.ptime +=5; else carsi.pnumber =i+1; carsi.ptime=5; carsi.empty=1; strcpy(carsi.license,licen); return
16、; / 如果使用break,则只能跳出单层循环, 2)取车void leavepark(car carsfloorpnumber,char license,int &floor,int &pnumber,int &ptime,char note100) /判断车位是否已空if(isempty(cars)=1) cout 停车场已没有车停放!请确定您是否停车。endl; return; / 查找车位int sign=1;/ 标志位,车库有该车为1,没有赋值为零,初始值为0 int i,j; while(sign) for(i=0;ifloor;i+) for(j=0;jp
17、number;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; /system (cls); for(i=0;i100000000;i+); carsfloor-1pnumber-1.floor =0; carsfloor-
18、1pnumber-1.pnumber =0; carsfloor-1pnumber-1.ptime=0; carsfloor-1pnumber-1.empty=0; strcpy(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
19、 =1) strcpy( , ); strcpy(user.id ,usersj.id ); strcpy(user.password ,usersj.password); 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;/ 统计输入用户名和
20、密码错误次数int i=0;/ 遍历变量或找到用户的id int 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 次-; co
21、ut 您是否要注册用户?(否则您将自动退出系统)endl; coutendl; cout 输入数字1 表示同意注册,其他则表示不同意条款tip; if(tip=1) if(k=2) cout 很遗憾,系统管理员用户总数达到上限,无法注册, 若需注册, 请联系管理员 endl; return 0; else cout 请输入要注册账号id; strcpy(userarrk+1.id ,id); cout 请输入您的姓名name; strcpy(userarrk+1.name ,name); cout 请输入您的密码password; strcpy(userarrk+1.password ,pas
22、sword); cout 注册成功,系统正在为您跳转到登陆界面endl; int j=0; while(j1000000000)j+; coutendl; +k; else return 0; coutendl; cout*endl; cout 欢迎进usera 入停车场后台管理系统endl; cout*endl; coutendl; return 1; 5)顾客界面void customer(car cars6) cout*停车场 *endl; while(1) cout1 存车 endl; cout2 取车 endl; cout3 返回上一级 endl; couti; if
23、(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; coutlicenpchepcolo; leavepark(cars,lice
24、n,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; else system (cls); break; 6)后台程序void manage(car cars6) coutwelcome!endl; while(1) cout1 初始停车场 endl; cout2
25、显示所有车辆信息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(use
26、rs); break; case 4: system (cls); showusers(users); break; if(a=y) system (cls); break; else system (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 *cl; /initcustlist(cl); load(cars); whi
27、le(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 尹堃 . 浅谈 asp.net技术的应用 j.硅谷动力 , 200
30、9,(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 #include #include
31、 #include #include #define pnumber 6 using namespace std; struct car char license10; char pchexing10; char pcolor2; int pnumber; int ptime; int empty;/ 标志位,有车为1,无车为0 ; / /顾客信息节点struct customer char license10;/ 车牌号char pchexing10;/ 车的型号char pcolor2;/ 车的颜色char date64;/ 停车的时刻int ptimecount;/ 本次停车总时间flo
32、at cost; char note100;/ 顾客留言customer *next; ; /顾客信息链表typedef customer custlist; /管理员struct user char 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);
33、 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 pnumber,int ptime,int empty); void fourcarin(car cars6); void enterpark(car cars6); void
34、 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 pchexing,char pcolor,int &pnumber,int &ptime,float &cost,char note100); void
35、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 *pchexing,char *pcolor); void getdate(char tmp64); void searchcust(c
36、ustlist *&cl,char *license,char *pchexing,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); co
37、ut 车型 ; 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; cout.width(8); coutc.ptimeendl; /顾客留言void customernote(char note100) coutnote; /存车void e
38、nterpark(car cars6) char licen10,pche10,pcolo2; coutlicen; coutpche; cout pcolo; while(!licen) coutlicen; coutpche; cout pcolo; /判断车库是否已经满了int i; for(i=0;i6;i+) if(carsi.empty=1) carsi.ptime +=5; else carsi.pnumber =i+1; carsi.ptime=5; carsi.empty=1; strcpy(carsi.license,licen); return; /如果使用break,则
39、只能跳出单层循环, /取车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 int j; while(sign) for(j=0;j6;j+) if(strcmp(cars
40、j.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=0; strcpy(carspnumber-1.licen
41、se, ); /由于 floor,pnumber 与实际的二位数组有区别,加 1 /取车的菜单项void caroutmenu(char license,char pchexing10,char pcolor2,int &pnumber,int &ptime,float &cost,char note100) cout1 输出凭据 endl; cout2 留言 endl; cout3 直接退出 endl; while(1) couti; if(i3) cout 您的操作非法 !endl; continue; switch(i) case 1: cout- 现有汽车停车信
42、息-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=
43、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 this fileendl; return; /to file car car; int j=0; while(j6) if(carsj.empty =1) strcpy(car.license ,carsj.license ); car.pnumber =carsj.pnumber ; c
44、ar.ptime =carsj.ptime ; car.empty=carsj.empty ; / fwrite(&cars,sizeof(car),1,fp); / 如果写成这样, 每次都从car00 地址开始写入,回报原来的内容覆盖掉,加深了我对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; retur
45、n; /to file 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(&cars,sizeof(car),1,fp); / 如果写成这样, 每次都从car00 地址开始写入,回报原来的内容覆盖掉,加深了我对fwrite ()的理解fwrite(&u
46、ser,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 information n = fread(&car,sizeof(car),1,fp); if(n!=1) break; / coutcar.license car.flo car.pnumber car.pti
47、me 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; user user; int n; while(!feof(fp) /read one car information n = fwrite(&user,sizeof(u
48、ser),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 pchexing10,char pcolor2,int pnumber,int ptime,float &cost) /计算费用cost=ptime*float (0.2);
49、/输出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.width(10); coutpcolor; cout.width(10); coutpnumber; cout
50、.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 qingjia,int empty); saveusers(users)
51、; 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 ptime,int empty);
52、/写入文件car.dat savecars(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; void loafil
53、e(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);
54、 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); coutcarsj.pchexing; cout.width(2); coutcarsj.pcolor; cout.width(8); coutca
55、rsj.pnumber; cout.width(8); coutcarsj.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
56、.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;/ 统计输入用户名和密码错误次数int i=0;/ 遍历变量或找到用户的id int k=1;/ 表示已存在的用户数while(1
57、) 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 次-; cout 您是否要注册用户?(否则您将自动退出系统)endl; coutendl; cout 输入数字1 表示同意注册,其他则表示不同意条款tip; if(tip=1) if(k=2) cout 很遗憾,系统管理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租书服务的社区文化大使项目考核试卷
- 粪便资源化利用在减少化肥使用中的作用考题考核试卷
- 江西师范高等专科学校《免疫与病原生物学实验Ⅲ》2023-2024学年第一学期期末试卷
- 吉林省辽源市重点名校2025届初三第三次模拟考试语文试题含解析
- 山东省滨州市达标名校2025年中考第三次调研考试语文试题试卷含解析
- 内蒙古自治区呼和浩特市赛罕区达标名校2025届初三中考模拟卷(二)化学试题含解析
- 西安邮电大学《非诉讼实务》2023-2024学年第二学期期末试卷
- 武汉工程大学《演讲与口才》2023-2024学年第二学期期末试卷
- 辽宁省辽河油田第二中学2025年高考模拟试卷(4)化学试题含解析
- 太原科技大学《医生与病人》2023-2024学年第二学期期末试卷
- 六下统编版复习2形近字
- 重庆十八梯介绍(改)课件
- 硒知识科普手册
- 起重吊装作业审批表
- 最新三角形的特性优质课教学设计公开课教案
- 新版冀教版科学四年级下册全册教案(双面打印)
- MSAGRR数据自动生成工具(已经解密)
- 招商工作策略与路径pptPPT通用课件
- DBJ 33-T 1268-2022工程建设工法编制标准(高清正版)
- 漫画教你精益生产
- 宫腔镜的仪器及噐械(课堂PPT)
评论
0/150
提交评论