c++上机作业

来源:互联网 发布:安卓网络抓包工具 编辑:程序博客网 时间:2024/05/01 22:56

(1)时钟类:

#include <iostream>    using namespace std;    class Time    {    public:        void set_time( );           void show_time( );      int add_a_sec()      {          return(sec=sec+1);      }      int add_a_minute()       {          return(minute=minute+1);      }      int add_an_hour()       {          return(hour=hour+1);      }      int add_seconds(int n);      int add_minutes(int n);      int add_hours(int n);      void tiao();  private:         bool is_time(int, int, int);   //这个成员函数设置为私有的,是合适的,请品味        int hour;        int minute;        int sec;    };  int Time::add_seconds(int n)  {  return(sec=sec+n);  }  int Time::add_minutes(int n)  {      return(minute=minute+n);  }  int Time::add_hours(int n)  {      return(hour=hour+n);  }  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::tiao()  {      if(sec>=60)          sec=0;      if(minute>=60)          minute=0;      if(hour>=60)          hour=0;  }  int main( )    {        Time t1;          t1.set_time( );           t1.show_time( );      t1.add_a_minute();      t1.show_time();      t1.add_hours(5);      t1.show_time();      return 0;    } 

(2)正整数类:

/* 文件名称:正整数类.cpp 作者    :吕松林日期    :2016.4.1平台    :visual c++ 6.0     项目名称:正整数类 问题详情:略*/  #include<iostream>    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)    {           n=x;        while(x<=0)        {            cout<<"n不是正整数,请重新输入:"<<endl;            cin>>n;            if(n>0) break;        }    }   int NaturalNumber::getValue()  {      return n;  }  bool NaturalNumber::isPrime()  {      int i;      for(i=2;i<n;i++)          if(n%i==0)              break;      if(i==n) return true;      else     return false;  }  void NaturalNumber::printFactor()  {      int i=1;      while((n%i)==0)      {          cout<<i<<" ";          i++;      }      cout<<endl;  }  bool NaturalNumber::isPerfect()    {        int i,s=0;        for(i=1;i<n;i++)            if(n%i==0)                s+=i;        if(n==s)return true;        return false;    }     bool NaturalNumber::isReverse(int x)  {        cout<<x;        int a[10],i,k,j;        for(i=0;n!=0;i++)        {            a[i]=n%10;            n/=10;        }        k=i-1;        for(i=0;i<=k;i++)        {            for(j=0;j<k-i;j++)            {                a[i]*=10;            }            n+=a[i];        }        if(n==x)return true;        return false;    }    bool NaturalNumber::isDaffodil(int x)   {      int m=x;        cout<<"x="<<x;        int a[10],s=0,i,k;        for(i=0;x!=0;i++)        {            a[i]=x%10;            x/=10;        }        k=i;        for(i=0;i<k;i++)            s+=a[i]*a[i]*a[i];        if(m==s)return true;        return false;    }    void NaturalNumber::printDaffodils();    {        int j;        for(j=2;j<n;j++)        {        int m;        m=j;            int a[10],s=0,i,k;            for(i=0;j!=0;i++)            {                a[i]=j%10;                j/=10;            }            k=i;            for(i=0;i<k;i++)                s+=a[i]*a[i]*a[i];            if(m==s)             cout<<m<<" ";        j=m;        }        cout<<endl;    }    

(3)分数类:

#include<iostream>  using namespace std;  class CFraction    {    private:        int nume;  // 分子        int deno;  // 分母    public:      CFraction(int nu=0,int de=1)      {          nume=nu;deno=de;      }      void set(int nu=0,int de=1)      {      nume=nu;deno=de;      }        void input();               //按照"nu/de"的格式,如"5/2"的形式输入        void simplify();            //化简(使分子分母没有公因子)        void amplify(int n);        //放大n倍,如2/3放大5倍为10/3        void output(int style=0)   //输出:以8/6为例,style为0时,原样输出8/6;         {          if(style==0)              cout<<"原样输出:"<<nume<<"/"<<deno<<endl;          else if(style==1)          {cout<<"输出化简后的分数: ";simplify();}          else if(style==2)          {              int a,b;              if(nume>deno)              {                  a=nume-deno;                  while(1)                  {                      if(a>deno)                          a=a-deno;                      else if(a<deno)                          break;                  }              }              b=(nume-a)/deno;              cout<<"输出真分数形式: "<<b<<"("<<a<<"/"<<deno<<")"<<endl;          }          else if(style==3)          {              double c;              c=double(nume)/double(deno);              cout<<"输出小数形式: "<<c<<endl;          }      }                           };  void CFraction::input()  {      char a;      cout<<"请输入一个分数(格式a/b): "<<endl;      while(1)      {          cin>>nume>>a>>deno;          if(a!='/')              cout<<"输入格式不正确,请重新输入"<<endl;          else              break;      }  }  void CFraction::simplify()  {      int a;      for(a=2;a<=nume;a++)      {          if(nume%a==0)          {              if(deno%a==0)              {nume=nume/a;deno=deno/a;}          }      }      cout<<nume<<"/"<<deno<<endl;  }  void CFraction::amplify(int n)  {      nume=nume*n;  }  
(4)学生成绩类:

#include<iostream>    #include<string>    using namespace std;    class Stu    {    public:      void setStudent(string ,float ,float );      void show();      float average();      void setName(string );      string getName();  private:        string name;    //学生姓名        float chinese;  //语文成绩        float math;     //数学成绩  };    void Stu::setStudent(string n,float c,float m)  {      name=n;      chinese=c;      math=m;  }  void Stu::show()  {      cout<<"Name: "<<name<<endl;      cout<<"Score: "<<chinese<<"  "<<math<<endl;      cout<<"average: "<<(chinese+math)/2<<"  Sum: "<<chinese+math<<endl;      cout<<endl;  }  float Stu::average()  {   float average;      average=(math+chinese)/2;      return average;  }  void Stu::setName(string n)  {      name=n;  }  string Stu::getName()  {      return name;  }  




0 0
原创粉丝点击