#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 *top1,LQueue *Q); //初始化车辆进入

int expenses(stacknode *p,int x,int y); //停车费用计算函数

stacknode *leave(stacknode *top1,char str[],LQueue *Q); //车辆驶出出场函数

LQueue *InitLQue(); //初始化队列函数

LQueue *wait(LQueue *q,stacknode *s); //车辆进入候车便道函数

int EmptyLQue(LQueue *q); //判断候车便道有无等待车辆函数

stacknode *out(LQueue *q); //候车区车辆出队

stacknode *LQinto(stacknode *p,stacknode *top1); //从候车便道进入停车场函数

void show(stacknode *top1); //显示停车场所有信息函数

void T_shou(LQueue *Q); //显示候车区信息

/*函数部分*/

//主函数

void main()

{

char str[10];

Q=InitLQue();

top1=Init();

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(top1,Q);

break;

case 2:

printf("请输入离开车辆的车牌号:");

scanf("%s",str);

top1=leave(top1,str,Q);

break;

case 3:show(top1);break;

case 4:T_shou(Q);break;

case 5:exit(1);

default:printf("输入错误,请重新输入1—5:");

break;

}

}

}

/*子函数*/

//初始化

stacknode *Init()

{

stacknode *top;

top=(stacknode *)malloc(sizeof(stacknode));

top=NULL;

return top;

}

//初始化车辆进入

stacknode *into(stacknode *top1,LQueue *Q)

{

stacknode *p,*q;

time_t rawtime; //调用系统时间函数

struct tm *timeinfo; //时间结点

time(&rawtime);

timeinfo=localtime(&rawtime);

p=(stacknode *)malloc(sizeof(stacknode));

if(p==NULL)

{

printf("内存分配失败");

return top1;

}

printf("请输入进入停车场车辆的车牌号:");

scanf("%s",p->data.num);

q=top1;

while(q!=NULL)

{

if(strcmp(p->data.num,q->data.num)==0)

{

printf("车牌号输入有误,该车已进入!");

return top1;

}

q=q->next;

}

p->data.time.day=timeinfo->tm_mday;

p->data.time.hour=timeinfo->tm_hour;

p->data.time.min=timeinfo->tm_min;

p->data.n=b;

if(b>max)

{

printf("停车场已满,请在便道等候!\n");

wait(Q,p);

return top1;

}

if(top1==NULL)

{

p->next=NULL;

top1=p;

}

else

{

p->next=top1;

top1=p;

}

b++;

printf("车辆进入停车场成功,时间已经自动载入!\n");

printf("车牌为%s的汽车驶入时间为:%d号%d点%d分\n",top1->data.num,top1->data.time.day,top1->data.time.hour,top1->data.time.min);

return top1;

}

//停车费用计算函数

int expenses(stacknode *p,int x1,int x2,int x3)

{

int w;

if(x3!=0)

w=(x1*24+x2+1-(p->data.time.day*24+p->data.time.hour))*price;

else

w=(x1*24+x2-(p->data.time.day*24+p->data.time.hour))*price;

return w;

}

//车辆驶出出场函数

stacknode *leave(stacknode *top1,char str[],LQueue *Q)

{

int i,day,hour,min;

time_t rawtime;

struct tm *timeinfo;

time(&rawtime);

timeinfo=localtime(&rawtime);

day=timeinfo->tm_mday;

hour=timeinfo->tm_hour;

min=timeinfo->tm_min;

stacknode *p,*q;

if(top1==NULL)

{

printf("停车场没有车辆!\n");

return top1;

}

q=(stacknode *)malloc(sizeof(stacknode));

if(p==NULL)

{

printf("内存分配失败");

return top1;

}

q=top1;

while(q!=NULL)

{

if(strcmp(q->data.num,str)==0)

break;

q=q->next;

}

if(q==NULL)

{

printf("输入有误,该车辆不在停车场!\n");

return top1;

}

for(i=top1->data.n;i>q->data.n;i--)

{

p=(stacknode *)malloc(sizeof(stacknode));

if(p==NULL)

{

printf("内存分配失败");

return top1;

}

strcpy(p->data.num,top1->data.num);

p->data.time=top1->data.time;

p->data.n=top1->data.n-1;

top1=top1->next;

if(top2==NULL)

{

p->next=NULL;

top2=p;

}

else

{

p->next=top2;

top2=p;

}

}

top1=top1->next;

while(top2!=NULL)

{

p=(stacknode *)malloc(sizeof(stacknode));if(p==NULL){printf("内存分配失败");return top1;}

p->data.n=top2->data.n;

strcpy(p->data.num,top2->data.num);

p->data.time=top2->data.time;

p->next=top1;

top1=p;

top2=top2->next;

}

if(EmptyLQue(Q))

{

p=out(Q);

p->data.n--;

top1=LQinto(p,top1);

}

else

b--;

printf("车牌为%s的汽车驶出时间为:%d号%d点%d分\n",q->data.num,day,hour,min);

printf("车辆驶出停车场需要缴纳的费用为:%d元\n",expenses(q,day,hour,min));

return top1;

}

//队列函数初始化

LQueue *InitLQue()

{

LQueue *Q;

stacknode *p;

Q=(LQueue *)malloc(sizeof(LQueue));

p=(stacknode *)malloc(sizeof(stacknode));

p->next=NULL;

Q->front=Q->rear=p;

return Q;

}

//候车区队列入队

LQueue *wait(LQueue *q,stacknode *s)

{

s->next=NULL;

q->rear->next=s;

q->rear=s;

return q;

}

//判断候车便道有无车辆等待

int EmptyLQue(LQueue *q)

{

if(q->front==q->rear)

return 0;

else

return 1;

}

//候车区车辆出队

stacknode *out(LQueue *q)

{

stacknode *p;

p=q->front->next;

if(q->front->next==q->rear)

{

q->rear=q->front;

return p;

}

else

q->front->next=p->next;

p->next=NULL;

return p;

}

//候车队列进入停车场

stacknode *LQinto(stacknode *p,stacknode *top1)

{

p->next=top1;

top1=p;

return top1;

}

//显示停车场内所有车辆信息

void show(stacknode *top1)

{

printf(" 停车场内全部车辆信息表\n");

if(top1==NULL)

printf(" 停车场内无车!\n");

else

{

printf("车牌号 进入时间 位置\n");

while(top1!=NULL)

{

printf(" %s %d号%d点%d分 第%d位\n",top1->data.num,top1->data.time.day,top1->data.time.hour,top1->data.time.min,top1->data.n);

top1=top1->next;

}

}

}

//显示候车区的汽车信息

void T_shou(LQueue *Q)

{

LQueue *q;

q=(LQueue *)malloc(sizeof(LQueue));

q->rear=Q->rear->next;

printf(" 候车区信息\n");

if(q->front==q->rear)

printf("候车区没有车辆!\n");

else

{

printf("车牌号 进入时间\n");

while(q!=NULL)

{

printf("%s%d号%d点%d分",q->data.num,q->data.time.day,q->data.time.hour,q->data.time.min);

q->rear=q->rear->next;

}

}

}

/*时间函数

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语言停车场的收费管理系统,c语言停车场管理系统相关推荐

  1. c语言编程机房收费系统,C语言机房收费管理系统.doc

    C语言实践报告--机房收费管理系统 PAGE 第 2 - 页 共 NUMPAGES 8 页 C语言实践--机房收费管理系统 第 1 - 页 共 NUMPAGES 8 页 机房收费管理系统 2011-5 ...

  2. c语言开发物业收费程序,C语言程序的设计_物业管理系统方案

    <C语言程序的设计_物业管理系统方案>由会员分享,可在线阅读,更多相关<C语言程序的设计_物业管理系统方案(10页珍藏版)>请在人人文库网上搜索. 1.i nclude std ...

  3. 停车场自动收费系统php,智能停车场收费系统设计源码

    [实例简介] 用java语言实现的智能停车场收费系统,该设计获得优秀毕业论文,论文可以参考我的资源"智能停车场收费系统设计",该系统是一个图形化的界面系统,数据存储用的是SQLse ...

  4. 车辆停放收费管理系统c语言,毕业论文 停车场收费管理系统

    内容介绍 摘要 近年来,随着社会的进步和发展,车辆也在迅速增加,城市交通的瓶颈不仅体现在道路交通的拥挤上,也体现在传统停车场管理效率和安全性大大滞后于社会的需要,给人们的生活带来了极大的不便.尤其,随 ...

  5. 停车场管理系统C语言作业,c语言课程设计报告停车场管理系统

    c语言课程设计报告停车场管理系统 C 语言课程设计报告 --停车场管理 1 班 级: 192102 学 号: 20101003907 姓 名: 聂 彪 指导教师: 张冬梅 时 间: 2011 年 6 ...

  6. c语言停车场管理系统课程设计,停车场管理系统—C语言课程设计

    <停车场管理系统-C语言课程设计>由会员分享,可在线阅读,更多相关<停车场管理系统-C语言课程设计(12页珍藏版)>请在人人文库网上搜索. 1.精品好资料学习推荐停车场管理系统 ...

  7. c语言课程设计报告停车系统,停车场管理系统C语言课程设计

    <停车场管理系统C语言课程设计>由会员分享,可在线阅读,更多相关<停车场管理系统C语言课程设计(27页珍藏版)>请在人人文库网上搜索. 1.计算机科学与技术系课程设计报告20 ...

  8. 停车场管理系统(C语言顺序栈+链栈+链队列)

    一.实验目的 1.根据停车场管理系统的要求,利用结构化程序设计方法以及C的编程思想来完成系统的设计,使用数据结构中的栈.队列进行分析: 2.按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用 ...

  9. 机房收费管理程序c语言,C语言机房收费管理系统

    C语言实践--机房收费管理系统 C语言实践--机房收费管理系统 机房收费管理系统 2011-5-22 1. 设计目的 (1) 通过对机房收费管理程序的编写加深对C语言的掌握.加深掌握条件语句,循环语 ...

最新文章

  1. 前后端数据交互的几个方法
  2. python数字和运算_Python学习笔记:数字类型和运算符,与
  3. [动规] hihocoder 1149 回文字符序列
  4. GraphPad Prism 教程 :标准差与平均值的标准误差有什么区别
  5. SciPy--数值计算
  6. 为什么python打不开_python文件打不开如何解决
  7. 第五章 循环结构课内反思
  8. 【排序】LeetCode 75. Sort Colors
  9. 转场动画CATransition~~~~~~
  10. java String字符串拼接原理
  11. android 图片压缩总结1
  12. matlab读取Ansys仿真数据实例演示
  13. USB core(一) - rh_queue_status与rh_call_control
  14. 5个python提速技巧,速度瞬间提上来了Repair(一)
  15. AT command
  16. 【Unity3D】3D游戏学习
  17. ISO7816-3标准ATR解析
  18. 网站seo怎么优化(如何提高网站seo排名)
  19. 奇虎360或拆分业务上市 面临监管难题
  20. 利用OllyDbg解决JLINK提示The connected J-Link is defective. Proper opera...

热门文章

  1. 精品韩国美食西餐厅介绍PPT模板
  2. Apache Kafka 3.0.0 稳定版发布,有哪些值得关心的变化?
  3. GitHub Copilot 已上线,AI 编程这等来啦!
  4. 多目标优化算法matlab代码大合集
  5. 越是见过世面的人,欲望越少
  6. 六,基于FPGA的高速串行通信GTX知识梳理
  7. 关于128x64OLED屏幕字体类型以及字体大小添加方法
  8. 读书有益——》关于雪下很大的成语
  9. 原创:编写jquery 选项卡插件
  10. 主机和虚拟机通过虚拟串口通信