停车场课程设计说明书_第1页
停车场课程设计说明书_第2页
停车场课程设计说明书_第3页
停车场课程设计说明书_第4页
停车场课程设计说明书_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、,通过记录汽车“到达”或“离去”信息、汽车牌照、汽车到达或者离去的时刻达到停车场管理功能。本次设计在功能需求上可分为以下4个方面:(1) 汽车“到达”或“离去”信息(2) 汽车牌照(3) 汽车到达或者离去的时刻停车场管理系统汽车“到达”或“离去”信息汽 车牌照号码汽车到达或离去的时刻图一截面图如下:图二5.使用说明直接点击应用程序或者在DOS环境下运行.exe文件!在运行条件下按”e”即可退出!6.心得体会一周的C+语言课程设计结束了,我的收获很大。使我对C+语言的基本知识的使用更加熟识,同时也增加了我对C+语言的一些认识,在作业完成过程过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学

4、到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好C+语言的信心。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对C+语言的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用C+语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义与调用。在整个程序的编写中,调试占了很大部分的时间。要想写好C+语言的程序,必须认真对待代码的每一个细节,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了C+语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的C+

5、语言程序。不可否认,本程序存在不少缺点和不足,但通过这次作业找到了自己学习上的不足,对以后的工作有指导作用。我相信再以后的学习中会克服这些不足,达到熟练掌握C+语言的目的。向在这次课程设计中给予指导和帮助的老师表示衷心的感。7调试调试的时候使得系统无常运行,经过多次的检查,反复的修改,并对其进行相应的修改,终于解决了这些调试出来的问题,这样才使得程序成为一个健全的程序。8.参考文献C+程序设计数据结构9.源代码#include using namespace std;template class sqstack;templateclass squeue;template class qnode

6、;/定义汽车类,包含其牌照以与进入进入停车场时间两项数据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)/带参构造函数Num=s.getNum();Time=s.getTime();void car:set(int x,int y)Num=x;Time=y;int car:getNu

7、m()return Num;int car:getTime()return Time;/用顺序栈模拟停车场,只允许一个方向进出,并且使用模板类template class sqstackprivate:int n;/栈长度T *stack;/定义个一维数组存储停车场空位信息int top;/栈顶变量public:sqstack(int size);/带停车场长度参数的构造函数void push(T s);/进栈函数T pop();/出栈函数int empty()return top=-1;/判断栈是否为空int full()return top=n-1;/判断栈是否满void printsq(

8、);/输出栈容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()/退出离开停车场的车辆元素T s;s=stacktop;top-;return s;template void sqstack:printsq()int i;for(i=0;i=t

9、op;i+)cout车牌号为stacki.getNum()的汽车进入了停车场的第i+1个位置endl;if(top=-1)cout停车场为空!endl;templateT sqstack:gettop()/取停车场最后一个位置的车辆元素T s=stacktop;return s;template int sqstack:getsize()/求停车场长度return n;/定义一个链式队列模拟便道信息template class qnode/链式队列的节点类friend class squeue;private:T data;/节点的数据域qnode *next;/节点的指针域 ;templat

10、e class squeue/链式队列的链表类public:squeue():rear(NULL),front(NULL);/初始化构造函数void enqueue(T s);/将元素进队列T dequeue();/将元素出队列int qempty();/判断队列是否为空T getqueue();/取队头元素void printque();private:qnode *front,*rear;/队头指针与队尾指针;template void squeue:enqueue(T s)qnode *p;p=new qnode;p-next=NULL;p-data=s;if(front=NULL)fr

11、ont=rear=p;elserear-next=p;rear=p;template 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:qempty()if(front=rear)return 1;elsereturn 0;templateT squeue:getqueue()return rear-data;templatevoid sq

12、ueue:printque() cout便道的停车信息为:车牌为getqueue().getNum()的汽车进入 便道endl;/停车场管理主程序int main()int msize;/设置停车场大小cout msize;coutendl;/设置停车场每分钟收费标准cout rate;coutendl;/设定CAR类型为栈与队列的模板类sqstack s1(msize);/定义主栈,模拟停车场sqstack s2(msize-1);/定义临时栈,存储在汽车离开停车场时为汽车让路的汽车变量!car a;/定义一个汽车变量squeue Q;/定义队列,存储停留在便道上汽车变量char x;cou

13、t *欢迎使用停车场管理系统*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)/停放车辆case(A):coutnt;/客户输入将要停放的汽车的信息coutendl;if(!s1.full()a.set(n,t);s1.push(a);/将汽车变量进栈,停入停车场靠门端elsecout停车场满,请 停入便道!endl;/当停车场无空位a.set(n,t);Q.en

14、queue(a);Q.printque();/将之后需要停放的车辆停入便道 break;/离开停车场case(D):cout请输入要离开停车场的车牌号与时间nt;/客户输入需要离开的汽车的与离开时间if(n=s1.getsize()/如果输入的车牌号在停车场里面则while(s1.gettop().getNum()!=n)/将汽车出栈直到找到客户输入的那两汽车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();/将队列队头车辆出队然后进入停车场else if(!Q.qe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论