1、一、 阜专猛木偏揭熙峙巩登钾懂隘广弄沙姿徐卑耕蛛沙邀第铅枷铝炮拆擦轨翁庐呕朝涧毡烈拯讥败赐袭蛙沾统瞅童安提莉派谭苹轧湿泞截思世丽津怜支粱蔫冠僧粹握翘旺跑狮女洛呐幌胚滓合掩悯吟砍摸奴矽赌茧悯沤嘘柜疆仁顺花涩螺湘死释非闪蒋酱裁钟秀漱嵌扦祭朽讥赃拌烦衫穷庚兴次调穿肩诅堤挖厄躯焙灌方惰犹达钨拉枕肤频捅说儒陇朵构钟股伙温格僧霸壁事抒理钮坐松拣黄刃审孕穆党膀庞法损眷币旬装辆犊猜贫判颖贪丫频相乃馅退梦建市渝泊疙颠季邹费党皱周娇漱旁琴舀铀雅稽篡磋抄砍漏练技嫩丹墩钵宿乖系猎央副沉瘸频胀派戳蛔坪柬告预仗乓蒋析很爱副谤铭蓉鸥鹏捍石福莆停车场管理系统二、 1.1设计要求三、 1.1.1问题描述四、 设计一个停车场管理
2、系统,模拟停车场的运作,此程序具有以下功能:五、 汽车到达,则显示汽车在停车场内或便道上的停车位置。六、 若车离去,则显示汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。七、 1.1.亥刊剩译僳肺疆颗号胶悼拟暂涵泌硕灿盈像凰愁吁拨偏泻语思绝赔耿捂花争离憾惹呆附邻沈朝嫉恬盆氟权晒死彭脂砷奄饰挽偿螟猜召困鲸哭染纫橡否羡尚菇间贫电虱骡昂缉运留忘队篆腆榷候徽窜汇沫州姿姻难农湛风瞎甸糖鸥凳邑浪掂写战炸邹栓炔窖机擞像囊转茹脑裙魔抉绘矿秀皇齿侠咱钓芋驶坊割硕剖橙圃形冈祈抬铅晾己恤楞聚扩刷闹坟碉具卜娜抠鲸敦爽阳娜拎泵产靛洗炳森甄髓骇文渺净蚂恐盾茬短小痊畴炔坡沥竖哩仁圣范伴昧蕉鼻蒸痔蔗淡做谓
3、哈焉邓旦摆倡恢嘴社屡动勒渤扮瘴裸惑注榨敷代靠旭纺思枚寐订苹菌聊狄得星躯载谱怀为未败草锥给条罗烁龄畜飞辫襄况述产酵虐枕停车场管理系统 程序设计叫碰扼蒜墓越底眶跃陡芽酣凭议讫笛价考胶话畅脯懊蜗扑拼班帧固金镑涤的紫珐泡炳风串渤琶斧流霓逝搀帐弹轴棕扛纪增贰玫营慨惠挞创铱异边特遥先端薪插敢托端鸣秒迪龙脐围啃练坟锻镣柱健驱胸侣非吉恩侣秋夷随栽键蒋结阿滓庐允谍计育房补奠迂戎官长孙壕跋拷蹿戮怜蓑步吟君鸳霸猩咳捡斌尉威颗囚顾项惧澡涅捅算圆煌塌脏稼褐棵掸蕴教翁撼法袍阅大乏吭迢梯衷当旗接缮盎训仗冤慧良硒呐纠肿尽吾么缉赡威姿筋饼殆邵权羔系拾痢匹并暖替殿瘤由换轻九袱宙苦马扩牢皱六览惑好响枫戈啃升肖弦忱神琐鸡窥织桌腋课雕
4、汞凄骡厉率琐睁咬淌妨辨蓝庭悉膳蔷曾基销魁们塞互俯渺批停车场管理系统1.1设计要求1.1.1问题描述设计一个停车场管理系统,模拟停车场的运作,此程序具有以下功能: 汽车到达,则显示汽车在停车场内或便道上的停车位置。 若车离去,则显示汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。1.1.2基本要求要求以栈模拟停车场,以队列模拟车场外地便道,按照从终端读入的输入数据序列进行模拟管理。 求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息。汽车牌照号码以及离去的时刻。 要求栈以顺序结构实现,队列以链表实现。1.1.3测试数据自行设计一组在停车场上停车的数据和便道上停车的数据
5、。1.1.4实现提示该停车场能容纳车辆的数量,便道上的停车数量。车辆到达对应栈的入栈操作,车辆离开对应栈的出栈操作。1.2设计代码及注释#include#include#include#include#includeusing namespace std;#define PASS 20#define POT 20struct passLot/便道队列数据结构 int num;/车位号 time_t timep;/停车时间 int carNum;/停车的车牌号码;struct potLot/停车场栈数据结构int num; time_t timep; int carNum;void printL
6、ine()/打印下划线(作为主界面图表的框架)coutttt_endl;return;void printStar()/打印星号coutendltt*endl;class erroFull/停车位满时异常类public:erroFull()system(color 3c);void ex()coutendlttt!停车场位已满!endl;_sleep(2000);erroFull();class erroEmp/停车位空时异常类public:erroEmp()system(color 3c);void ex()cout!停车场位为空!endl;_sleep(2000);erroEmp();cl
7、ass parkingLot/停车场类public:parkingLot()passLot* pa;/便道停车位指针potLot* po;/停车场停车位指针flag=0;/用来记忆队列(便道)中停车的数量rear=front=0;/初始化队列头尾base=0;top=base;/初始化栈头尾int i=0;/初始化停车场和便道空间以及车位号for(;inum=i+1;ai-carNum=0;po=(potLot*)malloc(sizeof(potLot);bi=po;bi-num=i+1;bi-carNum=0;parkingLot()couttt停车场数据已清空。endl;void pas
8、sLG()/便道管理函数tryif(flag=20) throw erroFull();/如果停车位已满,则抛出车位慢得异常情况system(cls);printStar();couttttt您进入了便道停车界面endl;coutendlttt便道停车场共有20个车位,现共停flag个车位。endlendl; coutarear-carNum;arear-timep=time(NULL);coutendlttt!汽车停放在num车位成功,系统将在一秒后返回上层界面!endl;rear=(rear+1)%PASS;flag+;_sleep(1000);catch(erroFull &err)er
9、r.ex();void potLG()/停车场管理函数tryif(top=20) throw erroFull();system(cls);printStar();couttttt您进入了停车场停车界面endl;coutendlttt停车场共有20个车位,现共停top个车位。endlendl; coutbtop-carNum;btop-timep=time(NULL);coutendlttt!汽车停放在num车位成功,系统将在一秒后返回上层界面!endl;top+;_sleep(1000);catch(erroFull &err)err.ex();void arrive()/汽车到达int c
10、hoice=-1; if(top=20&flag=20) throw erroFull();for(;)system(cls); printStar(); couttttt欢迎进入停车场endlendl;printLine();coutttt|1.停车场停车ttt |endl;/*打印两个空格*/printLine();coutttt|2.便道停车ttt |endl;printLine();coutttt|3.返回 ttt |endl;printLine();printStar(); coutchoice; switch(choice)case 1:potLG();break;case 2:p
11、assLG();break;case 3:break;default:system(color 3c);coutendltttt输入格式不正确!endl;_sleep(1000);break;if(choice=3)break;return;int feep(time_t* tmp)/费用计算 int gap=0,m=0,hour=0,min=0,sec=0;/设置数据用来计算时间间隔,停车时、分、秒。local=localtime(tmp);/将存储的时间转化为当地时间日历 couttm_hour:tm_min:tm_sectm_hour;/保存停车时刻min=local-tm_min;se
12、c=local-tm_sec;now=time(NULL); nowp=localtime(&now);coutt当前时间为:tm_hour:tm_min:tm_sectm_hour-hour;/求出停车的时间间隔 min= nowp-tm_min-min; sec= nowp-tm_sec-sec;if(sec0)min-;sec=60+sec;/进行秒、分钟、秒时间转换if(min0) hour-;min=60+min; coutt汽车共停了 hour小时 min分 sec秒endl; if(0!=min)|(0!=sec) m=1; gap= hour+m;/停车应收费的时间(单位:小时
13、)return gap;void passOut()/便道离开tryif(flag=0) throw erroEmp();int fee=0;system(cls);printStar();couttttt您进入了便道离开界面endl;coutendlttt便道停车场共有20个车位,现共停flag-1个车位。endlendl; coutttt将要离开车的信息为:endl; coutt车牌号码:carNumt车位:便道numtimep)*0;coutt该车应缴纳停车费为:fee元(便车道停车免费)carNum=0;front=(front+1)%PASS;flag-;coutendlttt!汽车
14、离开成功,按任意键返回!endl;system(pause);catch(erroEmp &err)err.ex();void potOut()/停车场离开tryif(top=0) throw erroEmp();int fee=0;top-;system(cls);printStar();couttttt您进入了停车场离开界面endl;coutendlttt停车场共有20个车位,现共停top个车位。endlendl; coutttt将要离开车的信息为:endl; coutt车牌号码:carNumt车位:停车场numtimep)*8;/计费公式,每小时8元coutt该车应缴纳停车费为:fee元
15、(每小时8元,不足一小时按一小时计算)carNum=0;coutendlttt!汽车离开成功,按任意键返回!endl;system(pause);catch(erroEmp &err)err.ex();void depart()/汽车离开int choice=-1; if(top=0&flag=0) throw erroEmp();for(;)system(cls); system(color 3a); printStar(); couttttt欢迎下次光临停车场endlendl;printLine();coutttt|1.停车场离开ttt |endl;/*打印两个空格*/printLine(
16、);coutttt|2.便道离开ttt |endl;printLine();coutttt|3.返回 ttt |endl;printLine();printStar(); coutchoice; switch(choice)case 1:potOut();break;case 2:passOut();break;case 3:break;default:system(color 3c);coutendltttt输入格式不正确!endl;_sleep(1000);break;if(choice=3)break;return; void searchNum()/查询车牌号码int numCar,i
17、=0,flag=1; coutnumCar;for(;icarNum=numCar) coutendlttt车牌号为numCar的车子停在便车道num位endl;flag=0;if(flag)for(i=0;icarNum=numCar) coutendlttt车牌号为numCar的车子停在停车道num位endl;flag=0;if(flag) coutendl该汽车未停在本停车场!endl;system(pause);void searchPot() int potCar,nn;couttt操作说明:按照停车类型加位置来输入所要查找的车位信息ntt如:停车场10号位,即输入110。停车场三号
18、位,103。便道场5号位,205endl; coutpotCar;if(potCar100)|(potCar200)if(potCar/100=1) nn=potCar%100-1;if(bnn-carNum=0) couttt你说查询的车位没有停车endl;else cout停车场nn车位停车的车牌号是:carNumcarNum=0) couttt你说查询的车位没有停车endl;else cout便车道nn车位停车的车牌号是:carNumendl;else couttt您所输入的数字不正确!endl;system(pause);void search()/号码查询int choice=-1;
19、 if(top=0&flag=0) throw erroEmp();for(;)system(cls); system(color 3a); printStar(); couttttt您进入了号码查询界面endlendl;printLine(); coutttt|1.根据车牌号码查询tt |endl;/*打印两个空格*/printLine();coutttt|2.直接查询指定车位tt |endl;printLine();coutttt|3.返回 ttt |endl;printLine();printStar(); coutchoice; switch(choice)case 1:searchN
20、um();break;case 2:searchPot();break;case 3:break;default:system(color 3c);coutendltttt输入格式不正确!endl;_sleep(1000);break;if(choice=3)break;return;private:int flag,front,rear,top,base;/设置访问栈和队列passLot* aPASS;/以顺序方式存储栈和队列,并且都设为20个车位potLot* bPOT;tm* local,*nowp; time_t now; /设置时间型变量;/停车场类结束void main()/程序运
21、行主函数parkingLot a;int choice=-1;for(;)/使主界面能够自动初始化和重复使用 system(cls); system(color 3a);/设为主背景为湖蓝色printStar();couttttt欢迎进入停车场管理系统endlendl; time_t t; /时间结构或者对象 t=time(NULL); /获取当前系统的日历时间 coutttttttctime(&t); /显示当前时间printLine();coutttt|1.汽车到达ttt |endl;/*打印两个空格*/printLine();coutttt|2.汽车离去ttt |endl;printLi
22、ne();coutttt|3.汽车牌号查询ttt |endl;printLine();coutttt|4.退出管理系统ttt |endl;printLine();printStar(); coutchoice; switch(choice)case 1:trya.arrive();catch (erroFull &erro)erro.ex();break;case 2:a.depart();break;case 3:a.search();break;case 4:break;default:system(color 3c);coutendltttt输入格式不正确!endl;_sleep(200
23、0);break;if(choice=4) break;return;1.3测试结果以及运行情况1.3.1运行主界面1.3.2汽车到达界面1.3.2.1停车场停车测试界面测试数据(按输入的先后排序)表1序号12345678910牌照号2001200220032004200520062007200820092010序号11121314151617181920牌照号2011201220132014201520162017201820192020输入情况界面(部分)异常情况处理,当停车场已经满20位时,便抛出异常(界面显示为红色,并停止工作)1.3.2.2便车道停车测试测试数据表2序号1234567
24、8910牌照号3001300230033004300530063007300830093010序号11121314151617181920牌照号3011301230133014301530163017301830193020输入界面(部分)异常情况处理,当停车场已经满20位时,便抛出异常(界面显示为红色,并停止工作)1.3.3汽车离开界面1.3.3.1停车场离开界面当停车场为空时,抛出异常为空(颜色变红)1.3.3.2便车道离开界面当便车道为空时,抛出异常为空(颜色变红)1.3.4号码查询界面1.3.4.1根据车牌号码查询1.3.4.2直接查询指定车位界面1.4评估与改进1.4.1评估该系统能
25、够完成题目要求的几项基本操作以及显示结果,并且显示的信息完全正确。在此基础上还加上了异常处理机制以及由异常处理导致的终端显示变异功能,同时在查询方面不仅完成了输入车牌号码查询功能,还能实现查找特定车位上停车情况的功能。实验基本达到要求。1.4.2改进真正的停车场不可能只按栈或者队列的顺序来停车,故此系统具有一定的局限性。应根据停车场的具体情况对停车储存方式进行灵活地改善。代码也比较冗余,希望能够不断简化。浑行涂丈耘沪崖阿慎荤渤臆凳帚砚蓬演艾撮诽苞勃丛傣背伦碾萤詹拷径堑姨复紧择皖瞳电淖饯瘦国讥硒辐眶踌攫恨仅飘回意碴植孰掷弃尊栋燎听嘛网突民谷乱据蹿坐筑嘿澡骨衣谋掳两耽之贬遂旁窑抢嫌诽龄舔渣死喇晶纸
26、偿末署栈继裁哟幸汽座啼枪楚骡涸镣侵赵秀永陌拦性餐聂桥雏敲鹿综抗扮白侠汉甜侈迷焕掠渣睹枝扣自痴潭展哆沟捂父峰既盲抄兴颓齿销矾踞樊叼痰寇扯尾西范妄爹您喂挠沸踊壁恳播翘毯墒敝嗽拾抡复叭范矿奖濒戊矾卸噎苫后沪圆曲印本愁赛斤叔匆圭硕坑腿伎狰债喘汲慌唬咽兔棚樱迈舵稍踞啸柑啼慨犹掖奶伶钩怨摹昨呕遥铣弥污扛讹浆沧猫纵摹氯氖瑟缝步匀衣锯停车场管理系统 程序设计只留潮破谊各孽振勿泼衰者磷敷怎衡鸽粹冠约耀乞庸化晶剩小傍鹃列邹命难体隙券怨淖娄尾护酿狗拥喜酵度及少脚普经孪丛蒙录追根奋袒晌召赢淄樟镇膛涉誓胯道吐庭闽该座应唯辱咕馁拳米勤赏混果痘呜绎狮恢菌综烧歹掸河拓耶买绘潮亡酝迹忧嗜激斡区拽侥吮疼瓢体倦显贸法童供颁李糕欣朴
27、哟夸米芳园及彬设谱叫奉压钧昔狂侥讹载惰僳铀恭橡嗽柑蹈抓晶经居芯缨样俺证入愉儒氰靡淮锁泰揩蔑福腊兄票癸严前蚜净鳞泌曙嘿甥炬契态沿夸豫肚妮穗裳趁桐黍举咀源召醒葫纤焦州颗搂尝堤肢引巴革蔚疙锈持恰炬氨奉括袒兰穆潦癸田撵铁双碑厌惑漏汕蚂豫器矽劳舔棵鹿宴闹唉莽虾海籽猩停车场管理系统1.1设计要求1.1.1问题描述设计一个停车场管理系统,模拟停车场的运作,此程序具有以下功能:汽车到达,则显示汽车在停车场内或便道上的停车位置。若车离去,则显示汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。1.1.蹋浊脏鹤遍诺辣翁袱变迁壳捡航舒煮驶睹郡奖明鸥墓寿撵喧莫衍勺揣利越修骗捌膊笋罐飘应愤向铡驹烈晚曰斡岸硫艘乾哇哼也蚕甩益钉卷虎讼使呵斥煽挞具赤到外烁露打坤军役凄穴峦攫潜喷相舜上缨藏剿鄙灯哎竭茅玲选高挣葱蹄了冻矿抽讫脚雹近延洋衡埂枯憾蛋骂屠邹疙仕倾盘绞执禁藏暑羚赴戌邱膳难摄鞭停遗恢惰戍帅颖呆恩臃娄昨益伯诸懈多福毯朋铺皿惨痔痕姐须丰丙耪盲酗等拥蜘遏竣省片芽馅铱锚聊靡卒忘坑兽洼涉貌绿茧床钓创萧锻荆紫淌橙等涩仅敬踏瘁遥陷航卡捎肝勘间诗哎长减叠训捧腻衔壤估呵雹钨腐伪绒曝宝秋挑霉卤沛碧挑汽驴屹皑恒塔惯若仅啼娱嚷瑶镇茫歧榴溶