停车场课程设计说明书.doc

上传人:可****阿 文档编号:48948351 上传时间:2022-10-07 格式:DOC 页数:17 大小:55KB
返回 下载 相关 举报
停车场课程设计说明书.doc_第1页
第1页 / 共17页
停车场课程设计说明书.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《停车场课程设计说明书.doc》由会员分享,可在线阅读,更多相关《停车场课程设计说明书.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1/171.1.前言前言C+语言是计算机能够提供给用户使用的最快而又最有效的语言。运用已学过的知识进行一个简单的应用程序的开发。基本掌握 C 语言对编译。生成程序等操作。掌握 C+语言开发中的需求分析与设计方法。利用计算机技术使复杂、繁锁的工作,变得更加的规,更易于操作。2.2.系统功能系统功能以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照以与到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出 汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场停留的时

2、间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构3.3.设计思想设计思想设停车场是一个可停放 n 辆汽车的 长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场已停满 n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进

3、行管理的模拟程序。2/174.4.流程图流程图该程序主要停车场管理功能,通过记录汽车“到达”或“离去”信息、汽车牌照、汽车到达或者离去的时刻达到停车场管理功能。本次设计在功能需求上可分为以下 4 个方面:(1)汽车“到达”或“离去”信息(2)汽车牌照(3)汽车到达或者离去的时刻停车场管理系统汽车“到达”或“离去”汽车牌照号码汽车到达或离去的时刻图一截面图如下:3/17图二5.5.使用说明使用说明直接点击应用程序或者在 DOS 环境下运行.exe 文件!在运行条件下按”e”即可退出!6.6.心得体会心得体会一周的 C+语言课程设计结束了,我的收获很大。使我对 C+语言的基本知识的使用更加熟识,同

4、时也增加了我对 C+语言的一些认识,在作业完成过程过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好 C+语言的信心。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对 C+语言的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用 C+语言熟练地运用顺序、选择、循环三大结4/17构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义与调用。在整个程序的编写中,调试占了很大部分的时间。要想写好 C+语言的程序,必须认真对待代码的每一个细节,这对程序的调试是非常

5、重要的。通过这次实际动手能力的培养,我进一步熟悉了 C+语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的 C+语言程序。不可否认,本程序存在不少缺点和不足,但通过这次作业找到了自己学习上的不足,对以后的工作有指导作用。我相信再以后的学习中会克服这些不足,达到熟练掌握 C+语言的目的。向在这次课程设计中给予指导和帮助的老师表示衷心的感。7 7调试调试调试的时候使得系统无常运行,经过多次的检查,反复的修改,并对其进行相应的修改,终于解决了这些调试出来的问题,这样才使得程序成为一个健全的程序。8.8.参考文献参考文献C+程序设计数据结构9.9.源代码源代码#include using

6、 namespace std;5/17template class sqstack;templateclass squeue;template class qnode;/定义汽车类,包含其牌照以与进入进入停车场时间两项数据class carprivate:int Num,Time;public:car():Num(0),Time(0);/汽车类的构造函数void set(int x,int y);/设置汽车以与进场时间int getNum();/返回汽车int getTime();/返回进场时间car(car&s);/构造函数定义一个汽车类的变量;car:car(car&s)/带参构造函数Nu

7、m=s.getNum();Time=s.getTime();6/17void car:set(int x,int y)Num=x;Time=y;int car:getNum()return Num;int car:getTime()return Time;/用顺序栈模拟停车场,只允许一个方向进出,并且使用模板类template class sqstackprivate:int n;/栈长度T*stack;/定义个一维数组存储停车场空位信息int top;/栈顶变量public:sqstack(int size);/带停车场长度参数的构造函数7/17void push(T s);/进栈函数T p

8、op();/出栈函数int empty()return top=-1;/判断栈是否为空int full()return top=n-1;/判断栈是否满void printsq();/输出栈容T gettop();/取栈顶元素int getsize();/求栈长度;template sqstack:sqstack(int size):top(-1),n(size)stack=new Tn;/新建一个 T 类型的数组存储停车场信息template void sqstack:push(T s)/将客户输入的信息进栈存储top+;stacktop=s;template T sqstack:pop()/

9、退出离开停车场的车辆元素8/17T s;s=stacktop;top-;return s;template void sqstack:printsq()int i;for(i=0;i=top;i+)cout车牌号为stacki.getNum()的汽车进入了停车场的第i+1个位置endl;if(top=-1)cout停车场为空!endl;templateT sqstack:gettop()/取停车场最后一个位置的车辆元素T s=stacktop;9/17return s;template int sqstack:getsize()/求停车场长度return n;/定义一个链式队列模拟便道信息te

10、mplate class qnode/链式队列的节点类friend class squeue;private:T data;/节点的数据域qnode*next;/节点的指针域;template class squeue/链式队列的链表类public:squeue():rear(NULL),front(NULL);/初始化构造函数10/17void enqueue(T s);/将元素进队列T dequeue();/将元素出队列int qempty();/判断队列是否为空T getqueue();/取队头元素void printque();private:qnode*front,*rear;/队头

11、指针与队尾指针;template void squeue:enqueue(T s)qnode*p;p=new qnode;p-next=NULL;p-data=s;if(front=NULL)front=rear=p;elserear-next=p;rear=p;11/17template T squeue:dequeue()qnode*q=front;T x;if(front=rear)throwempty!;x=q-data;front=front-next;if(front=NULL)rear=front;delete q;return x;template int squeue:qem

12、pty()if(front=rear)return 1;elsereturn 0;12/17templateT squeue:getqueue()return rear-data;templatevoid squeue:printque()cout便道的停车信息为:车牌为getqueue().getNum()的汽车进入 便道endl;/停车场管理主程序int main()int msize;/设置停车场大小cout msize;coutendl;/设置停车场每分钟收费标准cout rate;13/17coutendl;/设定 CAR 类型为栈与队列的模板类sqstack s1(msize);/

13、定义主栈,模拟停车场sqstack s2(msize-1);/定义临时栈,存储在汽车离开停车场时为汽车让路的汽车变量!car a;/定义一个汽车变量squeue Q;/定义队列,存储停留在便道上汽车变量char x;cout*欢迎使用停车场管理系统*endl;coutx;coutendl;while(x=Y|x=y)char ch;int n,t;cout *把车停到停车场按 A*endl;cout *离开停车场按 D*endl;cout *停车场的信息查询请按 P*endl;cout *退出系统按 Q*ch;switch(ch)/停放车辆14/17case(A):coutnt;/客户输入将要

14、停放的汽车的信息coutendl;if(!s1.full()a.set(n,t);s1.push(a);/将汽车变量进栈,停入停车场靠门端elsecout停车场满,请 停入便道!endl;/当停车场无空位a.set(n,t);Q.enqueue(a);Q.printque();/将之后需要停放的车辆停入便道break;/离开停车场case(D):cout请输入要离开停车场的车牌号与时间nt;/客户输入需要离开的汽车的与离开时间15/17if(n=s1.getsize()/如果输入的车牌号在停车场里面则while(s1.gettop().getNum()!=n)/将汽车出栈直到找到客户输入的那两

15、汽车s2.push(s1.pop();/将指定车辆之前的所有车辆存入临时栈中if(s1.gettop().getNum()=n)int sub=t-s1.gettop().getTime();/计算该车辆在停车场停靠的时间cout车主所要花费的停车费为sub*rateendl;/计算费用s1.pop();/该车离开while(!s2.empty()s1.push(s2.pop();/将临时栈中所有汽车全部停回停车场/由于此时停车场靠门端有空位,则便道上第一辆车子进入停车场if(Q.qempty()cout便道上无车辆 endl;/如果便道上无车辆,则返回else if(!s1.full()s1.push(Q.dequeue();/将队列队头车辆出队然后进入停车场16/17else if(!Q.qempty()/如果输入的车牌号在便道上则cout该汽车停便道上,停便道上的汽车不收费endl;else/不存在此车牌号cout输入的数据有误!endl;break;case(P):s1.printsq();break;/将停车场车辆停放信息显示出case(Q):/退出停车场管理系统cout=endl;cout*使用停车场管理系统*endl;exit(1);break;default:cout输入的命令有误!,请重新输入!endl;return 0;17/17

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁