第四周上機任務項目4-正整數類

來源:互聯網
上載者:User
01./*      02.* 程式的著作權和版本聲明部分      03.* Copyright (c)2013, 煙台大學電腦學院學生      04.* All rightsreserved.      05.* 檔案名稱:NaturalNumber .cpp                                 06.* 作    者:趙冠哲                                  07.* 完成日期:2013年3月22日      08.* 版本號碼: v1.0            09.* 輸入描述:      10.* 問題描述:    11.*/  #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,否則返回falsevoid printFactor();  //輸出資料成員n的所有因子,包括1和n自身bool isPerfect(); //判斷資料成員n是否為完全數。若一個正整數n的所有小於n的因子之和等於n, 則稱n為完全數, 如6=1+2+3是完全數。bool isReverse();//判斷形式參數x是否為資料成員n的逆向數(例321是123的逆向數)。bool isDaffodil(); //判斷形式參數x是否是水仙花數。水仙花數的各位元字立方和等於該數,如153=1*1*1+5*5*5+3*3*3//void printDaffodils(void); //顯示所有大於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();nn.setValue (6); cout<<nn.getValue()<<(nn.isPerfect()?"是":"不是")<<"完數!" <<endl;nn.setValue (123); cout<<nn.getValue()<<(nn.isReverse()?"是該數的":"不是該數的")<<"逆向數!" <<endl;nn.setValue (153); cout<<nn.getValue()<<(nn.isDaffodil()?"是":"不是")<<"水仙花數!" <<endl; nn.setValue (1000);cout<<nn.getValue()<<"以內水仙花數有:";nn.printDaffodils();//nn.isPerfect(6);//cout<<nn.getValue();//隨著成員函數的實現,增加代碼以完成相關的測試。注意判斷類的成員函數需要測試是或否兩種情況……}//請在下面定義類中的各個成員函數void NaturalNumber::setValue(int x){if((x%1==0)&&(x>0)){cout<<x<<"是正整數!"<<endl;n=x;}else{cout<<x<<"不是正整數!"<<endl;}}int NaturalNumber::getValue(){return n;}bool  NaturalNumber::isPrime(){int m;for(m=2;m<n;m++){     if(n%m==0)return false; else  return true;}}void NaturalNumber::printFactor(){int i;for(i=1;i<n;i++){if((n%i)==0)cout<<i<<" ";}}bool NaturalNumber::isPerfect(){int i,s;s=0;for(i=1;i<n;i++){if((n%i)==0)s=s+i;}if(s==n)return true;else return false;}bool NaturalNumber::isReverse(){int a,b,c,d;cout<<"請輸入一個三位元:";cin>>a;b=a/100;c=a/10-b*10;d=a%10;if((d*100+c*10+b)==n)return true;else return false;}bool NaturalNumber::isDaffodil(){int b,c,d;b=n/100;c=n/10-b*10;d=n%10;if(n==b*b*b+c*c*c+d*d*d)return true;else return false;}void NaturalNumber::printDaffodils(){int a,b,c,d;for(a=2;a<n;a++){b=a/100;c=a/10-b*10;d=a%10;if(a==b*b*b+c*c*c+d*d*d)cout<<a<<" ";}cout<<endl;return ;}

運行結果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.