- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
停车场模拟实验报告
数学与计算机学院 数据结构 实验报告
年级 大二 学号********** 姓名 ****** 成绩
专业 电气信息类(计算机) 实验地点 主楼402 指导教师
实验项目 停车场模拟管理程序的设计与实现
实验日期 2010年10月21日
一、实验目的和要求
通过实验进一步理解栈和队列的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。
二、问题描述
设停车厂只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门后,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走。
三、数据结构设计
为了便于区分每辆汽车并了解每辆汽车当前所处的位置,需要记录汽车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型car,具体定义如下:
struct car //汽车信息类
{
string license_plate; //汽车牌照号码
char state; //汽车当前状态,字符s表示停放在停车位上, //字符p表示停放在便道上,每辆车的初始状态用字符i表示
};
struct stopping //停车位栈
{
car stop[MAX_STOP]; //各汽车信息存储空间
int top; //用来指示栈顶位置的静态指针
};struct pavement //便道队
{
car pave[MAX_PAVE]; //各汽车信息存储空间
int front,rear; //用来指示队头和队尾的静态指针
};
struct buffer //辅助栈
{
car buff[MAX_STOP];//各汽车信息存储空间
int top;//用来指示栈顶位置的静态指针
};
(1)中的情况发生后,让牌照号为JF003的汽车从停车厂开走,应显示JF005、JF00的让路动作和JF006从便道到停车位上的动作。
(3)随时检查停车位和便道的状态,不应该出现停车位有空位而便道上还有车的情况。
程序容错性的测试,当按键输入错误的时候是否有错误提示给用户指导用户正确操作,并作出相应处理保证程序健康的运行。
输入的指令有误:
进入停车场时,输入的车牌号码已经在停车场中:
离开停车场时,输入的车牌号不在停车场中:
经过反复运行和测试,程序的容错性能良好,界面简洁友好,运行稳定可靠,符合实际操作规范,基本上达到了模拟停车场管理的要求。
六、实验完成后的思考
通过本程序的设计训练掌握了栈和队列的定义和使用方法,对使用C++语言编码来验证数据结构的理论知识有了更深层次的理解,达到了实验目的。
通过在设计过程在的思考,对使用现有知识来利用计算机来解决实际问题确立了信心,为今后的程序设计奠定了一定的心理上和技术上的准备。
由于时间仓促和个人能力有限,程序中还有一些需要完善的地方,例如,对停放到停车场的汽车按时间进行收费管理,程序界面可以使用图形方式使之更美观等。今后,还要多练习,增强自己的能力。
程序代码
#include stdafx.h
#includestring
#includeiostream
using namespace std;
const int MAX_STOP=5;
const int MAX_PAVE=100;
struct car//汽车信息类
{
string license_plate; //汽车牌照号码
char state; //汽车当前状态,字符s表示停放在停车位上,
//字符p表示停放在便道上,每辆车的初始状态用字符i表示
};
struct stopping //停车位栈
{
car stop[MAX_STOP]; //各汽车信息存储空间
int top; //用来指示栈顶位置的静态指针
};
struct pavement //便道队
{
car pave[MAX_PAVE]; //各汽车信息存储空间
int front,rear; //用来指示队头和队尾的静态指针
};
struct buffer//辅助栈
{
car buff[MAX_STOP];
int top;
};
static stopping *stopping1;
stati
文档评论(0)