#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-20个车位号,设计一个停车场管理系统,实现停车场管理...相关推荐

  1. C语言程序设计——设计一个学生管理系统(完美运行的程序(●‘◡‘●))

    目录 一.设计目的 二.原理及相关功能 (一)基本框架 (二)功能实现 三.完整代码 四.运行结果 一.设计目的 通过c语言设计一个学生管理系统,要求有直观的主菜单,可以录入学生的信息,实现添加学生信 ...

  2. 为银行设计ATM菜单C语言,ATM银行管理系统代码及程序c语言课程设计【荐】.doc

    ATM银行管理系统代码及程序c语言课程设计[荐].doc #include #include #include #include struct bank{ int account; char name ...

  3. 记得每天锻炼身体c语言程序,c语言程序

    一实验名称计算出1000以内10个最大素数之和二.实验目的1.熟练掌握if.if-else.if-else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和s ...

  4. 单表带换密码C语言程序,帮忙写个C语言程序!题目在下面!关于链表的。还没学,题目:“建立一个链表,逐个输入字符,每一个字符存放在一个链。...

    帮忙写个C语言程序!题目在下面!关于链表的.还没学,题目:"建立一个链表,逐个输入字符,每一个字符存放在一个链. Posted By : Admin 2016-05-16 21:16 网友问 ...

  5. 运动会管理系统c语言n-s流程图,设计一个运动会管理系统.ppt

    设计一个运动会管理系统 设计一个运动会管理系统 组员: 题目:设计一个运动会管理系统 系统功能的基本要求: (1)初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数: 各项目名次取法 ...

  6. 如何用SQL设计一个图书管理系统<纯SQL>

    最近在某鱼上有小伙伴让我帮他设计一个图书管理系统的数据库,从建库到简单的数据库,现在写完了,分享给大家哦! 我们先来看看他的要求,如下图: 根据以上需求我们来编写我们的SQL语句: 1. 创建数据库用 ...

  7. 学生实验平台搭建c语言程序,c语言程序设计实验学生用.doc

    c语言程序设计实验学生用 C语言程序设计 实验指导 (学生用) 计算机基础教研室 <C语言程序设计>课程组 2012年9月 前 言 <C语言程序设计>是计算机科学技术系面向全校 ...

  8. c语言程序优化设计,C程序设计语言的教学策略优化设计

    摘要:本文围绕提高C语言课堂教学的教学质量,依据教学内容的属性与特点,融合任课教师的教学经验与智慧,通过选择恰当的教学方法,采用合理的教学手段设计了一种教学优化策略,强化了教学方案设计的科学性,保证了 ...

  9. 框图c语言程序,C语言程序设计框图

    <C语言程序设计框图>由会员分享,可在线阅读,更多相关<C语言程序设计框图(86页珍藏版)>请在人人文库网上搜索. 1.第三章控制结构,返回总目录,目录,3.1节目结构框,3. ...

最新文章

  1. nginx不同server不同日志文件_招标里的答疑是什么?和澄清文件有何不同?
  2. 欧拉降幂 ---- 2020 杭电多校[E - Fibonacci Sum]+欧拉降幂+和式的调整+二次剩余+毒瘤卡常
  3. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
  4. 基本图形的光栅化算法
  5. 获取10~99(包含10和99)的“总和”与“偶数”的个数
  6. 素数方法(thinking in java)
  7. 美国邮轮旅行社Cruise Travel Outlet接受加密货币支付
  8. DevExpress控件介绍
  9. VB在XP/2K 任务管理器的进程列表中隐藏当前进程
  10. RTOS中动态内存和静态内存管理机制
  11. 驱动级音效增强软件Dolby Home Theater V4
  12. LeetCode—面试题:移除重复节点(哈希集合)
  13. 各类编程语言教程合集
  14. ode45的常用和扩展用法
  15. 01_测试基础知识---微信公众号测试点
  16. DataFrame按某种指定顺序排序
  17. 不定积分公式 定积分公式
  18. 如何有效预防XSS?这几招管用
  19. ELasticSearch-ES集群原理与搭建
  20. 优秀的磁盘管理工具:NeoFinder for Mac

热门文章

  1. java字符串装双精度_Java 将双精度值转换为字符串
  2. 2021年全国大学生电子设计竞赛重新启动通知及进度安排
  3. 本科、硕士、博士,究竟有何区别?
  4. 欧姆龙plc解密实例_西门子、施耐德、欧姆龙等13大PLC品牌8000个实例程序资料包...
  5. js如何实现扫描身份证识别_如何识别身份证上信息?快速录入看这招
  6. python打印小猪佩琪_极度舒适的 Python 入门教程,小猪佩奇也能学会~
  7. chromedriver 下载_centos7中配置python爬虫selenium+chromium+chromedriver环境
  8. 小米无法链接华硕路由器_2000元的华硕电竞路由器开箱,如此高贵,体验是怎样的?...
  9. c primer plus 第6版 中文版pdf_内功实力再精进 试驾上汽大通V80 PLUS城市版_搜狐汽车...
  10. c++ int8_t转int_Python 90行代码让微信地球转起来,你也可以!| 原力计划