第七周—1.静态成员应用
来源:互联网 发布:装饰效果图软件 编辑:程序博客网 时间:2024/05/16 14:11
// 时间类.cpp : 定义控制台应用程序的入口点。///** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: fun.cpp* 作 者:谷志恒* 完成日期:2013 年4月15'/日* 版本号: v1.0* 对任务及求解方法的描述部分:略* 输入描述:略* 问题描述:略* 程序输出:如下*/#include "stdafx.h"#include <iostream>#include <string>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,在12 和24 时制之间转换 static void changefrom0(); //改变静态成员from0,切换是否前导0private: static bool is_24; //为true 时,24 小时制,如20:23:5;为flase,12 小时制,显示为8:23:5 pm static bool from0; //为true 时,前导0,8:23:5 显示为08:23:05 int hour; int minute; int sec;};//下面写出静态成员的初始化及各成员函数的定义……Time::Time(int h,int m,int s)//构造函数的定义{ hour=h; minute=m; sec=s;}void Time::show_time()//根据is_24 和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm{int h;if(is_24)h=hour; else h=hour%12; //三元运算int h=(is_24)?hour:hour%12;if(h<10&&from0)cout<<"0";cout<<h<<":";if(minute<10&&from0)cout<<"0";cout<<minute<<":";if(sec<10&&from0)cout<<"0";cout<<sec;if(!is_24) //三元运算if(!is_24) cout<<(hour>12)? " pm":" am"; {if (hour>12) cout<<" pm"; else cout<<" am"; }cout<<endl;}void Time::add_seconds(int n) //增加n 秒钟{ sec+=n; if (sec>59) { add_minutes(sec/60); sec%=60; } }void Time::add_minutes(int n)//增加n 分钟{ minute+=n; if (minute>59) { add_hours(minute/60); minute%=60; } }inline void Time::add_hours(int n)//增加n 小时{ hour+=n; if (hour>23) hour%=24; }void Time::change24() //改变静态成员is_24,在12 和24 时制之间转换{ is_24=!is_24;}void Time::changefrom0() //改变静态成员from0,切换是否前导0{from0=!from0;}bool Time::is_24=true;//为true 时,24 小时制,如20:23:5;为flase,12 小时制,显示为8:23:5 pmbool Time::from0=false;int main( ) //运行结果如图所示{Time t1(23,14,25),t2(8,45,6);cout<<"24时制,不前导"<<endl;cout<<" t1是:";t1.show_time();cout<<" t2是:";t2.show_time();t1.add_hours(10);t2.add_hours(10);Time::changefrom0();cout<<"10小时后,前导0:"<<endl;cout<<" t1是:";t1.show_time();cout<<" t2是:";t2.show_time();t1.add_minutes(5);t2.add_minutes(5);Time::changefrom0();cout<<"5分钟后,不前导0:"<<endl;cout<<" t1是:";t1.show_time();cout<<" t2是:";t2.show_time();t1.add_seconds(30);t2.add_seconds(30);Time::changefrom0();cout<<"30秒后,前导0:"<<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();return 0;}
运行程序:
心得体会:在切换是否前导0的地方犯晕了~~前导0每次都是交替切换,开始不前导0,调用Time::changefrom0();然后前导0,再次调用就变为不前导0,下一次又变为前导0,会出现错误主要还是“改变静态成员from0,切换是否前导0”没有弄明白!!
- 第七周—1.静态成员应用
- 第七周项目一——静态成员应用
- 第七周项目1:静态成员应用
- c++第七周任务-静态成员应用
- 第七周 项目一:静态成员应用
- 第七周 项目一 静态成员应用
- 第七周--项目1-静态成员应用
- 第七周项目1-静态成员应用
- 第七周1静态成员应用
- 第七周上机任务 静态成员应用
- 第七周C++上级报告(静态成员应用)
- 第七周上机任务项目1-静态成员应用
- 第七周项目一----静态成员的应用
- 第七周任务一:静态成员
- 第七周项目一:静态成员
- 第七周 静态数据成员的初始化
- 2013第七周上机任务【项目1-静态成员应用时间类】
- 第六周——静态成员应用
- U-boot 编译学习---make TQ2440_config命令执行过程---在 mkconfig 中
- Ubuntu下ssh服务器文件操作命令
- 程序员的自我修养——库与链接的原理
- 自己看的(没什么技术含量)
- 汇编学习笔记--数据处理的两个基本问题
- 第七周—1.静态成员应用
- it巨头的组织架构图
- 整型 & unsigned vs signed & printf
- HDU 1999 不可摸数
- ubuntu上adb连接不上问题
- 关于使用testng的retry问题
- 用JOptionPane类是实现一个简单的学生成绩管理
- free()
- 简单的贪吃蛇的另一种做法