停车场课程设计说明书

  • 格式:doc
  • 大小:73.00 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.前言

C++语言是计算机能够提供给用户使用的最快而又最有效的语言。运用已学过的知识进行一个简单的应用程序的开发。基本掌握C语言对编译。生成程序等操作。掌握C++语言开发中的需求分析与设计方法。利用计算机技术使复杂、繁锁的工作,变得更加的规范,更易于操作。

2.系统功能

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构

3.设计思想

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

4.流程图

该程序主要停车场管理功能,通过记录汽车“到达”或“离去”信息、汽车牌照号码、汽车到达或者离去的时刻达到停车场管理功能。

本次设计在功能需求上可分为以下4个方面:

(1) 汽车“到达”或“离去”信息

(2) 汽车牌照号码

(3) 汽车到达或者离去的时刻

图一

截面图如下:

图二

5.使用说明

直接点击应用程序或者在DOS环境下运行.exe文件!在运行条件下按”e”即可退出!6.心得体会

一周的C++语言课程设计结束了,我的收获很大。使我对C++语言的基本知识的使用更加熟识,同时也增加了我对C++语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好C++语言的信心。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对C++语言的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固所了学过的知识,能用C++语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用。在整个程序的编写中,调试占了很大部分的时间。要想写好C++语言的程序,必须认真对待代码的每一个细节,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了C++语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的C++语言程序。不可否认,本程序存在不少缺点和不足,但通过这次作业找到了自己学习上的不足,对以后的工作有指导作用。我相信再以后的学习中会克服这些不足,达到熟练掌握C++语言的目的。向在这次课程设计中给予指导和帮助的老师表示衷心的感谢。

7.调试

调试的时候使得系统无法正常运行,经过多次的检查,反复的修改,并对其进行相应的修改,终于解决了这些调试出来的问题,这样才使得程序成为一个健全的程序。

8.参考文献

《C++程序设计》

《数据结构》

9.源代码

#include

using namespace std;

template

class sqstack;

template

class squeue;

template

class qnode;

//定义汽车类,包含其牌照号码以及进入进入停车场时间两项数据class car

{

private:

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::getNum()

{

return Num;

}

int car::getTime()

{

return Time;

}

//用顺序栈模拟停车场,只允许一个方向进出,并且使用模板类template

class sqstack

{

private:

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();//输出栈内容

T gettop();//取栈顶元素

int getsize();//求栈长度

};

template

sqstack::sqstack(int size):top(-1),n(size)

{

stack=new T[n];//新建一个T类型的数组存储停车场信息

}

template

void sqstack::push(T s)//将客户输入的信息进栈存储

{

top++;

stack[top]=s;

}

template

T sqstack::pop()//退出离开停车场的车辆元素

{

T s;

s=stack[top];

top--;

return s;

}

template

void sqstack::printsq()

{

int i;

for(i=0;i<=top;i++)

{

cout<<"车牌号为"<

if(top==-1)

{

cout<<"停车场为空!"<

}

}

template

T sqstack::gettop()//取停车场最后一个位置的车辆元素

{

T s=stack[top];