高速公路计费系统设计
某出口收费处,对三种类型的车辆计费,大型车每公里0.5元,中型车辆每公里0.4元,小行车每公里0.3元,来车验条,乘公里数即得该收的款项。在交班时要统计出总数.
要求:
1,初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数
2,完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打印出报表。
3,进一步要求:完成任意个入口的通用系统
输入入口编号num,然后系统调出该入口到出口的距离,并计算出应收费用。入口到出口的距离事先编入数据库,为方便编程,暂且直接输入距离,即程序中的distance[num]。如果有事先编好的数据库,则当输入入口编号后,从数据库中调出distance[num]即可。
以下是程序,调试通过。由于时间关系,未进行界面设计。
还请各位批评指正,谢了。
#define M 100
main()
{ int i=0,j,k[M],num,flag; float total=0; char var;
int distance[M],record[M],p[M]; float t[M];
float c[3]={0.3,0.4,0.5}; clrscr();
printf("\t\t\t ___________________________\n");
printf("\t\t\t| |\n");
printf("\t\t\t| 高 速 公 路 计 费 系 统 |\n");
printf("\t\t\t| |\n");
printf("\t\t\t| 收费标准如下(每公里): |\n");
printf("\t\t\t| 大型车————0.5元 |\n");
printf("\t\t\t| 中型车————0.4元 |\n");
printf("\t\t\t| 小型车————0.3元 |\n");
printf("\t\t\t|___________________________|\n");
do { printf("Please input the access number:");
scanf("%d",&num);
printf("Please input distance[%d]:",num);
scanf("%d",distance+num);
printf("Please input the type of the car");
printf("(big-2 middle-1 small-0):");
scanf("%d",k+i);
record[i]=num; p[i]=distance[num];
t[i]=distance[num]*c[k[i]]; i++;
printf("If you want to quit ,Press \'q\';");
printf("Or press the other key to continue!\n");
var=getch();
}
while(var!=\'q\'); clrscr();
printf("\t 入口 \t 公里 \t 车型 \t 收费 \n");
for(j=0;j<i;j++)
{ total+=t[j]; printf("%3d\t%3d",j+1,record[j]);
printf("\t%3d\t%d\t%6.2f\n",p[j],k[j],t[j]);
}
printf("\tTotal\t\t\t%6.2f\n",total);
getch();
}
某出口收费处,对三种类型的车辆计费,大型车每公里0.5元,中型车辆每公里0.4元,小行车每公里0.3元,来车验条,乘公里数即得该收的款项。在交班时要统计出总数.
要求:
1,初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数
2,完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打印出报表。
3,进一步要求:完成任意个入口的通用系统
输入入口编号num,然后系统调出该入口到出口的距离,并计算出应收费用。入口到出口的距离事先编入数据库,为方便编程,暂且直接输入距离,即程序中的distance[num]。如果有事先编好的数据库,则当输入入口编号后,从数据库中调出distance[num]即可。
以下是程序,调试通过。由于时间关系,未进行界面设计。
还请各位批评指正,谢了。
#define M 100
main()
{ int i=0,j,k[M],num,flag; float total=0; char var;
int distance[M],record[M],p[M]; float t[M];
float c[3]={0.3,0.4,0.5}; clrscr();
printf("\t\t\t ___________________________\n");
printf("\t\t\t| |\n");
printf("\t\t\t| 高 速 公 路 计 费 系 统 |\n");
printf("\t\t\t| |\n");
printf("\t\t\t| 收费标准如下(每公里): |\n");
printf("\t\t\t| 大型车————0.5元 |\n");
printf("\t\t\t| 中型车————0.4元 |\n");
printf("\t\t\t| 小型车————0.3元 |\n");
printf("\t\t\t|___________________________|\n");
do { printf("Please input the access number:");
scanf("%d",&num);
printf("Please input distance[%d]:",num);
scanf("%d",distance+num);
printf("Please input the type of the car");
printf("(big-2 middle-1 small-0):");
scanf("%d",k+i);
record[i]=num; p[i]=distance[num];
t[i]=distance[num]*c[k[i]]; i++;
printf("If you want to quit ,Press \'q\';");
printf("Or press the other key to continue!\n");
var=getch();
}
while(var!=\'q\'); clrscr();
printf("\t 入口 \t 公里 \t 车型 \t 收费 \n");
for(j=0;j<i;j++)
{ total+=t[j]; printf("%3d\t%3d",j+1,record[j]);
printf("\t%3d\t%d\t%6.2f\n",p[j],k[j],t[j]);
}
printf("\tTotal\t\t\t%6.2f\n",total);
getch();
}