版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息科学与技术学院本科一年级软件开发实习报告专业:物联网班级:一班开发小组成员:宗霖,叶少晖,娄旸开发小组成员学号:20122714,20122725,20122740实习单位:软件工程实验中心2013年7月27目录诚信承诺书 .- 3 -一、系统题目 .- 4 -二、项目分工 .- 4 -三、系统需求分析 .- 5 -1.系统设计的目的与意义 .- 5 -2.系统功能需求、系统主要功能图.- 5 -四、总体设计 .- 5 -1.系统功能分析; .- 5 -2.类的描述; .- 6 -3.各功能菜单介绍; .- 6 -4.系统功能模块的划分与设计,各功能函数的说明;.- 6 -五、详细设计与实
2、现 .- 6 -1.各个类设计、实现与详细说明;.- 6 -2.各函数的设计与实现(含流程图)与详细说明;.- 9 -3.数据的保存和装载 .-46-六、运行结果 .-47-1、初始化设置 .-47-2、使用系统(以最后一种设置为本操作演示的基础).-52-七、程序清单 .-55-1.源文件的实现 .-55-八、主要知识点 .-97-九、软件开发实习收获、体会与建议.-98-1.软件开发实习收获与体会; .-98-2.对软件开发实习的建议和意见 .-98-诚信承诺书本小组成员保证本次软件开发实习报告为自己独立总结、 写作完成,报告容和源程序不会有三分之一以上的容与其他同学雷同,如果出现以上情况
3、,本次软件开发实习成绩自愿记为零分。承诺人签名: _日期: _年 _月 _日一、系统题目停车场管理系统二、项目分工写明小组成员具体分工, 可以用表格表示,可具体到每人承担的类设计、函数设计、所编程序行数、系统调试分工、文档整理分工,每人工作量百分比等。项目分工宗霖叶少晖娄旸类设计typedef struct nodeclass chushihuaclass Timeclass carclass car1函数设计inline T fromStringshow()void(省略函数的4 个重载的函数caidan()anpaichewei()参数)int totaltimevoidvoiddoubl
4、e money1caidandengjishoufeixianshi()double money2voidvoid tianruxinxi()double money3caidanshoufeidouble money4voiddouble moneycaidanchaxunvoid fenpeivoid dushujuvoid totalcheweivoid totalsearchvoidcheweihaosearchvoid chepaisearchvoidshoujihaosearachvoid searchvoid zhangben()所编程序行数750400750系统调试分工文件读取
5、和写入文件读取和写入纠正“收费功能”“查询纠正“登记功能” 部功能”的错误分的错误文档整理工作量百分比34%33%33%实验报告拟写三、系统需求分析1.系统设计的目的与意义本系统是一个综合的停车场管理系统,设计本系统的目的是使本系统能满足众多的停车场对于其业务的管理。 即本停车场管理系统不是建立在一个具体存在的停车场的基础上来设计的, 我们设计的是一个适用于绝大多数停车场的管理系统,这样以来, 我们的程序生存空间就会大大增大。 对于不同的停车场,经营者可以根据他的停车场的具体情况来进行系统设置,一旦设置成功, 并保存在初始化文件里面后,该停车场管理系统就是为他这一个停车场服务的。 我们在满足不
6、同用户需求的同时又做到了每个用户的个性化,体现了他们需要的独特性。意义在于我们只要设计一个程序,用户购买我们的程序,用户进行初始化设置并保存后就可以作为一个专门供他的停车场服务的管理程序。即我们可以减少程序的修改,用较为功能强大的程序去满足各种客户的需求。程序的可移植性很好,突出表现在它的适应性好,可以满足不同的需求。2.系统功能需求、系统主要功能图1) 用户可以自己设置他的停车场的特点, 包括车位个数, 有没有区分忙闲时, 有没有区分车型,收费制度;2) 用户可以用菜单进入各级子菜单,各级子菜单也可以返回上一级菜单;3) 用户可以对进入停车场的车辆信息进行登记;4) 用户可以把登记的信息存入
7、文件里,下次打开的时候车辆信息还存在;5) 用户可以根据停车场当前状态来给车辆分配车位;6) 有新车辆进入,用户可以往文件里增加信息;7) 用户可以根据不同需要查询他所需要的信息;8)车辆离开时, 用户可以根据车牌信息对这辆车进入时登记的信息进行查询,算出停车费用,收取费用;9) 收取费用后,用户可以删除该辆车的信息;10) 用户在收费后,可以把收费金额添加到文件里,用户可以查看当日营业额;四、总体设计1.系统功能分析;( 1 )初始化功能: 用户第一次进入系统时, 可以对停车场的基本信息进行设置, 如车位数,有无忙闲时(忙闲时时段设置) ,有无车型分类(各种车型个数) ,收费制度,并把初始化
8、信息储存在文件中;( 2 )登记功能:车辆进入停车场时,对车辆的信息进行登记,信息包括车牌号,车型,车主,进入停车场的时间,将信息储存到文件;( 3 )收费功能:车辆离开停车场时收费,填入车牌号,系统自动读取车辆进入时保存的信息,输入离开时的时间,系统根据收费制度进行收费,并删除该车的停车信息;( 4 )查询功能:有四种查询式,分别为整体查询、按车牌号查询、按车位号查询、按车主查询;( 5 )账本功能:收费时将该车的收费金额累加到账本文件中,在整体查询时,显示今日营业额;2.类的描述;初始化类:为用户的初始化提供数据和函数;车类:储存车辆的信息;时间类:用以计算停车时间。3.各功能菜单介绍;主
9、菜单可以进入下一级的“车辆进入时登记” 、“车辆离开时收费” 、“停车场状态查询” 、“退出系统”四个子菜单。“停车场状态查询”可以进入下级“整体查询”、“按车牌号查询” 、“按车位号查询” 、“按车主查询”。4.系统功能模块的划分与设计,各功能函数的说明;系统功能划分为四个:初始化模块,登记模块,收费模块,查询模块。其中初始化模块只在用户第一次使用系统时执行。登记函数:提示用户输入车辆信息,对用户输入的信息进行储存;收费函数:读取车辆进入时保存的信息,对车辆进行收费;五、详细设计与实现1.各个类设计、实现与详细说明;(1 )初始化类class chushihuapublic:chushihu
10、a();void chushi();void money1();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
11、 mang1,mang2;int sum,sum1,sum2,sum3,moneyint;(2 ) car类class carpublic:/ 汽车类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,min
12、ute2)this-chepai=chepai;this-cheweihao=cheweihao;this-chexing=chexing;this-shoujihao=shoujihao;void printftime1()car:time1.showtime();void printftime2()car:time2.showtime();static double zhangben1;/ 静态数据成员,实现今日总收入的计算;car类定义了车辆的信息,在车辆离开时将车辆的信息从文件中读取出来,储存到car类里(3 ) Time类class Timepublic:Time(int hour=
13、0,int minute=0)this-hour=hour;this-minute=minute;/ 时间类void settime(int hour,int minute)this-hour=hour;this-minute=minute;void showtime()couthour时 minute分 v;return v;四个重载函数int totaltimeint totaltime(Time &t1,Time &t2)int totalminute,totalhour,totaltime;if(t1.minutet2.minute)t1.minute+=60;t1.hour-;tot
14、alminute=t1.minute-t2.minute;/ 参数为两个时间类的计算总的时间的函数elsetotalminute=t1.minute-t2.minute;if(t1.hourt2.hour)t1.hour+=24;totalhour=t1.hour-t2.hour;elsetotalhour=t1.hour-t2.hour;totaltime=totalhour*60+totalminute;return totaltime;int totaltime(int mang,Time &t)/ 参数为忙时和时间类的计算总的时间的函数,前者减去后者来计算总的时间int totalho
15、ur,totaltime;totalhour=mang-t.hour;totaltime=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)*
16、60;/ 参数为两个忙时的计算总的时间的函数double money1double money1(double shoufei,Time &t1,Time &t2) / 对应于 moneyint=1 时的情况,即无忙闲时和车位大中小的设置,计算此种情况时停车的收费int totaltime1;totaltime1=totaltime(t2,t1);return totaltime1*shoufei;double money2double money2(double shoufei1,double shoufei2,double shoufei3,Time &t1,Time&t2,int che
17、xing)/ 对应于 moneyint=2时的情况,即无忙闲时而有停车位大中小之分的情况,计算此种情况时停车的收费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;elsecoutmoney2函数中 chexing数据出错 !endl;return 0;double money3double money
18、3(int mang1,int mang2,double mangshi,double xianshi,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
19、 totaltime(t2,mang2)*xianshi+totaltime(mang2,t1)*mangshi;else if(t1.hour=mang2)returntotaltime(mang1,t1)*xianshi+totaltime(t2,mang2)*xianshi+totaltime(mang2,mang1)*mangshi;elsecoutmoney3函数出错 !endl;return 0;double money4double money4(int mang1,int mang2,double mangshi1,double mangshi2,doublemangshi3,
20、double xianshi1,double xianshi2,double xianshi3,Time &t1,Time &t2,intchexing)/ 对应于 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
21、&t1.hour=mang2)return totaltime(t2,mang2)*xianshi1+totaltime(mang2,t1)*mangshi1;else if(t1.hour=mang2)returntotaltime(mang1,t1)*xianshi1+totaltime(t2,mang2)*xianshi1+totaltime(mang2,mang1)*mangshi1;elsecoutmaney41ERROR!endl;return 0;else if(chexing=2)if(t1.hourmang1&t2.hour=mang2&t2.hour=mang2| t1.h
22、our=mang2&t2.hour=mang1&t2.hourmang2)return totaltime(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)returntotaltime(mang1,t1)*xianshi2+totaltime(t2,mang2)*xianshi2+totaltime(mang2,mang1)*mangsh
23、i2;elsecoutmoney42ERROR!endl;return 0;else 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
24、.hour=mang2)returntotaltime(mang1,t1)*xianshi3+totaltime(t2,mang2)*xianshi3+totaltime(mang2,mang1)*mangshi3;elsecoutmoney43ERROR!endl;return 0;elsecoutmoney4函数中 chexing数据出错 !endl;return 0;double moneydouble money(int hour2,int minute2,car *c,int *a,string chepai)/封装好的收费函数,在caidanshoufei函数中调用,它从money
25、int文件中moneyint的值,通过判断moneyint的值,调用money1或money2或money3或money4函数,这几个函数的参数从chushihua这个文件中读取int i,hour1,minute1,chexing=0,s,s1,s2,s3,moneyint,mang1=0,mang2=0; doublemoney_,shoufei=0,shoufei1=0,shoufei2=0,shoufei3=0,mangshi=0,mangshi1=0,man gshi2=0,mangshi3=0,xianshi=0,xianshi1=0,xianshi2=0,xianshi3=0;s
26、tring line;ifstream myfile2(E:chushihua.txt);if(myfile2)getline(myfile2,line,n);s=fromString(line);getline(myfile2,line,n);s1=fromString(line);getline(myfile2,line,n);s2=fromString(line);getline(myfile2,line,n);s3=fromString(line);myfile2.close();elsecout不能打开chushihua文件 !endl;return 0;ifstream myfil
27、e1(E:moneyint.txt);/ 从 moneyint文件中读取moneyintif(myfile1)getline(myfile1,line,n);moneyint=fromString(line);myfile1.close();elsecout不能打开moneyint文件 !endl;return 0;for(i=0;i=s)cout没有这辆车!endl;return 0;fstream my(E:shuju.txt,ios_base:out);/ 每次有车辆离开,即将car类的信息存入 shuju 文件中,以便退出系统再次调用时实现停车数据的恢复for(i=0;is;i+)if
28、(ai=1)myci.cheweihaoendl;myci.chepaiendl;myci.chexingendl;myci.shoujihaoendl;myci.time1.hourendl;myci.time1.minuteendl;fstream myfile41(E:chewei1.txt,ios_base:out);fstream myfile42(E:chewei2.txt,ios_base:out);fstream myfile43(E:chewei3.txt,ios_base:out);if(moneyint=1|moneyint=3)for(i=0;is;i+)if(ai=0
29、)break;myfile41i+1;else if(moneyint=2|moneyint=4)if(chexing=1)for(i=s1-1;is2-1;i+)if(ai=0)break;myfile41i+1;else if(chexing=2)for(i=s2-1;is3-1;i+)if(ai=0)break;myfile42i+1;else if(chexing=3)for(i=s3-1;is;i+)if(ai=0)break;myfile43i+1;elsecoutmoney函数中 chexing数据错误 !endl;return 0;elseTime t1(hour1,minut
30、e1);Time t2(hour2,minute2);ifstream myfile21(E:chushihua.txt);ifstream myfile22(E:chushihua.txt);ifstream myfile23(E:chushihua.txt);ifstream myfile24(E:chushihua.txt);switch(moneyint)case 1:/moneyint为 1的情况if(myfile21)getline(myfile21,line,n);getline(myfile21,line,n);shoufei=fromString(line);myfile21
31、.close();elsecout 不能打开 chushihua文件 !endl;return 0;money_=money1(shoufei,t1,t2);car:zhangben1+=money_;return money_;break;case 2: /moneyint 为 2 的情况 if(myfile22)getline(myfile22,line,n);getline(myfile22,line,n);getline(myfile22,line,n);getline(myfile22,line,n);getline(myfile22,line,n);shoufei1=fromStr
32、ing(line);getline(myfile22,line,n);shoufei2=fromString(line);getline(myfile22,line,n);shoufei3=fromString(line);myfile22.close();elsecout不能打开chushihua文件 !endl;return 0;money_=money2(shoufei1,shoufei2,shoufei3,t1,t2,chexing);car:zhangben1+=money_;return money_;break;case 3:/moneyint为 3的情况if(myfile23)
33、getline(myfile23,line,n);getline(myfile23,line,n);mang1=fromString(line);getline(myfile23,line,n);mang2=fromString(line);getline(myfile23,line,n);mangshi=fromString(line);getline(myfile23,line,n);xianshi=fromString(line);myfile23.close();elsecout 不能打开 chushihua文件 !endl;return 0;money_=money3(mang1,mang2,mangshi,xianshi,t1,t2);car:zhangben1+=money_;return money_;break;case 4: /moneyint 为 4 的情况 if(myfile24)getline(myfile24,line,n);getline(myfile24,line,n);getline(myfile24,line,n);getline(myfile24,l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东会计灵活用工协议书
- 民宿运营管理策划
- 满月宝宝体位护理
- 妇科宫外孕科普
- 空调列车服务质量规范
- 老年医学科老年病疼痛管理方案
- 2026云南临沧边境管理支队招聘边境地区专职辅警备考题库含答案详解(a卷)
- 2026年上半年长信保险经纪(四川)有限公司第二批人员招聘1人备考题库附答案详解(综合卷)
- 2026安徽安庆市皖宜项目咨询管理有限公司招聘派遣人员3人备考题库及答案详解一套
- 2026重庆奉节县教育事业单位招聘25人备考题库及完整答案详解一套
- 商铺门面关闭协议书
- 向量为基,几何为本-以2025年全国新高考数学Ⅰ卷17题为例说题比赛
- 2026-2031年中国鲜冻马肉行业市场发展趋势与前景展望战略研究报告
- 军人二次召回通知书
- 曲臂车安全施工方案
- 《制氢现场氢安全管理规范》
- 防溺水事故应急预案
- 室分业务发展操作指导手册(试行)
- 水泥厂安全事故培训内容课件
- 上市公司再融资困境深度剖析与突围路径探寻
- 乌兹别克斯坦国家介绍
评论
0/150
提交评论