停车场系统部分C语言代码
(2011-05-24 16:13:41)
标签:
车牌号
层号
停车场系统
位号
停车场管理
it
#include
#include
#include
struct Garage
{
char carnum[8];
int lay; //层号
int garagenum;
int time;
int isempty;
};
void Instruction()
{ printf(" 停车场管理系统使用说明\n");
printf(" 停车请输入 1 取车请输入 2 \n");
printf(" 查看全部车辆的信息请输入 3 退出请输入 0 \n");
}
void Init(struct Garage gar[][6])
{
int i, j;
for (i=0; i<2; i++)
{ for (j=0; j<6; j++)
{ gar[i][j].lay = i+1;
gar[i][j].garagenum = j+1;
gar[i][j].time = 0;
gar[i][j].isempty = 1;
}
}
for (i=0; i<4; i++)
{ gar[0][i].isempty =0; }
strcpy(gar[0][0].carnum, "0000");
gar[0][0].time = 20;
strcpy(gar[0][1].carnum,
"1111"); gar[0][1].time = 15;
strcpy(gar[0][2].carnum, "2222");
gar[0][2].time = 10;
strcpy(gar[0][3].carnum, "3333");
gar[0][3].time = 5;}
void AddTime(struct Garage gar[][6])
{ int i, j; for (i=0; i<2; i++)
{ for (j=0; j<6; j++)
{ if (gar[i][j].isempty == 0)
{ gar[i][j].time += 5;
}
}
}
}
void Park(struct Garage gar[][6])
{ int i; char num[8];
printf("请输入车牌号:");
scanf("%s", num);
for (i=0; i<6; i++)
{ if (gar[0][i].isempty == 1)
{ printf("第一层第%d号车位空着,请在此处停车\n", i+1);
strcpy(gar[0][i].carnum, num);
printf("车牌号:%s 层号:1 车位号: %d \n", num, i+1);
AddTime(gar);
gar[0][i].isempty = 0;
gar[0][i].time = 5;
return;
}
}
printf("第一层已经没有空车位\n");
for (i=0; i<6; i++)
{
if (gar[1][i].isempty == 1)
{ printf("第二层第%d号车位空着,请在此处停车\n", i+1);
strcpy(gar[1][i].carnum, num);
printf("车牌号:%s 层号:2 车位号: %d \n", num ,i+1);
AddTime(gar);
gar[1][i].isempty = 0;
gar[1][i].time = 5;
return;
}
}
printf("对不起,1 2层都没有空车位,您现在不能在此停车\n");
}
void Information(struct Garage gar[][6])
{ int i, j;
printf(" 车牌号 层号 车位号 停车时间\n");
for (i=0; i<2; i++) { for(j=0; j<6; j++)
{ if (gar[i][j].isempty == 0)
printf(" %s���\n", gar[i][j].carnum, gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time);
}
}
printf("\n");
}
double Leave(struct Garage gar[2][6])
{
int i, j; char num[8];
double charge = 0;
printf("请输入要取的车牌号:");
scanf("%s", num);
for (i=0; i<2; i++)
{ for (j=0; j<6; j++)
{ if (!strcmp(gar[i][j].carnum, num))
{ printf("您在%d层%d车位停车%d分钟\n", gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time);
charge = gar[i][j].time/5*0.2;
printf("停车费用为每5分钟0.2元,您需交%.2lf元\n", charge);
gar[i][j].isempty = 1;
return charge;
}
}
}
printf("没有您输入的车号。\n\n");
return charge;
}
void IsPrintTotal(double total)
{
char ch;
printf("是否查看停车收费总计?Y/N");
scanf("%c", &ch);
while (ch!='y' && ch!='Y' && ch!='n' && ch!='N')
{ printf("请输入Y或N ");
scanf("%c", &ch);
printf("\n");
}
switch (ch)
{
case 'Y':
case 'y':
printf("停车场系统收费总计为%.2lf元\n", total);
break;
case 'N':
case 'n':
break;
}
}
main()
{ int choice;
double total = 0;
struct Garage gar[2][6];
Init(gar); //初始化第一层已经停有的4辆车
while (1) { Instruction();
printf("请输入要进行的操作:");
scanf("%d", &choice);
while (choice<0 || choice>3)
{
printf("输入的不合法,请输入0-3选择:");
scanf("%d", &choice);
}
switch (choice)
{
case 1:
Park(gar);
break;
case 2:
total += Leave(gar);
IsPrintTotal(total);
break;
case 3:
Information(gar);
break;
case 0:
exit(0);
}
}
return 0;
}
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。