C语言,设计出租车计价器,不能计算夜间加费用的版本

来源:互联网 发布:104cm肛塞淘宝 编辑:程序博客网 时间:2024/04/27 04:36


1. 每公里单价计费2.3元
2. 起步价13元(包含3公里)
3. 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。
4. 每次乘车加收1元钱的燃油附加税。
输入 :时间和 速度序列,直到序列中速度为0为止。
例如输入:
9:1:10(时间)   20(车速)
9:4:20(时间)  30(车速变成30,之前一直是上一个时间的速度20,即20公里/小时行驶了3分钟10秒)
9:10:12(时间)  60(车速变成60,之前一直是上一个时间的速度30)
10:1:10(时间)  30(车速变成30,之前一直是上一个时间的速度60)
10:1:20(时间)  0(10点1分20秒车停止了,速度是0)
则车辆停止,从这段时间内的总价格。
注意。
比如夜里
输入
22:50:00    20
23:20:01  40
23:30:5  0
那么计价标准会行驶中变化(超过23:00:00,每公里加收20%)
要考虑 跨越午夜0:00的情况。
比如可能上车时间:
23:55:05 
下车时间 0:20:07.
不需考虑时间超过1天的情况——即不用考虑日期。

#include <stdio.h>#define PRICE  2.3      //每公里2.3元#define QBJ    13.0     //起步价13元#define PLUS   0.2    //夜间的价格加成#define FJS    1.0    // 燃油附加税 1元#define MILES  3.0      //起步价包含三公里int main(){float v;//车速float h,m,s;//分别对应小时,分钟,秒float hb,mb,sb,vb;   //存储前一个小时,分钟,秒,速度float time;//时长float km;//公里数float count;//最终计费km = 0;hb = 0;mb = 0;sb = 0;time = 0;printf("输入时间和速度序列,直到序列中速度为0时程序结束,输出费用。\n例如输入:9:1:10(时间)20(车速):\n");while(scanf("%f:%f:%f %f",&h,&m,&s,&v), v!=0 )  //当速度输入为0的时候循环结束;{if( (h >= hb) && (hb !=0 && mb != 0 && sb!= 0) )time = ( (h-hb) * 3600 + (m - mb) *60 + (s-sb) ); //以秒计算else if ( (h<hb) && (hb !=0 && mb != 0 && sb!= 0) )  // 过零点了的情况time =  ( (23-hb) + h) * 3600 +( (60-mb) + m )*60 + ( (60-sb)+s );km = km + ( vb *  (time/3600.00) );hb = h;mb = m;sb = s;vb = v;}if(km <= 3)count = QBJ + FJS ;else if (km > 3)count = QBJ + (km-MILES) * PRICE + FJS ; printf("总共行驶了%.2f公里,费用总共为%.2f元\n",km,count);return 0;} 



0 0