/*时间函数
int timef()
{
int x,y;
time_t rawtime;
struct tm *timeinfo;
time(rawtime);
timeinfo=localtime(rawtime);
x=timeinfo-tm_mday,y=timeinfo-tm_hour;
}
time_t rawtime;
struct tm *timeinfo;
time(rawtime);
timeinfo=locoltime(rawtime);
timeinfo-tm_ymday,*/
C语言栈和队列问题:停车场停车问题#ifndef __PLOT_H__#define __PLOT_H__#define FALSE 0#define TRUE1#define MONEY1// 单价可以自己定义#define MAX_STOP 10#define MAX_PAVE 100// 存放汽车牌号typedef struct{
int time1;// 进入停车场时间
int time2;// 离开停车场时间
char plate[10];
// 汽车牌照号码,定义一个字符指针类型}Car;// 停放栈typedef struct{
Car Stop[MAX_STOP-1];// 各汽车信息的存储空间
int top;// 用来指示栈顶位置的静态指针}Stopping;// 等候队列typedef struct{int count;// 用来指示队中的数据个数
Car Pave[MAX_PAVE-1];// 各汽车信息的存储空间
int front, rear;// 用来指示队头和队尾位置的静态指针}Pavement;// 让路栈typedef struct{
Car Help[MAX_STOP-1];// 各汽车信息的存储空间
int top;// 用来指示栈顶位置的静态指针}Buffer;
Stopping s;
Pavement p;
Bufferb;
Carc;charC[10];void stop_pave();// 车停入便道void car_come();// 车停入停车位void stop_to_buff ();// 车进入让路栈void car_leave();// 车离开void welcome();// 主界面函数void Display();// 显示车辆信息#endif123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
源文件 PLot.c
#include "PLot.h"#include stdio.h#include time.h// 包含时间函数的头文件#include string.h#include stdlib.hvoid stop_to_pave()// 车停入便道{// 判断队满
if (p.count0(p.front == (p.rear + 1) % MAX_PAVE))
{printf ("便道已满,请下次再来\n");
}else
{strcpy(p.Pave[p.rear].plate, C);
p.rear = (p.rear + 1) % MAX_PAVE;// 队尾指示器加1
p.count++;// 计数器加1
printf ("牌照为%s的汽车停入便道上的%d的位置\n", C, p.rear);
}
}void car_come()// 车停入停车位{printf ("请输入即将停车的车牌号:");// 输入车牌号
scanf ("%s", C);if (s.top = MAX_STOP - 1)// 如果停车位已满,停入便道
{
stop_to_pave();// 停车位-便道函数
}else
{
s.top++;// 停车位栈顶指针加1
time_t t1;long int t = time (t1);// 标记进入停车场的时间
char* t2;
t2 = ctime (t1);// 获取当前时间
c.time1 = t;strcpy(s.Stop[s.top].plate, C);// 将车牌号登记
printf ("牌照为%s的汽车停入停车位的%d车位, 当前时间:%s\n", C, s.top + 1, t2);
}return ;
}void stop_to_buff()// 车进入让路栈{// 停车位栈压入临时栈,为需要出栈的车辆让出道
while (s.top = 0)
{
if (0 == strcmp(s.Stop[s.top--].plate, C))
{break;
}// 让出的车进入让路栈
strcpy(b.Help[b.top++].plate, s.Stop[s.top + 1].plate);printf ("牌照为%s的汽车暂时退出停车位\n", s.Stop[s.top + 1].plate);
}
b.top --;// 如果停车位中的车都让了道,说明停车位中无车辆需要出行
if (s.top-1)
{printf ("停车位上无此车消息\n");
}else
{printf ("牌照为%s的汽车从停车场开走\n", s.Stop[s.top + 1].plate);
}// 将让路栈中的车辆信息压入停车位栈
while (b.top = 0)
{strcpy(s.Stop[++s.top].plate, b.Help[b.top--].plate);printf ("牌照为%s的汽车停回停车位%d车位\n", b.Help[b.top + 1].plate, s.top + 1);
}// 从便道中 - 停车位
while (s.topMAX_STOP-1)
{if (0 == p.count)// 判断队列是否为空
{break;
【停车场计费函数c语言 停车场计时收费函数c语言】}// 不为空,将便道中优先级高的车停入停车位
推荐阅读
- sap需要程序员做什么,sap程序工程师招聘
- 平板刷机刷安卓哪个版本好,平板刷机刷安卓哪个版本好
- 关于机器人解谜游戏,机器人探秘游戏
- 公明快手直播,公明快手直播公司地址
- java代码怎么做主从 java主界面代码
- hbase怎么清除所有数据,hbase清空表命令truncate
- 双人休闲种菜游戏下载,双人联机种田游戏
- 关于python第四章课后编程题的信息
- linux清除所有命令 linux清除命令行记录