C++实验2-1

来源:互联网 发布:mac磁盘清理软件排名 编辑:程序博客网 时间:2024/05/18 03:08

一、问题及代码

  1. /*  
  2. * 文件名称: 1.cpp 
  3. * 作    者: 彭宏锐 
  4. * 完成日期: 2016 年   4 月  4  日  
  5. * 版 本 号: v1.0  
  6. * 对任务及求解方法的描述部分: 
  7. * 输入描述: 无   
  8. * 问题描述: 阅读、运行程序后,按要求增加类的功能
  9. * 问题分析: 略 
  10. * 算法设计: 略 
#include <iostream>using namespace std;class Time{public:void set_time( );   void show_time( );void add_a_sec()  //增加1秒钟{sec=sec+1;if(sec==60)minute=minute+1;if(minute==60)hour=hour+1;if(hour==24)hour=0;}void add_a_minute()//增加1分钟{minute=minute+1;if(minute==60)hour=hour+1;if(hour==24)hour=0;}void add_an_hour()//增加1小时{hour=hour+1;if(hour==24)hour=0;}voidadd_seconds(int a); //增加n秒钟void add_minutes(int b) ;//增加n分钟voidadd_hours(int c) ;//增加n小时private: bool is_time(int, int, int);   //这个成员函数设置为私有的,是合适的,请品味int hour;int minute;int sec;};void Time::set_time( ) {char c1,c2;cout<<"请输入时间(格式hh:mm:ss)";while(1){cin>>hour>>c1>>minute>>c2>>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;}void Time::add_seconds(int a){   int k,l;      k=a/60;l=a%60;sec=sec+l;minute=minute+k;if(sec>=60)minute=minute+1;if(minute>=60)hour=hour+1;if(hour>=24)hour=0;}void Time::add_minutes(int b){int d,q;      d=b/60;q=b%60;minute=minute+q;hour=hour+d;if(minute>=60)hour=hour+1;if(hour>=24)hour=hour-24;}void Time::add_hours(int c){int v;      v=c%24;hour=hour+v;if(hour>=24)hour=hour-24;}int main( ){Time t1;  t1.set_time( );   t1.show_time( );t1.add_a_sec();t1.show_time( );t1.add_a_minute();t1.show_time( );t1.add_an_hour();t1.show_time( );t1.add_seconds(98);t1.show_time( );t1.add_minutes(97) ;t1.show_time( );t1.add_hours(34) ;t1.show_time();return 0;}
二、运行结果


三、心得体会

操作不够熟练,较多地方不会,应加强练习。

四、知识点总结

使用时间要合理,注意提示的几点。


0 0
原创粉丝点击