要求
停车场收费系统
1,停车(车辆信息(车牌号),进入时间)
2,显示(收费(每分钟收费--元)+停车场容量(总多少量,有多少量,还可以放多少两))
3,离开(打印信息停车多长时间,收多少钱;清除数据)
4,退出(exit(1));
/*****************************************************
copyright (C), 2014-2015, Jinling Institute of Tecnology
File name:1.c
Author: Zhang.Y.F Version:0.1 Date: 2018-01-14 18:49
Description:
Funcion List:
*****************************************************/
copyright (C), 2014-2015, Jinling Institute of Tecnology
File name:1.c
Author: Zhang.Y.F Version:0.1 Date: 2018-01-14 18:49
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct Node//定义一个结构体用来存放车辆信息,车牌号,进入时间等
{
char car[10];
struct Node *next;
time_t start;
int flag;//用来辨别当前节点内有没有车
}Node,*LinkList;
void Create(LinkList L)//创建一个有而是个元素的链表,长度限定了,后面也不再改变(传的是二极指针)
{
char car[10];
LinkList p,s;
int i=0;
p=L->next=(LinkList)malloc(sizeof(Node));
printf("请输入车牌号\n");
scanf("%s",p->car);
p->start=time(NULL);
p->flag=1;
i=1;
while(i<5)
{
printf("请输入车牌号\n");
s=(LinkList)malloc(sizeof(Node));
scanf("%s",s->car);
s->start=time(NULL);
s->flag=1;
//s->next=p;
//L->next=s;
//p=s;
s->next=p->next;
p->next=s;
p=s;
i++;
}
}
void OutCar(LinkList L)
{
char car[10];
printf("输入你想要出库的车\n");
scanf("%s",car);
LinkList p;
p=L->next;
time_t end;
int h1,m1,s1;
int h2,m2,s2;
h1=0;
m1=0;
s1=0;
h2=0;
m2=0;
s2=0;
while(p)
{
if(strcmp(p->car,car)==0)
break;
p=p->next;
}
if(p!=NULL)
{
end=time(NULL);
s1=p->start%60;
m1=p->start%3600/60;
h1=(p->start%(3600*24)/3600+8);
s2=end%60;
m2=end%3600/60;
h2=(end%(3600*24)/3600+8);
printf("车辆信息如下\n");
printf("车牌号:%s\n",p->car);
printf("进入时间:%02d:%02d:%02d:\n",h1,m1,s1);
printf("出库时间:%02d:%02d:%02d:\n",h2,m2,s2);
printf("收费%d",5*(end-(p->start)));
p->flag=0;
}
else
printf("查无此车\n");
}
void InCar(LinkList L)
{
LinkList p;
p=L->next;
char car[10];
while(p)
{
if(p->flag==0)
break;
p=p->next;
}
if(p!=NULL&&p->flag==0)//有空位
{
printf("请输入进入车辆的车牌号");
scanf("%s",p->car);
p->start=clock();
p->flag=1;
}
else
printf("车库满了\n");
}
void PrintList(LinkList L)
{
LinkList p;
p=L->next;
printf("车辆信息如下\n");
int h,m,s;
h=0;
m=0;
s=0;
int i=1;
while(p)
{
s=p->start%60;
m=p->start%3600/60;
h=(p->start%(3600*24)/3600+8);
if(p->flag!=0)
{
printf("%d号停车位已停车\n",i);
printf("车牌号:%s\n",p->car);
printf("进入时间:%02d:%02d:%02d:\n",h,m,s);
}
else
{
printf("%d号停车位未停车,欢迎来停\n",i);
//printf("这块没车,欢迎来停\n");
}
p=p->next;
i++;
}
}
int main(int argc, char **argv)
{
#include <stdlib.h>
#include <time.h>
typedef struct Node//定义一个结构体用来存放车辆信息,车牌号,进入时间等
{
char car[10];
struct Node *next;
time_t start;
int flag;//用来辨别当前节点内有没有车
}Node,*LinkList;
void Create(LinkList L)//创建一个有而是个元素的链表,长度限定了,后面也不再改变(传的是二极指针)
{
char car[10];
LinkList p,s;
int i=0;
p=L->next=(LinkList)malloc(sizeof(Node));
printf("请输入车牌号\n");
scanf("%s",p->car);
p->start=time(NULL);
p->flag=1;
i=1;
while(i<5)
{
printf("请输入车牌号\n");
s=(LinkList)malloc(sizeof(Node));
scanf("%s",s->car);
s->start=time(NULL);
s->flag=1;
//s->next=p;
//L->next=s;
//p=s;
s->next=p->next;
p->next=s;
p=s;
i++;
}
}
void OutCar(LinkList L)
{
char car[10];
printf("输入你想要出库的车\n");
scanf("%s",car);
LinkList p;
p=L->next;
time_t end;
int h1,m1,s1;
int h2,m2,s2;
h1=0;
m1=0;
s1=0;
h2=0;
m2=0;
s2=0;
while(p)
{
if(strcmp(p->car,car)==0)
break;
p=p->next;
}
if(p!=NULL)
{
end=time(NULL);
s1=p->start%60;
m1=p->start%3600/60;
h1=(p->start%(3600*24)/3600+8);
s2=end%60;
m2=end%3600/60;
h2=(end%(3600*24)/3600+8);
printf("车辆信息如下\n");
printf("车牌号:%s\n",p->car);
printf("进入时间:%02d:%02d:%02d:\n",h1,m1,s1);
printf("出库时间:%02d:%02d:%02d:\n",h2,m2,s2);
printf("收费%d",5*(end-(p->start)));
p->flag=0;
}
else
printf("查无此车\n");
}
void InCar(LinkList L)
{
LinkList p;
p=L->next;
char car[10];
while(p)
{
if(p->flag==0)
break;
p=p->next;
}
if(p!=NULL&&p->flag==0)//有空位
{
printf("请输入进入车辆的车牌号");
scanf("%s",p->car);
p->start=clock();
p->flag=1;
}
else
printf("车库满了\n");
}
void PrintList(LinkList L)
{
LinkList p;
p=L->next;
printf("车辆信息如下\n");
int h,m,s;
h=0;
m=0;
s=0;
int i=1;
while(p)
{
s=p->start%60;
m=p->start%3600/60;
h=(p->start%(3600*24)/3600+8);
if(p->flag!=0)
{
printf("%d号停车位已停车\n",i);
printf("车牌号:%s\n",p->car);
printf("进入时间:%02d:%02d:%02d:\n",h,m,s);
}
else
{
printf("%d号停车位未停车,欢迎来停\n",i);
//printf("这块没车,欢迎来停\n");
}
p=p->next;
i++;
}
}
int main(int argc, char **argv)
{
printf("**************欢迎来到停车厂,我要收费了**************\n");
printf("**************输入你想要的操作*****************\n");
//printf("输入i就入库,输入o就出库,输入p打印所有车辆信息,输入e结束这些操作\n");
LinkList L;
printf("**************输入你想要的操作*****************\n");
//printf("输入i就入库,输入o就出库,输入p打印所有车辆信息,输入e结束这些操作\n");
LinkList L;
Create(L);
LinkList p=L;
char c;
while(1)
{
printf("输入i就入库,输入o就出库,输入p打印所有车辆信息,输入e结束这些操作\n");
scanf("%c",&c);
//getchar();
switch(c)
{
case 'i':InCar(p);break;
case 'o':OutCar(p);break;
case 'p':PrintList(p);break;
case 'e':exit(1);break;
}
}
char c;
while(1)
{
printf("输入i就入库,输入o就出库,输入p打印所有车辆信息,输入e结束这些操作\n");
scanf("%c",&c);
//getchar();
switch(c)
{
case 'i':InCar(p);break;
case 'o':OutCar(p);break;
case 'p':PrintList(p);break;
case 'e':exit(1);break;
}
}
return 0;
}
}