资源简介
基本要求
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达和离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。
实现提示
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。
代码片段和文件信息
#include
#include
#define LOT_MAX 50
typedef struct
{
int number;
int arrivetime[6];
int leavetime[6];
int state;
}vehicle;
typedef struct
{
vehicle car[LOT_MAX];
int top;
}parking;
typedef struct routeway
{
vehicle car;
struct routeway *next;
}RouteWay;
typedef struct
{
RouteWay *front;
RouteWay *rear;
}LiRouteWay;
int initRouteWay(LiRouteWay *&r);
int ClearRouteWay(LiRouteWay *&r);
int deParking(parking *&p LiRouteWay *&rint &m);
int RouteEmpty(LiRouteWay *r);
int bianli(parking *pint numint &addressvehicle &a);
int initParking(parking *&p);
int ClearParking(parking *&p);
int ParkingLength(parking *p);
int ParkingEmptyORFull(parking *p);
int PushParking(parking *&p LiRouteWay *&rint &m);
int PopParking(parking *&Lotparking *&TempLiRouteWay *&r int numint &n int &m);
int PrintVehicle(vehicle a);
int gettime(int *yearint *monthint *dayint *hourint *minuteint *second );
int pop(parking *&Avehicle &a);
int push(parking *&Bvehicle &b);
int main(void)
{
int i=1;
int m=0;/*现今停车总量*/
int n=0;/*总收入*/
int num; /*车牌号*/
int b;
int address;
LiRouteWay *r;
parking *ParkingLot*ParkingTemp;
vehicle a;
initRouteWay(r); /*创建通道*/
initParking(ParkingLot);/*创建停车场*/
initParking(ParkingTemp);/*停车暂存地*/
for(;i>=0;)
{
printf(“************************************************************\n\n“);
printf(“**** 1、停车总量 ****\n\n“);
printf(“**** 2、进入停车场 ****\n\n“);
printf(“**** 3、出停车场并计费 ****\n\n“);
printf(“**** 4、搜索车辆信息 ****\n\n“);
printf(“**** 5、总收入 ****\n\n“);
printf(“**** 如想关闭此程序,请输入-1 ****\n\n“);
printf(“************************************************************\n“);
printf(“ 现在车库中停的车数:%d \n\n“ParkingLength(ParkingLot));
printf(“ 车库中剩余车位:%d \n\n\n\n“(LOT_MAX-ParkingLength(ParkingLot)));
printf(“现在您要执行操作几?“);
scanf(“%d“&i);
switch(i)
{
case(1):{
printf(“现今为止停车总量为:%d\n“m);
}
break;
case(2):{
PushParking(ParkingLotrm);
}
break;
case(3):{
printf(“请输入出停车场的车牌号:“);
scanf(“%d“&num);
b=PopParking(Pa
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
评论
共有 条评论