由于信息中车位号 给的是一个 整型 变量
所以输入的时候 注意点
会有不足
见谅
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
#define
POSITENU
10 //车位的个数
struct a
{
char no[9]; //表示车牌号
int
pos;
//车位号
float
fee; //收费金额
int
Nhour;
//时
int
Nmin;
//分
int
EmFu;
//判断车位是否被占用占有取1 没就取0值
}car[POSITENU];
char c[9];
int flag = 0;
void Put_Car(); //停车
void Take_Car(); //取车
void Search_No(); //根据车牌查询车辆是否入库
void Search_Pos(); //根据车位号查询车位信息
void main()
{
int f;
char che;
for( f = 0; f<POSITENU; f++ )//设置 开始状态为没有占用
car[f].EmFu = 0;
for( ; ; )
{
//输出提示信息 进行操作
printf("\n请根据下面提示信息进行操作:\n");
printf("*要进行停车操作请输入\"1\".\n");
printf("*要进行取车操作请输入\"2\".\n");
printf("*根据9位车牌查询车辆信息请输入\"3\".\n");
printf("*根据车位号查询车位信息请输入\"4\".\n");
printf("*退出管理系统请输入\"5\".\n");
che = getch();
putchar(che);
putchar('\n');
switch( che )
{
case '1':
Put_Car();
break;
case '2':
Take_Car();
break;
case '3':
Search_No();
break;
case '4':
Search_Pos();
break;
case '5':
exit(0);
break;
}
}
}
//停车
void Put_Car(
)
{
printf("请输入9位车牌号:");
scanf("%s", car[flag].no);
printf("请输入存放车位号:");
scanf("%d", &car[flag].pos);
car[flag].EmFu = 1;
printf("请输入每小时收费金额:");
scanf("%f", &car[flag].fee);
struct tm *local;
time_t t;
t = time( NULL );
local = localtime( &t );
car[flag].Nhour = local->tm_hour;
car[flag].Nmin = local->tm_min;
printf("存车时间:");
printf(" %d 时 %d 分\n", car[flag].Nhour, car[flag].Nmin );
}
//取车
void Take_Car(
)
{
int hour, min, n = 0, m = 0;
float sum;
printf("请输入要取车的9位牌号:");
scanf("%s", c);
if( strlen(c) == 9 )
{
int i = 0;
for( ; i<POSITENU; i++ )
for( ; m<9; m++ )
if( c[m] == car[i].no[m] )
++n;
if( n == 9 )
{
printf("您的9位车牌号是:");
printf("%s\n", c);
printf("存放在 %d 车位号上\n", car[i].pos);
struct tm *local;
time_t t;
t = time( NULL );
local = localtime( &t );
hour = local->tm_hour;
min = local->tm_min;
printf("取车时间:");
printf(" %d 时 %d 分\n", hour, min );
sum = ( car[i].Nhour - hour + (min-car[i].Nmin+29)%60 )*car[i].fee;
printf("总费用为:%.2f\n", sum);
}
if( n != 9 )
{
printf("您输入的车牌号暂时没有存入到本车库!\n");
printf("请您根据提示信息进行操作!\n");
}
}
else
printf("对不起!\n您输入的车牌号错误!\n");
}
//根据车牌查询是否入库
void Search_No(
)
{
int m = 0, n = 0;
printf("请输入要查询的9位车牌号:");
scanf("%s", c);
if( strlen(c) == 9 )
{
int i = 0;
for( ; i<POSITENU; i++ )
for( ; m<9; m++ )
if( c[m] == car[i].no[m] )
++n;
if( n == 9 )
{
printf("您好!您的车已经存放到本车库的%d位!\n", car[i].pos);
printf("车牌号为:%s\n", c);
printf("入库时间为:");
printf(" %d 时 %d 分\n", car[i].Nhour, car[i].Nmin );
}
if( n != 9 )
{
printf("您输入的车牌号暂时没有存入到本车库!\n");
printf("请您根据提示信息进行操作!\n");
}
}
else
printf("对不起!\n您输入的车牌号错误!\n");
}
//根据车位查询车位信息
void Search_Pos(
)
{
int loc;
int i = 0, j = 0;
printf("请输入要查询的车位号:");
scanf("%d", &loc);
for( ; i<POSITENU; i++ )
if( car[i].pos == loc )
{
printf("本车位信息如下:\n");
j++;
if( car[i].EmFu == 1 )
{
printf("存放车的车牌号为:%s\n",car[i].no);
printf("存放时间为:");
printf(" %d 时 %d 分\n", car[i].Nhour, car[i].Nmin );
printf("每小时存放的费用:%.2f\n", car[i].fee );
}
}
if( j == 0 )
printf("本车位没有被占有!\n");
}