c++第三次实验-1
来源:互联网 发布:mpp文件打开软件 编辑:程序博客网 时间:2024/05/18 16:36
一、问题及代码
/** 文件名称: 静态成员应用* 作 者:* 完成日期: 2016 年 4 月 11 日* 版 本 号:v1.0* 对任务及求解方法的描述部分:略* 输入描述: 无* 问题描述: 设计含有静态数据成员和成员函数的Time类。 静态数据成员是类中所有的对象共有的数据, 在下面的设计中,时钟要采用12小时制,还是要使用24小时制 ,显示时,不足两位的数字前是否前导0,都是“影响全局”的设置,适合作为类中的静态数据成员* 程序输出: 略* 问题分析: 无* 算法设计: 无*/#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 s); //增加n秒钟 void add_minutes(int m); //增加n分钟 void add_hours(int h); //增加n小时 static void change24(); //改变静态成员is_24,在12和24时制之间转换 static void changefrom0(); //改变静态成员from0,切换是否前导0 private: 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;};bool Time::is_24=1;bool Time::from0=1;Time::Time(int h,int m,int s){ hour=h; minute=m; sec=s;}void Time::add_seconds(int s){ sec+=s; if(sec>=60) { minute+=sec/60; sec%=60; if(minute>=60) { hour+=minute/60; minute%=60; if(hour>=24) { hour=hour%24; } } }}void Time::add_minutes(int m){ minute+=m; if(minute>=60) { hour+=minute/60; minute%=60; if(hour>=24) { hour=hour%24; } }}void Time::add_hours(int h){ hour+=h; if(hour>=24) { hour=hour%24; }}void Time::change24(){ is_24=!is_24;}void Time::changefrom0(){ from0=!from0;}void Time::show_time(){ int h=hour; if(is_24) { if(from0) { if(hour<10) { cout<<"0"; } cout<<hour<<":"; if(minute<10) { cout<<"0"; } cout<<minute<<":"; if(sec<10) { cout<<"0"; } cout<<sec; cout<<endl; } } if(!is_24) { if(from0) { if(hour>12) { hour-=12; } if(hour<10) { cout<<"0"; } cout<<hour<<":"; if(minute<10) { cout<<"0"; } cout<<minute<<":"; if(sec<10) { cout<<"0"; } cout<<sec; } cout<<endl; } if(is_24) { if(!from0) { cout<<hour<<":"<<minute<<":"<<sec<<endl; } } if(!is_24) { if(!from0) { if(hour>12) { hour-=12; } cout<<hour<<":"<<minute<<":"<<sec<<endl; } } if(!is_24) { if(h<12) cout<<"am"; else cout<<"pm"; }}int main(){ Time t1(23,14,25); Time t2(8,45,6); cout<<"24小时制,不前导:"<<endl; t1.changefrom0(); t1.show_time(); t2.show_time(); cout<<"十小时后切换是否前导:"<<endl; t1.changefrom0(); t1.add_hours(10); t2.add_hours(10); t1.show_time(); t2.show_time(); cout<<"换一种制式:"<<endl; t1.change24(); t1.show_time(); cout<<endl; t2.show_time(); return 0;}
二、运行结果:
三、心得体会:
本次的实验中懂得了静态变量的使用方法,还懂得了bool型变量的初定义,还使我
有了一些新的编程感受,收获很大。
四、知识点总结:
要充分理解静态变量的使用及本质,静态变量是 “一改全改”,要注意。
0 0
- C语言第三次上机实验
- 第三次C程序设计实验报告
- 第三次C语言上机实验
- C++第三次实验.1
- c++第三次实验-1
- c++第三次实验-1
- c++第三次实验-1
- 第三次上机实验报告1
- C++第三次上机实验-1
- c语言程序设计第三次上机实验报告
- 第三次C语言上机实验报告
- c语言程序设计第三次上机实验报告
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- web开发中表单的验证问题
- 【静下心学习Unity】学习笔记 (三)Unity Physics - Hinge Joint(铰链关节) 实现门的功能
- popupwindow的学习
- Maven学习记录(一)--IDEA下环境配置
- SQL中的limit
- c++第三次实验-1
- 关于this
- 【珍藏】linux 同步IO: sync、fsync与fdatasync
- c++作业03
- struts2标签又显示不出来
- 建立一个学生类及其相应对象
- Linux Shell介绍
- NodeJS入门--环境搭建 IntelliJ IDEA
- C 【进制查表法 求取给定十进制数的其他进制形式数值】