资源简介
课题二: 停车场管理系统 ■问题描述: 设计一个停车场管理系统,模拟停车场的运作,此程序具备以下功能: (1)若车辆到达,则显示汽车在停车场内或者便道上的停车位置; (2)若车辆离去,则显示汽车在停车场内停留的时间和应缴纳的费用(在便 道上停留的时间不收费)
代码片段和文件信息
//在此程序中,top1始终指向停车场内的最后一辆汽车的结构上面
//top1的next指针指向它的前面汽车的结构
#include
#include
#include
#include
#define max 3
#define price 1
int b=1;
typedef struct
{
int day;
int hour;
int min;
}TIME; //时间结点
typedef struct
{
char num[10]; //车牌号
TIME time; //进入停车场的时间
int n; //进入停车场的位置
}information;
//栈结构体定义
typedef struct node
{
information data;
struct node *next;
}stacknode; stacknode *top1*top2;
//队列结构体定义
typedef struct
{
information data;
stacknode *front*rear;
}LQueue;LQueue *Q;
//函数声明部分/////////////////////////////////////////////////////////
stacknode *Init(); //栈的初始化
stacknode *into(stacknode *top1LQueue *Q); //初始化车辆进入
int expenses(stacknode *pint xint yint z); //停车费用计算函数
stacknode *leave(stacknode *top1char str[]LQueue *Q); //车辆驶出出场函数
LQueue *InitLQue(); //初始化队列函数
LQueue *wait(LQueue *qstacknode *s); //车辆进入候车便道函数
int EmptyLQue(LQueue *q); //判断候车便道有无等待车辆函数
stacknode *out(LQueue *q); //候车区车辆出队
stacknode *LQinto(stacknode *pstacknode *top1); //从候车便道进入停车场函数
void show(stacknode *top1); //显示停车场所有信息函数
void T_shou(LQueue *Q); //显示候车区信息
/*函数部分*/
//主函数
int main()
{
char str[10];
Q=InitLQue();
top1=Init();//此时的top1和top2都为空指针
top2=Init();
Q=InitLQue();
int i;
printf(“\t\t\t*************************************\n“);
printf(“\t\t\t\t 停车场管理系统\n“);
printf(“\t\t\t|| 1. 车辆进入停车场 ||\n“);
printf(“\t\t\t|| 2. 车辆离开停车场 ||\n“);
printf(“\t\t\t|| 3. 显示停车场内所有车辆信息 ||\n“);
printf(“\t\t\t|| 4. 显示候车区内所有车辆信息 ||\n“);
printf(“\t\t\t|| 5. 退出 ||\n“);
printf(“\t\t\t*************************************\n“);
while(i!=5)
{
printf(“\t请输入选项1-5:“);
scanf(“%d“&i);
switch(i)
{
case 1:
top1=into(top1Q);
break;
case 2:
printf(“请输入离开车辆的车牌号:“);
scanf(“%s“str);
top1=leave(top1strQ);
break;
case 3:show(top1);break;
case 4:T_shou(Q);break;
case 5:exit(1);
default:printf(“输入错误,请重新输入1-5:“);
break;
}
}
}
/*子函数*/
//初始化
stacknode *Init()//分配内存空间,创建了一个stacknode结构
{
stacknode *top;
top=(stacknode *)malloc(sizeof(stacknode));//创建一个stacknode结构
top=NULL;
return top;//返回空指针
}
//初始化车辆进入
stacknode *into(stacknode *top1LQueue *Q)
{
stacknode *p*q;
time_t rawtime; //定义时间变量值rawtime
struct tm *timeinfo; //定义tm结构指针 ,tm结构定义在中
time(&rawtime);//取当前工作时间值,并把它赋值给rawtime
timeinfo=localtime(&rawtime);//localtime()将参数rawtime 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法然后将结果由结构timeinfo返回
p=(stacknode *)malloc(sizeof(stacknode));//创建一个节点用于存储进入车辆的信息
if(p==NULL)//如果malloc分配内存失败,这返回null指针,判断内存分配是否失败
{
printf(“内存分配失败“);
return top1;//当停车场之内没有车辆的时候,top1返回的值为null,当有车辆时,因为出现错误所以驶入的车辆的信息
- 上一篇:智能小车黑线循迹&超声波避障综合实验
- 下一篇:微信小程序申请书模板
评论
共有 条评论