用C++定义一个类Torch,计算奥运火炬传递总时间
2013-11-26 17:32
459 查看
一、要求:
定义一个类Torch,计算奥运火炬传递总时间。具体要求如下:
(1)私有成员
int d,h,m,s;分别表示奥运火炬传递的天数,小时数,分钟数及秒数。
(2)公有成员
Torch (char*p):构造函数,有指针p指向的全部由数字构成的8位字符串初始化火炬传递的时间,其中,天,时。分,秒分别用两位字符表示(假设火炬的传递时间按不超过99天)例如,当char *p=”06150650”时,则d=6,h=15,m=6,s=50。
void add(Torch &t) :将参数t所表示的火炬传递时间加入当前对象。
void normal():将当前对象所表示的时间转化成标准形式,即当秒数超过59时进位分钟。当分钟数超过59时进位小时,当小时数超过23时进位天数。
void print():按指定的格式输出传递的天数,小时数,分数,秒数。
(3)主函数中首先定义一个Torch的对象t(各数据成员的初始值都是0),表示火炬传递的总时间,接着依次输入若干个不同城市火炬的传递的天数,小时数,分数,秒数(需要为各城市定义一个Torch对象,并判断输入数据是否正确),并将火炬传递时间加入到对象t中。调用相关成员函数完成对该对象的测试。输入、输出示例(括号为键盘输入):输入城市1的火炬传递时间(ddhhmmss),输入end结束:(01084523)输入城市2的火炬传递时间(ddhhmmss),输入end结束:(01091224)输入城市3火炬传递时间(ddhhmmss),输入end结束:(011020304)输入的格式不正确,重新输入!输入城市3的火炬传递时间(ddhhmmss),输入end结束:(01102030)输入城市4的火炬传递时间(ddhhssmm),输入end结束:(end)火炬的传递时间为:4天4小时18分17秒。
二、代码:
三、运行结果:
定义一个类Torch,计算奥运火炬传递总时间。具体要求如下:
(1)私有成员
int d,h,m,s;分别表示奥运火炬传递的天数,小时数,分钟数及秒数。
(2)公有成员
Torch (char*p):构造函数,有指针p指向的全部由数字构成的8位字符串初始化火炬传递的时间,其中,天,时。分,秒分别用两位字符表示(假设火炬的传递时间按不超过99天)例如,当char *p=”06150650”时,则d=6,h=15,m=6,s=50。
void add(Torch &t) :将参数t所表示的火炬传递时间加入当前对象。
void normal():将当前对象所表示的时间转化成标准形式,即当秒数超过59时进位分钟。当分钟数超过59时进位小时,当小时数超过23时进位天数。
void print():按指定的格式输出传递的天数,小时数,分数,秒数。
(3)主函数中首先定义一个Torch的对象t(各数据成员的初始值都是0),表示火炬传递的总时间,接着依次输入若干个不同城市火炬的传递的天数,小时数,分数,秒数(需要为各城市定义一个Torch对象,并判断输入数据是否正确),并将火炬传递时间加入到对象t中。调用相关成员函数完成对该对象的测试。输入、输出示例(括号为键盘输入):输入城市1的火炬传递时间(ddhhmmss),输入end结束:(01084523)输入城市2的火炬传递时间(ddhhmmss),输入end结束:(01091224)输入城市3火炬传递时间(ddhhmmss),输入end结束:(011020304)输入的格式不正确,重新输入!输入城市3的火炬传递时间(ddhhmmss),输入end结束:(01102030)输入城市4的火炬传递时间(ddhhssmm),输入end结束:(end)火炬的传递时间为:4天4小时18分17秒。
二、代码:
// Torch.h #ifndef _TORCH_H #define _TORCH_H class Torch { private: int d,h,m,s; public: Torch(){d=0; h=0; m=0; s=0;} Torch(char*p){d=(p[0]-48)*10+(p[1]-48); h=(p[2]-48)*10+(p[3]-48); m=(p[4]-48)*10+(p[5]-48); s=(p[6]-48)*10+(p[7]-48);} void add(Torch &t); void normal(); void print(); }; #endif
// Torch.cpp #include <iostream> using namespace std; #include "Torch.h" void Torch:: add(Torch &t) { d+=t.d; h+=t.h; m+=t.m; s+=t.s; normal(); } void Torch:: normal() { if (s > 59) { s-=60; m+=1; } if (m > 59) { m-=60; h+=1; } if (h > 23) { h-=24; d+=1; } } void Torch:: print() { cout<<d<<"天"<<h<<"小时"<<m<<"分"<<s<<"秒"<<endl; }
// TorchMain.cpp #include <iostream> using namespace std; #include "Torch.h" int main() { Torch t = Torch(); char s[10]; for(int i=1;;i++) { cout<<"输入城市"<<i<<"的火炬传递时间(ddhhmmss),输出end结束:"<<endl; cin>>s; if (strlen(s) > 8) { cout<<"输入的格式不正确,重新输入!"<<endl; i--; continue; } else { Torch city = Torch(s); if (s[0] == 'e' && s[1]=='n' && s[2]=='d') { break; } t.add(city); } } cout<<"火炬的传递时间为:"; t.print(); return 0; }
三、运行结果:
相关文章推荐
- C++的64位整数[转]+gyy整理
- C语言运算符优先级 详细列表
- C语言sizeof,pragma 和对齐详解
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- 新C++标准:C++0x教程(四):面向所有开发者的特性(下)
- C语言头文件的看法
- c++实现MD5算法实现代码
- 也谈C++中char*与wchar_t*之间的转换
- 数组3
- C++中的头文件和源文件
- C++实现Chi-square 特征词选择算法
- C++Vector用法
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习5
- VC C++
- C语言做互相关
- 数组处理
- iOS培训篇——C++变量的声明和定义介绍
- RAII惯用法:C++资源管理的利器
- opencv运动估计c++语言的实现
- 数组