第五次上机实验

来源:互联网 发布:淘宝口红店铺推荐知乎 编辑:程序博客网 时间:2024/06/02 03:07
  1.  文件名称:c++第5次上机实验  
  2. * 作者:林靖哲  
  3. * 完成日期: 2017.4.25  
  4. * 版 本 号:VC++ 6.0   
  5. * 对任务及求解方法的描述部分: 
  6. * 输入描述:  
  7. * 问题描述:
    设计一个“正整数”类,并通过一系列的成员函数对其性质进行做出判断或列出相关联的数值。下面给出类声明,请实现各成员函数。另外,模仿已经给出的main()函数,完成你所设计的各个成员函数的测试。 
  8. 算法设计:   
      #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 main(void)  {      NaturalNumber nn;   //定义类的一个实例(对象)      nn.setValue (6);      cout<<nn.getValue()<<(nn.isPrime()?"是":"不是")<<"素数" <<endl;      nn.setValue (37);       cout<<nn.getValue()<<(nn.isPrime()?"是":"不是")<<"素数" <<endl;      nn.setValue (84);       cout<<nn.getValue()<<"的因子有:";      nn.printFactor();      cout << endl;      nn.setValue(6);      cout << nn.getValue() << (nn.isPerfect()?"是":"不是") << "完全数" << endl;       nn.setValue(8);      cout << nn.getValue() << (nn.isPerfect()?"是":"不是") << "完全数" << endl;      nn.setValue(123);      cout << "321" << (nn.isReverse(321)?"是":"不是") << nn.getValue() << "的逆向数" << endl;      nn.setValue(123);      cout << "123" << (nn.isReverse(123)?"是":"不是") << nn.getValue() << "的逆向数" << endl;      nn.setValue(153);      cout << nn.getValue() << (nn.isDaffodil(153)?"是":"不是") << "水仙花数" << endl;      nn.setValue(30);      cout << nn.getValue() << (nn.isDaffodil(30)?"是":"不是") << "水仙花数" << endl;      nn.setValue(200);      cout << nn.getValue() <<" 以内的水仙花数有:";      nn.printDaffodils();      system("PAUSE");     }    //请在下面定义类中的各个成员函数  void NaturalNumber::setValue(int x)//判断是否为正整数  {      if(x > 0)      {          n = x;      }      return ;  }  int NaturalNumber::getValue()//得到该整数的值  {      return n;  }  bool NaturalNumber::isPrime()//判断是不是素数  {      bool prime = true;      int i = 2 ;      while(i < n)      {          if(n % i == 0)          {              prime = false;              break;          }          ++i;      }      return prime;  }  void NaturalNumber::printFactor()//输出所有因子  {      int i;      for(i = 1; i <= n; ++i)      {          if(n % i == 0)          {              cout << i << '\t' ;          }      }      return;  }  bool NaturalNumber::isPerfect()//判断是否是完全数  {      bool perfect = false;      int i,s = 0;      for(i = 1;i < n; ++i)      {          if(n % i == 0)          {              s = s + i;          }      }      if(s == n)      {          perfect = true;      }      return perfect;  }  bool NaturalNumber::isReverse(int x)//判断是否是逆向数  {      bool reverse = false;      int s = 0;      while(x > 0)//转换成其逆向数      {          s = s * 10 + x % 10;          x = x / 10;      }      if(s == n)      {          reverse = true;      }      return reverse;  }  bool NaturalNumber::isDaffodil(int x)//判断是否是水仙花数  {      bool daffodil = false;      int s = 0, d, p = x;      while(x > 0)      {          d = x % 10;          s = s + d * d * d;          x = x / 10;      }      if(p == s)      {          daffodil = true;      }      return daffodil;  }  void NaturalNumber::printDaffodils()//输出水仙花数  {      int i;      for(i = 2; i < n; ++i)      {          if(isDaffodil(i))          {              cout << i << " " ;          }      }      cout << endl;      return;
      }

    1. 0 0
    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 单位不给开离职证明怎么办 电梯年检报告丢了怎么办 小学生养成夜训交怎么办? 遇到自私多疑的老公该怎么办 老年人吵架非说打她了装病怎么办 高三厌学家长该怎么办 考研团员档案丢了怎么办 学生的档案丢了怎么办 大四团员证丢了怎么办 2岁宝宝吸收不好怎么办 孩子逆反心理特强沟通不了怎么办 一年级孩子有逆反心里怎么办 如果一个学生会部门没人留怎么办 如果学生会部门很少人报名怎么办 职场说错话了我该怎么办? 中考通知书收到两份怎么办 高三学生英语差怎么办 论文查重百分之0怎么办 微信红包发错人了怎么办 文学社在社团活动日可以怎么办 小孩玩游戏瞎花钱怎么办 党员不配合纪检调查工作怎么办 新同事老问问题怎么办 白色衣服染红色了怎么办 左腿膝盖内侧疼怎么办 差二本线几分怎么办 吃错东西了想吐怎么办 玩游戏扣的话费怎么办 转笔实在是不会怎么办 滑板l轴承沾水了怎么办 暗影格斗3闪退怎么办 暗影格斗3文档被删怎么办 dnf手残党偷学技能学不了怎么办 打篮球没热身膝盖酸痛是怎么办 无线路由器lan口少怎么办? 电脑ip设置乱了怎么办 监控拍我我偷钱怎么办 网吧上网密码忘记了怎么办 比熊犬晚上叫怎么办 刚买的狗一直叫怎么办 酒驾罚款2年没交怎么办