题目要求:
源代码:头文件 Manage.h#ifndef__MANAGE_H__
#define__MANAGE_H__
#include
#include
#defineMAX 10
typedefstructCar//每一辆车所包含的信息
{
intnum;
inttime;
doublemoney;
intusenum;
doubleprec;
}Car;
typedefstructManage//存放每一辆车的信息
{
Carcar[MAX];
}Manage,*pManage;
voidInit(pManagepcar);
voidshow(constpManagepcar);
voiduse(pManagepcar);
#endif//__MANAGE_H__
源文件:Manage.c#define_CRT_SECURE_NO_WARNINGS 1
#include"Manage.h"
voidInit(pManagepcar)//初始化
{
inti = 0;
for (i=0;i
{
pcar->car[i].num=i+1;
pcar->car[i].time=0;
pcar->car[i].money=0.0;
pcar->car[i].usenum=0;
pcar->car[i].prec = 0;
}
}
voidshow(constpManagepcar)//打印展示
{
inti = 0;
printf("%2s\t%7s\t%7s\t%12s\t%9s\n","num","time","money","usenum","percentage");
for (i = 0;i
{
printf("%2d\t%5d\t%2f\t%d\t%3f%%\n",pcar->car[i].num,
pcar->car[i].time,
pcar->car[i].money,
pcar->car[i].usenum,
pcar->car[i].prec);
}
}
doubleprec(pManagepcar,intun)//计算某一辆车被使用的时间占全部车被使用的时间的百分比
{
inti = 0;
doublet = 0;
doublen = 0;
for (i=0;i
{
t+=(double)pcar->car[i].usenum;
}
n = (double)un/t;
returnn*100;
}
voiduse(pManagepcar)//使用车辆
{
intinput = 0;
inttime = 0;
inti = 0;
doublem = 0;
doubley = 0;
intn = 0;
printf("请输入需要使用车的号码(-10):");
scanf("%d",&input);
if ((input>10)||(input<1))
{
printf("输入的车号有问题,程序退出\n");
return ;
}
printf("您已选择使用%d号车!请输入使用时间(分钟):",input);
scanf("%d",&time);
pcar->car[input-1].usenum++;
for (n=0;n
{
pcar->car[n].prec = prec(pcar,pcar->car[n].usenum);
}
if (time<0)
{
printf("输入时间有误,程序退出\n");
return ;
}
if (time<=30)
{
pcar->car[input-1].time=pcar->car[input-1].time + time;
y = 0.5;
pcar->car[input-1].money =pcar->car[input-1].money + y;
}
if (time>30)
{
m = (((time-30)/30)+1)*0.5;
if (m>5)
{
m=5;
}
pcar->car[input-1].time=pcar->car[input-1].time + time;
y =m;
pcar->car[input-1].money =pcar->car[input-1].money + y;
}
printf("正在为您计算使用费用:\n");
for (i=0;i<28;i++)
{
printf("*");
Sleep(30);
}
printf("\n");
printf("您所需支付的金额为:%f元\n",y);
}
测试代码:test.c#define_CRT_SECURE_NO_WARNINGS 1
#include"Manage.h"
voidmenu()
{
printf("****************************\n");
printf("******* 1. use ******\n");
printf("******* 2. seach ******\n");
printf("******* 0. exit ******\n");
printf("****************************\n");
}
intmain()
{
intinput = 0;
Managemy_car;
Init(&my_car);
do
{
menu();
printf("请选择:");
scanf("%d",&input);
switch (input)
{
case 1:
use(&my_car);
break;
case 2:
show(&my_car);
break;
case 0:
break;
default:
printf("选择错误\n");
break;
}
} while (input);
}