利用函数重载,写三个同名的时长转换的函数 transTime,分别完成以下功能:
1 能够把用浮点数表示的时长(单位为分钟),转换成时分秒。
例如:64.5分钟,转换成1小时4分钟30秒 (秒的计算向上取整)
2 能够把时分秒转换成浮点数表示时长,调用roundn函数四舍五入保留2位小数并返回该时长(单位为分钟)
例如:将1小时4分钟30秒,转换成64.5
3 能够把分秒表示的时长,转换成浮点数,调用roundn函数四舍五入保留2位小数并返回该时长(单位为分钟)
例如:将4分钟30秒,转换成4.5
4 为了更快捷地完成任务,再编写一个四舍五入保留n位小数的函数
int roundn(float f, int n)
例如 调用该函数时 roundn(3.1415, 3) 返回3.142;
测试输入:
12.69
12:5:37
18:49
预期输出:
12.69 mins is 0:12:42
12:05:37 is 725.62 mins
18:49 is 18.82 mins
请补全如下代码
//TransTime 重载
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
//返回四舍五入保留n位小数的结果
float roundn(float f, int n);
// 此处写TransTime三个重载函数的原型
////////TODO Begin ////
///////TODO End//////
int main()
{
float duration;
int h, m, s;
char c;
//请不要修改主函数中的任何代码
//测试1 分钟数 转 时:分:秒
cout << "input mins:\n";
cin >> duration;
TransTime(duration, h,m,s);
cout << duration << " mins is " << h <<":"
<< setw(2) << setfill('0') << m <<":"
<< setw(2) << setfill('0') << s << endl;
//测试2 时:分:秒 转 分钟数
cout << "\ninput h:m:s\n";
cin >> h >>c >> m >> c >>s;
duration = TransTime(h,m,s);
cout << h <<":"<< setw(2) << setfill('0') << m <<":"
<< setw(2) << setfill('0') << s << " is " << duration << " mins" << endl;
//测试3 分:秒 转 分钟数
cout << "\ninput m:s\n";
cin >> m >> c >> s;
duration = TransTime(m,s);
cout << setw(2) << setfill('0') << m <<":"
<< setw(2) << setfill('0') << s << " is " << duration << " mins" << endl;
}
//此处编写所有函数的实现
////TODO Begin ////
////TODO End/////