资源简介
基本要求
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达和离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。
实现提示
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。
代码片段和文件信息
#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++/C语言第
- 北航991数据结构与C语言程序设计历年
- C语言考研真题汇编 高清PDF
- C语言彩票管理系统
- 用c写的航空订票系统 航班信息改变
- 数据结构课后习题答案(C++语言版)
- UNIX/LINUX下C语言中文短信UCS2编码和解
- 可以将C语言转变为汇编的编译器
- c语言实现的商品进销存管理系统
- 人员管理系统 c语言源码 课程设计专
- c语言学生管理系统,可运行,有报告
- 公交车查询系统C语言实现
- C语言程序设计教程(第3版)谭浩强张
- 常用算法程序集C语言及C++描述第五版
- 可以在单片机上计算的BP神经网络C语
- C语言银行业务
- 计算机二级C语言机考题库
- 数据结构C语言版第二版严蔚敏-课后答
- C语言程序设计教程第二版习题解答与
- MFC智能停车场管理系统
- C语言openssl库SM2-SM3国密常用函数
- C语言解析精粹源代码
- 赋值语句翻译c语言实现四元式
- c语言实现bch编码
- 交通咨询系统最短路径最小花费
- 单片机C语言与PROTUES仿真技能实训
- EAN13条码生成(C语言+VS2010)[包含EA
- 椭圆曲线ECC加密解密算法的c语言实现
- C语言学生成绩管理信息系统
- C语言解析精粹(第二版)书和光盘源
评论
共有 条评论