第七周实验报告(任务一)【静态成员函数的使用】
2012-04-03 13:16
411 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved
* 文件名称:静态成员函数
* 作 者: 张培培
* 完成日期:2012 年 04月 03日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
*问题描述: 静态成员函数的使用
* 程序输出:
* 程序头部的注释结束*/
上机感言:此题的关键是在show_time函数上,昨天晚上听了老贺的讲解后才知道自己的程序是多么的复杂,七八十行的show_time函数就让老师用20多行的代码给写 出来了,姜还是老的辣啊,呵呵,又学了一招。。。。一个好的程序员,要看代码的行数,要讲究效率,在写程序的时候,要考虑简单的方法,避免程序冗长。
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved
* 文件名称:静态成员函数
* 作 者: 张培培
* 完成日期:2012 年 04月 03日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
*问题描述: 静态成员函数的使用
* 程序输出:
* 程序头部的注释结束*/
#include <iostream> using namespace std; class Time { public: Time(int=0 ,int=0 ,int=0 ); void show_time( ); //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm void add_seconds(int); //增加n秒钟 void add_minutes(int); //增加n分钟 void add_hours(int); //增加n小时 static void change24(); //改变静态成员is_24,在和时制之间转换 static void changefrom0(); //改变静态成员from0,切换是否前导 private: static bool is_24; //为true时,小时制,如:23:5;为flase,小时制,显示为:23:5 pm static bool from0; //为true时,前导,:23:5显示为:23:05 int hour; int minute; int sec; }; //构造函数 Time::Time(int h,int m,int s):hour(h),minute(m),sec(s){} //静态成员函数的初始化 bool Time::is_24=true; bool Time::from0=false; //各个成员成员函数的定义 //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm void Time::show_time( ) { //显示时 int h=(is_24)?hour:(hour%12); if(from0&&h<10) cout<<'0'; cout<<h<<":"; //显示分 if(from0&&minute<10) cout<<'0'; cout<<minute<<":"; //显示秒 if(from0&&sec<10) cout<<'0'; cout<<sec; //确定显示am、pm if(!is_24) if(hour>12) cout<<"pm"; else cout<<"am"; cout<<endl; } //增加n秒钟 void Time::add_seconds(int n) { sec+=n; if(sec>59) { add_minutes(sec/60); sec%=60; } } //增加n分钟 void Time::add_minutes(int n) { minute+=n; if(minute>59) { add_hours(minute/60); minute%=60; } } //增加n小时 void Time::add_hours(int n) { hour+=n; if(hour>23) hour%=24; } //改变静态成员is_24,在和时制之间转换 void Time::change24() { is_24=false; } //改变静态成员from0,切换是否前导 void Time::changefrom0() { from0=true; } int main( ) { Time t1(23,14,25),t2(8,45,6); cout<<"24时制, 不前导0:"<<endl; cout<<"t1是:"; t1.show_time(); cout<<"t2是:"; t2.show_time(); t1.add_hours(10); t2.add_hours(10); Time::changefrom0(); //注意此处调用静态成员 cout<<"10小时后, 切换是否前导:"<<endl; cout<<"t1是:"; t1.show_time(); cout<<"t2是:"; t2.show_time(); t1.change24(); cout<<"换一种制式:"<<endl; cout<<"t1是:"; t1.show_time(); cout<<"t2是:"; t2.show_time(); system("pause"); return 0; }
上机感言:此题的关键是在show_time函数上,昨天晚上听了老贺的讲解后才知道自己的程序是多么的复杂,七八十行的show_time函数就让老师用20多行的代码给写 出来了,姜还是老的辣啊,呵呵,又学了一招。。。。一个好的程序员,要看代码的行数,要讲究效率,在写程序的时候,要考虑简单的方法,避免程序冗长。
相关文章推荐
- 第七周实验报告(一)含有静态数据成员和成员函数的TIME类
- 第七周实验报告(一)
- 第七周实验报告(任务三)【模板类】
- 第七周实验报告任务3
- 第七周实验报告3
- 第七周实验报告1
- 第七周实验报告(3)
- 第七周实验报告(三)设计complex模板
- 《第七周实验报告任务三》
- 第七周实验报告1
- 第七周实验报告1
- 第七周实验报告(任务二)【求两点之间的距离】
- 第七周实验报告(二)
- 第七周实验报告(一)
- 第七周实验报告(一)
- 第七周实验报告1
- 《第七周实验报告3-1》---通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型
- 第七周实验报告2
- 第七周实验报告(任务1)
- 第七周实验报告2