停车场模拟管理系统
更新时间:2023-11-08 22:37:01 阅读量: 教育文库 文档下载
实验二 停车场模拟管理系统
一 题目内容:
设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进
出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车 ,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道 上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道 ,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路 的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一 个停车场模拟管理程序。
二 问题分析:
(1)为了便于区分每辆汽车并了解每辆汽车当前所处的位置,需要记录汽车的
牌照号码和汽车的当前状态,所以为汽车定义一个新的类型CAR
(2)由于车位是一个狭长的通道,所以不允许两辆车同时进入停车位,当有车到来要
进入停车位的时候车要顺次停放,当某辆车要离开时,比它后到的车要先暂时离开
停车位,而且越后到的车就越先离开停车位,显然这和栈的“后进先出”特点相吻合,
所以可以使用一个栈来描述停车位。
由于停车位只能停放有限的几辆车,而且为了便于停车场的管理,要为每个车
位分配一个固定的编号,不妨设为1、2、3、4、5(可利用数组的下标),分别表示停
车位的1车位、2车位、3车位、4车位、5车位,针对这
种情况使用一个顺序栈比较方
(3)当某辆车要离开停车场的时候,比它后进停车位的车要为它让路,而且当它开走之后,让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为了完成这项功能,再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中,对辅助栈也采用顺序栈,具体定义与停车位栈类似, (4)功能函数
STOPPING * init_stopping() 初始化“停车位栈” BUFFER * init_buff() 初始化“辅助栈” PAVEMENT * init_pavement() 初始化“便道队列” Int car_come(int pos) 将pos指定的汽车信息输入“停车位栈” ,并修改该车状态
Int car_leave(int pos) 将pos指定的汽车信息从“停车位栈”删除,并修改该车状态
Int stop_to_buff(int pos) 将pos指定的汽车信息从“停车位栈”移动到“辅助栈”
Int buff_to_stop(int pos) 将pos指定的汽车信息从“辅助栈”移动到“停车位栈”
Int pave_to_stop(int pos) 将pos指定的汽车信息从“便道队列”移动到“停车位栈”
Int car_disp(int pos) 将pos指定的汽车信息显示
在屏幕上
三,程序设计
// 停车场管理.cpp : Defines the entry point for the console application. //
#include
#define STACKSIZE1 4/*停车场容量STACKSIZE1-1个位*/ #define STACKSIZE2 10/*临时停车场容量*/
#define maxqueue 4 //只能存maxqueue-1个在便道 #define null 0 /////////////////////
#include\
#define LEN sizeof(struct Carinfo) #include\#include\#include\#include\#include\#include\#include\#include\
//////////////////////////*------------------------------
车辆--------------------------------*/
void putininfo(Carinfo *car,Sqstack *park) {
// char ch[128];
// char timestr[128]; if(!car) { cout<<\分配空间失败!\ } else { cout<<\分配空间成功!可以登记停车。\ // printf(\请输入进站时间:\\n\
登记
// scanf(\ // printf(\请输出站时间:\\n\ // scanf(\ time_t t; memset(car->clock_treach,0x0,25);//将内存设为指定字符 time(&t); sprintf(car->clock_treach,\ // printf(\ // ofstream out1(\ // out1< // car->clock_treach=(int)ch; // timestr=ch; // cout< }/*----------------------便道类型*----------------------------------*/ class Queue { private: int i; public: Carinfo *items[maxqueue]; int top3; friend class Sqstack; friend class tempstack; friend int Leave(Sqstack *park,tempstack *tmp,Queue *pave); Queue() { top3=0; } int queuein(Carinfo *car) { if(((top3+1) { cout<<\便道已满!\ return 0; } } Carinfo * queueout() { Carinfo *temp; temp=items[1]; for(i=1;i };//到达车辆信息 void Reach (Sqstack *park,Carinfo *car,Queue *pave) {/*?????????????*/ Carinfo *temp=new Carinfo; // temp->clock_tleave=car->clock_tleave; // temp->clock_treach=car->clock_treach; strcpy(temp->clock_treach,car->clock_treach); strcpy(temp->lisence,car->lisence); if(car->ordercode) { temp->ordercode=car->ordercode; } else { temp->ordercode=pave->top3+1; } if(park->push1(park,temp)) cout<<\ else { cout<<\ pave->queuein(temp); } }/*--------------------- 停车场类型--------------------------*/ class Sqstack {
正在阅读:
停车场模拟管理系统11-08
工程造价开题报告03-23
(综合)创新是发展的不尽源泉 - 安全生产理论创新座谈会发言摘要12-17
2019-2020学年高中数学人教A版必修四课下能力提升:(二十) Word版含解析12-13
基于现金流盈利的上市公司质量评价研究09-11
幼儿园大班拼音教案(精选多篇)09-26
学生个人国防教育演讲稿范文范本08-04
致加西亚的一封信02-18
海尔SBU与京瓷阿米巴组织的比较研究06-02
浅析现代企业的财务管理的特点、目标与监督05-30
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 停车场
- 管理系统
- 模拟
- 花木行业及市场概况
- 公司突发性治安事件(偷盗、抢劫、歹徒围攻)应急预案
- 土力学期末复习习题
- 热风枪使用经验
- 小米车充拆解测试详情 - 图文
- 工程硕士《数据挖掘》考试试卷
- ESD控制作业标准书
- 生物人教版七年级下册消化和吸收 第一课时馒头在口腔中的变化
- 2018-2019-“第一学期少先队计划”学校工作计划(3页)
- 四年级课外阅读精选30题(答案)
- 广东电网公司重特大人身事故应急演练方案(2005.8.)
- 历史自考第7章真题
- 欧盟对金融行业个人数据保护的立法和启示
- 三重一大评估报告
- 经济数学典型案例
- C语言程序设计 - 习题大全(含答案) - C语言-1
- 盈利能力分析相关的外文翻译和英文原文
- 锁相技术往届部分考试题目(做)
- 物联网信息安全期末考试重点
- 浅谈在马克思主义哲学理论中人与自然之间的关系及特征