- 3
- 0
- 约1.31万字
- 约 12页
- 2021-12-11 发布于河北
- 举报
设停车场内只有一个可停放 n 辆汽车的狭长通道, 且只有一个大门可供汽车
进出。汽车在停车场内按车辆到达时间的先后顺序, 依次由北向南排列 (大门在
最南端,最先到达的第一辆车停放在车场的最北端) ,若车场内已停满 n 辆汽车,
则后来的汽车只能在门外的便道上等候, 一旦有车开走, 则排在便道上的第一辆
车即可开入; 当停车场内某辆车要离开时, 在它之后开入的车辆必须先退出车场
为它让路, 待该辆车开出大门外, 其它车辆再按原次序进入车场, 每辆停放在车
场的车在它离开停车场时必须按它停留的时间长短交纳费用。 试为停车场编制按
上述要求进行管理的模拟程序。
功能描述
以栈模拟停车场, 以队列模拟车场外的便道, 按照从终端读入的输入数据序
列进行模拟管理。 每一组输入数据包括三个数据项: 汽车“到达”或“离去”信
息、汽车牌照号码及到达或离去的时刻, 对每一组输入数据进行操作后的输出数
据为:若是车辆到达, 则输出汽车在停车场内或便道上的停车位置; 若是车离去;
则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收
费)。栈以顺序结构实现,队列以链表实现
系统设计及实现
1.头文件及宏定义
#include conio.h
#include malloc.h
#include stdio.h
#include stdlib.h
#include windows.h
#define ClearScreen() system( cls ) // 清空当前屏幕
#define setcolor() system(color 2f)// 设置背景前景颜色
#define Pause( szPrompt ) printf( %s, szPrompt ),getch()
2. 时间和汽车信息结构体的定义(部分代码)
typedef struct carinformation // 车辆信息
{
char szRegistrationMark[64]; // 车牌号
char szArrivalTime[16]; // 到达时间
char szEntranceTime[16]; // 进入停车场 (开始计费 ) 时间
char szDepartureTime[16]; // 离开时间
} TCARINFORMATION, *LPTCARINFORMATION;
3. 栈和队列的定义(部分代码)
typedef struct carqueue // 链队
{
LPTCARNODE lpHead; // 头结点
LPTCARNODE lpRear; // 指向当前队尾的指针
int nEffectiveSize; // 当前队中元素个数
} TCARQUEUE, *LPTCARQUEUE;
4. 栈和队列的初始化(部分代码)
void InitQueue( LPTCARQUEUE lpCarQueue )
{
lpCarQueue = ( LPTCARQUEUE ) malloc( sizeof( TCARQUEUE ) );
lpCarQueue-lpHead = ( LPTCARNODE) malloc( sizeof( TCARNODE ) );
lpCarQueue-lpHead-lpNext = NULL;
lpCarQueue-lpRear = lpCarQueue-lpHead;
lpCarQueue-nEffectiveSize = 0;
原创力文档

文档评论(0)