停车场管理系统报告.pdf
《停车场管理系统报告.pdf》由会员分享,可在线阅读,更多相关《停车场管理系统报告.pdf(102页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信 息 科 学 与 技 术 学 院本 科 一 年 级软件开发实习报告专业:物联网班级:一班开发小组成员:宗霖,叶少晖,娄旸开发小组成员学号:20122714,20122725,20122740 实习单位:软件工程实验中心2013 年7 月27 目录诚信承诺书 .-3-一、系统题目.-4-二、项目分工.-4-三、系统需求分析.-4-1.系统设计的目的与意义.-5-2.系统功能需求、系统主要功能图.-5-四、总体设计.-5-1.系统功能分析;.-5-2.类的描述;.-6-3.各功能菜单介绍;.-6-4.系统功能模块的划分与设计,各功能函数的说明;.-6-五、详细设计与实现.-6-1.各个类设计、实
2、现与详细说明;.-6-2.各函数的设计与实现(含流程图)与详细说明;.-9-3.数据的保存和装载.-46-六、运行结果.-47-1、初始化设置.-47-2、使用系统(以最后一种设置为本操作演示的基础).-52-七、程序清单.-55-1.源文件的实现.-55-八、主要知识点.-97-九、软件开发实习收获、体会与建议.-98-1.软件开发实习收获与体会;.-98-2.对软件开发实习的建议和意见.-98-诚信承诺书本小组成员 _ 保证本次软件开发实习报告为自己独立总结、写作完成,报告容和源程序不会有三分之一以上的容与其他同学雷同,如果出现以上情况,本次软件开发实习成绩自愿记为零分。承诺人签名:_日期
3、:_年_月_日一、系统题目停车场管理系统二、项目分工写明小组成员具体分工,可以用表格表示,可具体到每人承担的类设计、函数设计、所编程序行数、系统调试分工、文档整理分工,每人工作量百分比等。项目分工宗霖叶少晖娄旸类设计typedef struct node class car class chushihua class Time class car1 函数设计(省略函数的参数)inline T fromString 4 个重载的函数int totaltime double money1 double money2 double money3 double money4 double money
4、void fenpei void dushuju void totalchewei void totalsearch void cheweihaosearch void chepaisearch void shoujihaosearach void search void zhangben()show()caidan()void caidandengji void caidanshoufei void caidanchaxun void anpaichewei()void shoufeixianshi()void tianruxinxi()所编程序行数750 400 750 系统调试分工文件读
5、取和写入纠正“收费功能”“查询功能”的错误文件读取和写入纠正“登记功能”部分的错误文档整理工作量百分比34%33%33%实验报告拟写三、系统需求分析1.系统设计的目的与意义本系统是一个综合的停车场管理系统,设计本系统的目的是使本系统能满足众多的停车场对于其业务的管理。即本停车场管理系统不是建立在一个具体存在的停车场的基础上来设计的,我们设计的是一个适用于绝大多数停车场的管理系统,这样以来,我们的程序生存空间就会大大增大。对于不同的停车场,经营者可以根据他的停车场的具体情况来进行系统设置,一旦设置成功,并保存在初始化文件里面后,该停车场管理系统就是为他这一个停车场服务的。我们在满足不同用户需求的
6、同时又做到了每个用户的个性化,体现了他们需要的独特性。意义在于我们只要设计一个程序,用户购买我们的程序,用户进行初始化设置并保存后就可以作为一个专门供他的停车场服务的管理程序。即我们可以减少程序的修改,用较为功能强大的程序去满足各种客户的需求。程序的可移植性很好,突出表现在它的适应性好,可以满足不同的需求。2.系统功能需求、系统主要功能图1)用户可以自己设置他的停车场的特点,包括车位个数,有没有区分忙闲时,有没有区分车型,收费制度;2)用户可以用菜单进入各级子菜单,各级子菜单也可以返回上一级菜单;3)用户可以对进入停车场的车辆信息进行登记;4)用户可以把登记的信息存入文件里,下次打开的时候车辆
7、信息还存在;5)用户可以根据停车场当前状态来给车辆分配车位;6)有新车辆进入,用户可以往文件里增加信息;7)用户可以根据不同需要查询他所需要的信息;8)车辆离开时,用户可以根据车牌信息对这辆车进入时登记的信息进行查询,算出停车费用,收取费用;9)收取费用后,用户可以删除该辆车的信息;10)用户在收费后,可以把收费金额添加到文件里,用户可以查看当日营业额;四、总体设计1.系统功能分析;(1)初始化功能:用户第一次进入系统时,可以对停车场的基本信息进行设置,如车位数,有无忙闲时(忙闲时时段设置),有无车型分类(各种车型个数),收费制度,并把初始化信息储存在文件中;(2)登记功能:车辆进入停车场时,
8、对车辆的信息进行登记,信息包括车牌号,车型,车主,进入停车场的时间,将信息储存到文件;(3)收费功能:车辆离开停车场时收费,填入车牌号,系统自动读取车辆进入时保存的信息,输入离开时的时间,系统根据收费制度进行收费,并删除该车的停车信息;(4)查询功能:有四种查询方式,分别为整体查询、按车牌号查询、按车位号查询、按车主查询;(5)账本功能:收费时将该车的收费金额累加到账本文件中,在整体查询时,显示今日营业额;2.类的描述;初始化类:为用户的初始化提供数据和函数;车类:储存车辆的信息;时间类:用以计算停车时间。3.各功能菜单介绍;主菜单可以进入下一级的“车辆进入时登记”、“车辆离开时收费”、“停车
9、场状态查询”、“退出系统”四个子菜单。“停车场状态查询”可以进入下级“整体查询”、“按车牌号查询”、“按车位号查询”、“按车主查询”。4.系统功能模块的划分与设计,各功能函数的说明;系统功能划分为四个:初始化模块,登记模块,收费模块,查询模块。其中初始化模块只在用户第一次使用系统时执行。登记函数:提示用户输入车辆信息,对用户输入的信息进行储存;收费函数:读取车辆进入时保存的信息,对车辆进行收费;五、详细设计与实现1.各个类设计、实现与详细说明;(1)初始化类class chushihua /初始化类 public:chushihua();void chushi();void money1();
10、void money2();void money3();void money4();void shezhimangshi();void showchushihua();void shezhichexing();void chucunmoneyint();static float shoufei,shoufei1,shoufei2,shoufei3,mangshi,xianshi,/变量声明 mangshi1,mangshi2,mangshi3,xianshi1,xianshi2,xianshi3;static int mang1,mang2;int sum,sum1,sum2,sum3,mon
11、eyint;(2)car 类class car /汽车类public:int cheweihao;string chepai,shoujihao;int chexing;Time time1,time2;car(string chepai=0,int hour1=0,int minute1=0,int cheweihao=0,int chexing=0,string shoujihao=0,int hour2=0,int minute2=0):time1(hour1,minute1),time2(hour2,minute2)this-chepai=chepai;this-cheweihao=c
12、heweihao;this-chexing=chexing;this-shoujihao=shoujihao;void printftime1()car:time1.showtime();void printftime2()car:time2.showtime();static double zhangben1;/静态数据成员,实现今日总收入的计算;car 类定义了车辆的信息,在车辆离开时将车辆的信息从文件中读取出来,储存到car 类里(3)Time 类class Time /时间类public:Time(int hour=0,int minute=0)this-hour=hour;this-
13、minute=minute;void settime(int hour,int minute)this-hour=hour;this-minute=minute;void showtime()couthour 时 minute 分 v;return v;四个重载函数int totaltime int totaltime(Time&t1,Time&t2)/参数为两个时间类的计算总的时间的函数int totalminute,totalhour,totaltime;if(t1.minutet2.minute)t1.minute+=60;t1.hour-;totalminute=t1.minute-t
14、2.minute;else totalminute=t1.minute-t2.minute;if(t1.hourt2.hour)t1.hour+=24;totalhour=t1.hour-t2.hour;else totalhour=t1.hour-t2.hour;totaltime=totalhour*60+totalminute;return totaltime;int totaltime(int mang,Time&t)/参数为忙时和时间类的计算总的时间的函数,前者减去后者来计算总的时间int totalhour,totaltime;totalhour=mang-t.hour;total
15、time=totalhour*60-t.minute;return totaltime;int totaltime(Time&t,int mang)/参数为忙时和时间类的计算总的时间的函数,前者减去后者来计算总的时间int totalhour,totaltime;totalhour=t.hour-mang;totaltime=totalhour*60+t.minute;return totaltime;int totaltime(int mang1,int mang2)/参数为两个忙时的计算总的时间的函数return(mang1-mang2)*60;double money1 double m
16、oney1(double shoufei,Time&t1,Time&t2)/对应于moneyint=1 时的情况,即无忙闲时和车位大中小的设置,计算此种情况时停车的收费int totaltime1;totaltime1=totaltime(t2,t1);return totaltime1*shoufei;double money2 double money2(double shoufei1,double shoufei2,double shoufei3,Time&t1,Time&t2,int chexing)/对应于 moneyint=2 时的情况,即无忙闲时而有停车位大中小之分的情况,计算此
17、种情况时停车的收费 int totaltime1;totaltime1=totaltime(t2,t1);if(chexing=1)return totaltime1*shoufei1;else if(chexing=2)return totaltime1*shoufei2;else if(chexing=3)return totaltime1*shoufei3;else coutmoney2 函数中 chexing数据出错!endl;return 0;double money3 double money3(int mang1,int mang2,double mangshi,double x
18、ianshi,Time&t1,Time&t2)/对应于 moneyint=3 时的情况,即车位无大中小之分,而时间有忙闲时之分的情况,计算此种情况时停车的收费if(t1.hourmang1&t2.hour=mang2&t2.hour=mang2|t1.hour=mang2&t2.hour=mang1&t2.hourmang2)return totaltime(t2,t1)*mangshi;else if(t1.hour=mang1&t2.hour=mang1&t1.hour=mang2)return totaltime(t2,mang2)*xianshi+totaltime(mang2,t1)
19、*mangshi;else if(t1.hour=mang2)return totaltime(mang1,t1)*xianshi+totaltime(t2,mang2)*xianshi+totaltime(mang2,mang1)*mangshi;else coutmoney3 函数出错!endl;return 0;double money4 double money4(int mang1,int mang2,double mangshi1,double mangshi2,double mangshi3,double xianshi1,double xianshi2,double xians
20、hi3,Time&t1,Time&t2,int chexing)/对应于 moneyint=34 时的情况,即车位有大中小之分,时间有忙闲时之分的情况,计算此种情况时停车的收费if(chexing=1)if(t1.hourmang1&t2.hour=mang2&t2.hour=mang2|t1.hour=mang2&t2.hour=mang1&t2.hourmang2)return totaltime(t2,t1)*mangshi1;else if(t1.hour=mang1&t2.hour=mang1&t1.hour=mang2)return totaltime(t2,mang2)*xian
21、shi1+totaltime(mang2,t1)*mangshi1;else if(t1.hour=mang2)return totaltime(mang1,t1)*xianshi1+totaltime(t2,mang2)*xianshi1+totaltime(mang2,mang1)*mangshi1;else coutmaney41ERROR!endl;return 0;else if(chexing=2)if(t1.hourmang1&t2.hour=mang2&t2.hour=mang2|t1.hour=mang2&t2.hour=mang1&t2.hourmang2)return t
22、otaltime(t2,t1)*mangshi2;else if(t1.hour=mang1&t2.hour=mang1&t1.hour=mang2)return totaltime(t2,mang2)*xianshi2+totaltime(mang2,t1)*mangshi2;else if(t1.hour=mang2)return totaltime(mang1,t1)*xianshi2+totaltime(t2,mang2)*xianshi2+totaltime(mang2,mang1)*mangshi2;else coutmoney42ERROR!endl;return 0;else
23、if(chexing=3)if(t1.hourmang1&t2.hour=mang2&t2.hour=mang2|t1.hour=mang2&t2.hour=mang1&t2.hourmang2)return totaltime(t2,t1)*mangshi3;else if(t1.hour=mang1&t2.hour=mang1&t1.hour=mang2)return totaltime(t2,mang2)*xianshi3+totaltime(mang2,t1)*mangshi3;else if(t1.hour=mang2)return totaltime(mang1,t1)*xians
24、hi3+totaltime(t2,mang2)*xianshi3+totaltime(mang2,mang1)*mangshi3;else coutmoney43ERROR!endl;return 0;else coutmoney4 函数中 chexing数据出错!endl;return 0;double money double money(int hour2,int minute2,car*c,int*a,string chepai)/封装好的收费函数,在caidanshoufei函数中调用,它从moneyint 文件中 moneyint 的值,通过判断moneyint 的值,调用mone
25、y1或 money2或 money3或 money4函数,这几个函数的参数从 chushihua这个文件中读取int i,hour1,minute1,chexing=0,s,s1,s2,s3,moneyint,mang1=0,mang2=0;double money_,shoufei=0,shoufei1=0,shoufei2=0,shoufei3=0,mangshi=0,mangshi1=0,mangshi2=0,mangshi3=0,xianshi=0,xianshi1=0,xianshi2=0,xianshi3=0;string line;ifstream myfile2(E:chush
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 停车场 管理 系统 报告
限制150内