c++第二次实验——作业

来源:互联网 发布:淘宝快递最便宜多少钱 编辑:程序博客网 时间:2024/04/28 10:15
第一题
#include <iostream>    02.using namespace std;    03.class Time    04.{    05.public:    06.    void set_time( );       07.    void show_time( );  08.    int add_a_sec()  09.    {  10.        return(sec=sec+1);  11.    }  12.    int add_a_minute()   13.    {  14.        return(minute=minute+1);  15.    }  16.    int add_an_hour()   17.    {  18.        return(hour=hour+1);  19.    }  20.    int add_seconds(int n);  21.    int add_minutes(int n);  22.    int add_hours(int n);  23.    void tiao();  24.private:     25.    bool is_time(int, int, int);   //这个成员函数设置为私有的,是合适的,请品味    26.    int hour;    27.    int minute;    28.    int sec;    29.};  30.int Time::add_seconds(int n)  31.{  32.return(sec=sec+n);  33.}  34.int Time::add_minutes(int n)  35.{  36.    return(minute=minute+n);  37.}  38.int Time::add_hours(int n)  39.{  40.    return(hour=hour+n);  41.}  42.void Time::set_time( )     43.{    44.    char c1,c2;    45.    cout<<"请输入时间(格式hh:mm:ss)";    46.    while(1)    47.    {   cin>>hour>>c1>>minute>>c2>>sec;    48.        if(c1!=':'||c2!=':')    49.            cout<<"格式不正确,请重新输入"<<endl;    50.        else if (!is_time(hour,minute,sec))    51.            cout<<"时间非法,请重新输入"<<endl;    52.        else     53.            break;    54.    }    55.}    56.void Time::show_time( )          57.{    58.    cout<<hour<<":"<<minute<<":"<<sec<<endl;    59.}    60.bool Time::is_time(int h,int m, int s)    61.{    62.    if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)    63.        return false;    64.    return true;    65.}  66.void Time::tiao()  67.{  68.    if(sec>=60)  69.        sec=0;  70.    if(minute>=60)  71.        minute=0;  72.    if(hour>=60)  73.        hour=0;  74.}  75.int main( )    76.{    77.    Time t1;      78.    t1.set_time( );       79.    t1.show_time( );  80.    t1.add_a_minute();  81.    t1.show_time();  82.    t1.add_hours(5);  83.    t1.show_time();  84.    return 0;    85.}   
第二题
#include<iostream>#include<math.h>  using namespace std;  class NaturalNumber  {private:      int n;   public:      void setValue (int x);//置数据成员n的值,要求判断是否是正整数      int getValue();  //返回私有数据成员n的值      bool isPrime();  //判断数据成员n是否为素数,是返回true,否则返回false      void printFactor();  //输出数据成员n的所有因子,包括1和n自身      bool isPerfect(); //判断数据成员n是否为完全数。若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。      bool isReverse(int x);//判断形式参数x是否为数据成员n的逆向数(例321是123的逆向数)。  bool isDaffodil(int x); //判断形式参数x是否是水仙花数。水仙花数的各位数字立方和等于该数,如153=1*1*1+5*5*5+3*3*3  void printDaffodils(); //显示所有大于1,且小于数据成员n的水仙花数;};void NaturalNumber::setValue(int x){if(double(x)==x&&x>0)n=x;elsecout<<"这不是整数,拒绝"<<endl;}int NaturalNumber::getValue(){return n;}bool NaturalNumber::isPrime(){if(n<2) return 0;for(int i=2;i<=sqrt(n);i++)if(n%i==0)return 1;return 0;}void NaturalNumber::printFactor(){for(int j=1;j<=n;j++){if(n%j==0)cout<<j<<" ";else cout<<"";}cout<<endl;}bool NaturalNumber::isPerfect(){int sum=0;for(int i=1;i<n;i++){if(n%i==0)sum=sum+i;else sum=sum+0;}if(sum==n)return 1;else return 0;}bool NaturalNumber::isReverse(int x){int sum=0,d=n;while(d!=0){sum=sum*10+d%10;d=d/10;}if(sum!=x)return 0;else return 1;}bool NaturalNumber::isDaffodil(int x){int d=x,sum=0;while(d){sum+=(d%10)*(d%10)*(d%10);d/=10;}if(sum==x)return 1;else return 0;}void NaturalNumber::printDaffodils(){for(int i=2;i<n;i++)

第四题
#include<iostream>#include<math.h>  using namespace std;  class NaturalNumber  {private:      int n;   public:      void setValue (int x);//置数据成员n的值,要求判断是否是正整数      int getValue();  //返回私有数据成员n的值      bool isPrime();  //判断数据成员n是否为素数,是返回true,否则返回false      void printFactor();  //输出数据成员n的所有因子,包括1和n自身      bool isPerfect(); //判断数据成员n是否为完全数。若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。      bool isReverse(int x);//判断形式参数x是否为数据成员n的逆向数(例321是123的逆向数)。  bool isDaffodil(int x); //判断形式参数x是否是水仙花数。水仙花数的各位数字立方和等于该数,如153=1*1*1+5*5*5+3*3*3  void printDaffodils(); //显示所有大于1,且小于数据成员n的水仙花数;};void NaturalNumber::setValue(int x){if(double(x)==x&&x>0)n=x;elsecout<<"这不是整数,拒绝"<<endl;}int NaturalNumber::getValue(){return n;}bool NaturalNumber::isPrime(){if(n<2) return 0;for(int i=2;i<=sqrt(n);i++)if(n%i==0)return 1;return 0;}void NaturalNumber::printFactor(){for(int j=1;j<=n;j++){if(n%j==0)cout<<j<<" ";else cout<<"";}cout<<endl;}bool NaturalNumber::isPerfect(){int sum=0;for(int i=1;i<n;i++){if(n%i==0)sum=sum+i;else sum=sum+0;}if(sum==n)return 1;else return 0;}bool NaturalNumber::isReverse(int x){int sum=0,d=n;while(d!=0){sum=sum*10+d%10;d=d/10;}if(sum!=x)return 0;else return 1;}bool NaturalNumber::isDaffodil(int x){int d=x,sum=0;while(d){sum+=(d%10)*(d%10)*(d%10);d/=10;}if(sum==x)return 1;else return 0;}void NaturalNumber::printDaffodils(){for(int i=2;i<n;i++)
第五题
#include <iostream>  using namespace std; class CFraction  {  private:      int nume;      int deno;    public:      CFraction(int nu,int de);       void set(int nu=0,int de=1);         void input();                     void simplify();   void amplify(int n);void output(int style=0);};CFraction::CFraction(int nu,int de) {nume=nu;deno=de;}void CFraction::set(int nu,int de){nume=nu;deno=de;}void CFraction::input(){cout<<nume<<"/"<<deno<<"化简后为:";}void CFraction::simplify(){for(int i=2;i<=nume;i++){if(nume%i==0&&deno%i==0){nume/=i;deno/=i;i--;}else cout<<"";}cout<<nume<<"/"<<deno<<endl;}void CFraction::amplify(int n){nume*=n;cout<<"变化和"<<nume<<"/"<<deno<<endl;}void CFraction::output(int style){while(style==1){cout<<nume<<"/"<<deno<<"化简"<<nume<<"/"<<deno<<endl;break;}while(style==2){cout<<nume<<"/"<<deno<<"化简"<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;break;}while(style==3){double n=nume,d=deno;cout<<nume<<"/"<<deno<<"化简"<<n/d<<endl;break;}}



0 0
原创粉丝点击