第三周上机任务--任务3--学会定义和使用类和对象--并按要求增加类的功能(简化版)
2012-03-05 18:43
323 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 雷恒鑫
* 完成日期: 2012年03 月05日
* 版 本 号:V1.2
* 对任务及求解方法的描述部分
* 输入描述: ...
* 问题描述: ...
* 程序输出: ...
*程序头部的注释结束*/
经验积累:
1.使用函数调用,可大大简化程序;
举例:
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 雷恒鑫
* 完成日期: 2012年03 月05日
* 版 本 号:V1.2
* 对任务及求解方法的描述部分
* 输入描述: ...
* 问题描述: ...
* 程序输出: ...
*程序头部的注释结束*/
#include <iostream> using namespace std; int sec2,minute2,hour2,sec1,minute1,hour1; class Time { public: void set_time( ); void show_time( ); inline void add_a_sec(); //增加1秒钟 inline void add_a_minute(); //增加1分钟 inline void add_an_hour(); //增加1小时 void add_seconds(int); //增加n秒钟 void add_minutes(int); //增加n分钟 void add_hours(int); //增加n小时 private: bool is_time(int, int, int); int hour; int minute; int sec; }; int main( ) { Time t1; t1.set_time( ); t1.show_time( ); t1.add_a_sec(); //增加1秒钟 cout<<"增加一秒后的时间为:"; t1.show_time( ); t1.add_a_minute(); //增加1分钟 cout<<"增加一分钟后的时间为:"; t1.show_time( ); t1.add_an_hour(); //增加1小时 cout<<"增加一小时后的时间为:"; t1.show_time( ); cout<<"您想增加多少秒钟?请输入时间:"; cin>>sec2; t1.add_seconds(sec2); //增加n秒钟 cout<<"增加"<<sec2<<"秒后的时间为:"; t1.show_time( ); cout<<"您想增加多少分钟?请输入时间:"; cin>>minute2; t1.add_minutes(minute2); //增加n分钟 cout<<"增加"<<minute2<<"分钟后的时间为:"; t1.show_time( ); cout<<"您想增加多少小时?请输入时间:"; cin>>hour2; t1.add_hours(hour2); //增加n小时 cout<<"增加"<<hour2<<"小时后的时间为:"; t1.show_time( ); system("PAUSE"); return 0; } void Time::set_time( ) { char c1,c2; cout<<"请输入时间(格式hh:mm:ss)"; while(1) { cin>>hour>>c1>>minute>>c2>>sec; hour1=hour; minute1=minute; sec1=sec; if(c1!=':'||c2!=':') cout<<"格式不正确,请重新输入"<<endl; else if (!is_time(hour,minute,sec)) cout<<"时间非法,请重新输入"<<endl; else break; } } void Time::show_time( ) { cout<<hour<<":"<<minute<<":"<<sec<<endl; } bool Time::is_time(int h,int m, int s) { if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60) return false; return true; } inline void Time::add_a_sec() //增加1秒钟 { add_seconds(1); return; } inline void Time::add_a_minute() //增加1分钟 { add_minutes(1); return; } inline void Time::add_an_hour() //增加1小时 { add_hours(1); return; } void Time::add_seconds(int sec2)//增加n秒钟 { sec=sec1; minute=minute1; hour=hour1; sec=sec+sec2; if(sec>60) { sec=sec%60; minute=minute+sec/60; } if(minute>60) { minute=minute%60; hour=hour+minute/60; } //应该自动让分增加(sec/60),秒变成(sec+增量)%60就行了。至于分增加后,会不会引起时的变化,同法处理 if(hour>23) { hour=hour-23-1; } return; } void Time::add_minutes(int minute2) //增加n分钟 { sec=sec1; minute=minute1; hour=hour1; minute=minute+minute2; if(minute>60) { minute=minute%60; hour=hour+minute/60; } //应该自动让分增加(sec/60),秒变成(sec+增量)%60就行了。至于分增加后,会不会引起时的变化,同法处理 if(hour>23) { hour=hour-23-1; } return; } void Time::add_hours(int hour2) //增加n小时 { hour=hour1; sec=sec1; minute=minute1; hour=hour+hour2; if(hour>23) { hour=hour-23-1; } return; }运行结果:
经验积累:
1.使用函数调用,可大大简化程序;
举例:
inline void Time::add_a_sec() //增加1秒钟 { add_seconds(1); return; }上述函数调用了add_seconds(int)不用再重复写代码了。^_^
相关文章推荐
- 第三周上机任务--任务3--学会定义和使用类和对象--并按要求增加类的功能(改进版)
- 第三周上机任务--任务3--学会定义和使用类和对象--并按要求增加类的功能
- C++第三周任务3请在原类基础上,增加成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。
- (第三周任务三)安要求增加类的功能
- 第三周上机任务--任务四--编写基于对象的程序--求三个长方柱的体积
- 第五周上机任务--任务二--在main()函数中自行定义对象,调用各成员函数,完成基本的测试
- 第十四周上机实践项目一任务三--定义数组按要求输出
- 匿名内部类使用了一个在其外部定义的对象,为什么编译器会要求其参数引用是final呢
- 第四周上机--任务四--设计一个工资类(Salary)--完成各个功能--文件中读入数据--学会ASCII文件的操作
- 第七周上机任务三--实现一个复数类--通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型
- 使用管道流和多线程完成以下任务要求: 一个线程对象t1 会从控制台中不停的读取信息,读到之后把数据交给管道输出流,把数据写到管道里面 ,另一个线程对象t2 不停的使用管道输入流从管道
- 第五周任务1:设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化
- 【任务1】设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化
- 第三周上机任务--任务四--编写基于对象的程序--求三个长方柱的体积(改进版)
- 五周任务一:设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化
- 66.6 设计一个雇员类 employee,存储雇员的姓名、编号和生日等信息,要求该类使用 上一题设计的日期类作为成员对象。雇员类的使用如下: //定义一个雇员,其雇员号为 10,生日为 1970 年
- 在TableLayout中使用TableRow对象来定义多行
- 如何多方面使用CAD中的插入对象功能?
- 使用js在页面增加倒计时功能和显示年月日星期
- JS---一步一步学会如何使用构造函数创建对象