程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 項目4-正整數類

項目4-正整數類

編輯:C++入門知識

[cpp]  /*   * Copyright (c) 2013, 煙台大學計算機學院                       * All rights reserved.                       * 文件名稱:test.cpp                       * 作者:樊露露                      * 完成日期:2013 年 3 月 23 日                       * 版本號:v1.0                     *                       * 輸入描述:無                       * 問題描述:                    * 程序輸出:  * 問題分析:                      * 算法設計:略                       */            #include<iostream>   #include<Cmath>   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的所有因子,包括和n自身       bool isPerfect(); //判斷數據成員n是否為完全數。若一個正整數n的所有小於n的因子之和等於n, 則稱n為完全數, 如=1+2+3是完全數。       bool isReverse(int x);//判斷形式參數x是否為數據成員n的逆向數(例是的逆向數)。       bool isDaffodil(int x); //判斷形式參數x是否是水仙花數。水仙花數的各位數字立方和等於該數,如=1*1*1+5*5*5+3*3*3       void printDaffodils(); //顯示所有大於,且小於數據成員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();          nn.setValue (29);        cout<<nn.getValue()<<"的因子有:";       nn.printFactor();          nn.setValue (6);       cout<<nn.getValue()<<(nn.isPerfect()?"是":"不是")<<"完全數" <<endl;          nn.setValue (37);        cout<<nn.getValue()<<(nn.isPerfect()?"是":"不是")<<"完全數" <<endl;          nn.setValue (1237);        int x=732;       cout<<nn.getValue()<<" 和"<<x<<" "<<(nn.isReverse(x)?"是":"不是")<<"逆向數" <<endl;          cout<<"所有大於,且小於數據成員"<<nn.getValue()<<" 的水仙花數有:";       nn.printDaffodils();               system("PAUSE");   }      //請在下面定義類中的各個成員函數   void NaturalNumber::setValue (int x)//置數據成員n的值,要求判斷是否是正整數   {       n=x;   }      int NaturalNumber::getValue() //返回私有數據成員n的值   {       return n;   }      bool NaturalNumber::isPrime()//判斷數據成員n是否為素數,是返回true,否則返回false   {       bool prime=true;       for(int i=2;i<=sqrt(double(n));i++)       {           if(n%i==0)            {               prime=false;               break;           }       }       return prime;   }      void NaturalNumber::printFactor()  //輸出數據成員n的所有因子,包括和n自身   {       for(int i=1;i<=n;i++)           if(n%i==0)                cout<<i<<' ';       cout<<endl;   }      bool NaturalNumber::isPerfect() //判斷數據成員n是否為完全數。若一個正整數n的所有小於n的因子之和等於n, 則稱n為完全數, 如=1+2+3是完全數。   {       bool perfect=false;       int s=1;       for(int i=2;i<n;i++)           if(n%i==0)                s=s+i;       if(n==s)            perfect=true;       return perfect;   }      bool NaturalNumber::isReverse(int x)//判斷形式參數x是否為數據成員n的逆向數(例是的逆向數)。   {       bool reverse=false;       int s=0;       while(x>0)       {           s=s*10+x%10;           x=x/10;       }       if(n==s)           reverse=true;       return reverse;   }      bool NaturalNumber::isDaffodil(int x) //判斷形式參數x是否是水仙花數。水仙花數的各位數字立方和等於該數,如=1*1*1+5*5*5+3*3*3   {       bool daffodil=false;       int s=0,p=x;       int m;       while(p>0)       {           m=p%10;           s=s+m*m*m;           p=p/10;       }       if(x==s)            daffodil=true;       return daffodil;   }      void NaturalNumber::printDaffodils() //顯示所有大於,且小於數據成員n的水仙花數;   {       for(int i=2;i<n;++i)           if(isDaffodil(i))               cout<<i<<" ";       cout<<endl;       return;   }  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved