依照入库出库时间收取费用,4/h,一小时以上开始计费以十五分钟,半小时向前取整。
输入入库及出库时间,输出规范化时间及总计费时长与费用。
头
#include <iostream>
using namespace std;
class clock1
{
public:
void show_time();
void set_time();
double diff(const clock1& T);
private:
int normalize() const;
int hour;
int minute;
int second;
};
源1 函数成员
#include "clock1.h"
void clock1::show_time()
{
cout << hour << ":" << minute << ":" << second << endl;
}
void clock1::set_time()
{
do
{
cin >> hour >> minute >> second;
} while
(hour < 0 || hour>24 || minute < 0 || minute>59 || second < 0 || second>59);
}
int clock1::normalize()const
{
return hour * 60 + minute;
}
double clock1::diff(const clock1 & T)
{
long d = this->normalize() - T.normalize();
if (d < 0) return 0;
int h = d / 60, m = d % 60;
if (m < 15) return h;
if (m >= 15 && m < 30) return h + 0.5;
if (m >= 30 && m < 60) return h + 1;
}
源2 main
#include "clock1.h"
int main()
{
clock1 arrive, leave;
double parkingTime, Fee;
arrive.set_time();
arrive.show_time();
leave.set_time();
leave.show_time();
parkingTime = leave.diff(arrive);
Fee = 4 * parkingTime;
cout << parkingTime<<"收费" << Fee << endl;
system("pause");
return 0;
}