高速公路计费系统设计

时间:2024-04-17 15:47:22
高速公路计费系统设计
某出口收费处,对三种类型的车辆计费,大型车每公里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();
}