/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:设计一个“正整数”类,并通过一系列的成员函数对其性质进行做出判断或列出相关联的数值。
* 作 者: 雷恒鑫
* 完成日期: 2012年03 月12日
* 版 本 号:V1.2
* 对任务及求解方法的描述部分
* 输入描述: ...
* 问题描述: ...
* 程序输出: ...
*程序头部的注释结束*/
main.cpp
#include<iostream>
#include"NaturalNumber.h"
using namespace std;
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 (9);
cout<<nn.getValue()<<(nn.isPerfect()?"是":"不是")<<"完数" <<endl;
nn.setValue (321);
cout<<"123"<<(nn.isReverse(123)?"是":"不是")<<nn.getValue()<<"逆向数" <<endl;
nn.setValue (321);
cout<<"223"<<(nn.isReverse(223)?"是":"不是")<<nn.getValue()<<"的逆向数" <<endl;
nn.setValue (153);
cout<<"153"<<(nn.isDaffodil(153)?"是":"不是")<<"水仙花数" <<endl;
nn.setValue (456);
cout<<"456"<<(nn.isDaffodil(456)?"是":"不是")<<"水仙花数" <<endl;
nn.setValue (999);
nn.printDaffodils();
system("PAUSE");
}
NaturalNumber.cpp
#include<iostream>
#include"NaturalNumber.h"
void NaturalNumber::setValue (int x)//置数据成员n 的值,要求判断是否是正整数
{
n=x;
if(n>0)
{
cout<<n<<"是正整数。";
}
else
{
cout<<n<<"不是正整数。";
}
return;
}
int NaturalNumber::getValue() //返回私有数据成员n 的值
{
return n;
}
bool NaturalNumber::isPrime() //判断数据成员n 是否为素数,是返回true,否则返回false
{
int t=0;
if(n<=1)
return false;
for(int i=2;i<n;++i)
{
t=n%2;
if(t==0)
return false;
}
return true;
}
void NaturalNumber::printFactor() //输出数据成员n 的所有因子,包括1 和n 自身
{
int t;
for(int i=1;i<n;++i)
{
t=n%i;
if(t==0)
cout<<i<<" ";
}
cout<<endl;
return;
}
bool NaturalNumber::isPerfect() //判断数据成员n 是否为完全数。若一个正整数n 的所有小于n 的因子之和等于n, 则称n 为完全数, 如6=1+2+3 是完全数。
{
int t,m=0;
for(int i=1;i<n;++i)
{
t=n%i;
if(t==0)
m=m+i;
}
if(m==n)
return true;
return false;
}
bool NaturalNumber::isReverse(int x)//判断形式参数x 是否为数据成员n 的逆向数(例321 是123 的逆向数)。
{
int a,s=0;
while(x>0)
{
a=x%10;
s=s*10+a;
x=x/10;
}
if(s==n)
return true;
return false;
}
bool NaturalNumber::isDaffodil(int x) //判断形式参数x 是否是水仙花数。水仙花数的各位数字立方和等于该数,如153=1*1*1+5*5*5+3*3*3
{
int a,s=0;
while(x>0)
{
a=x%10;
s=s+a*a*a;
x=x/10;
}
if(s==n)
return true;
return false;
}
void NaturalNumber::printDaffodils() //显示所有大于1,且小于数据成员n 的水仙花数;
{
int a,b,c,h;
cout<<endl;
cout<<"所有大于1,且小于数据成员"<<n<<"的水仙花数为:";
for(int i=11;i<n;++i)
{
if(i<100)
{
a=i/10;
b=i%10;
h=a*a*a+b*b*b;
if(i==h)
cout<<i<<'\t';
}
else
{
a=i/100;
b=(i%100)/10;
c=(i%100)%10;
h=c*c*c+b*b*b+a*a*a;
if(i==h)
cout<<i<<'\t';
}
}
cout<<endl;
}
NaturalNumber.h
#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 的水仙花数;
};
运行结果:
经验积累:
1.我学会了如何用循环求逆向数和水仙花数。
2.对VS2008我更熟悉了。
分享到:
相关推荐
《python程序设计》第10周上机任务.docx
操作系统上机指导---帮助-----------------
植被遥感上机课程-植被辐射传输模型,PROSAIL
对于面向对象的程序设计,程序员注重的是类的设计和编写,即问题域中涉及几个类,各个类之间的关系如何,每个类包含哪些数据和函数(操作代码),再由类生成其对象。程序中的一切操作都是通过向对象发送消息来实现的...
目的:熟练掌握自上而下的语法分析方法,并能用程序实现。 要求: 例如. 使用的文法如下: E TE E + TE | T FT T * FT | F (E) | id 编写First函数,实现其求解过程。 提示: 1,非终结符为 大写...
第一篇 汇编语言程序设计 实验一 汇编语言上机操作—比较字符串----------------------1-1 实验二 循环程序设计—建立学生名次表 ---------------1-5 实验三 显示器界面设计—光标轨迹程序----------------1-8 实验...
(3)设计测试程序:在main()函数中使用不同方式创建对象,并测试其成员函数的功能。 二、设计和实现圆类Circle,要求如下: (1)该类有1个double类型的私有数据成员:radius表示圆的半径值; (2)为Circle类...
在主程序中定义一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用。程序名:lab4_2.cpp. 使用debug调试功能观察lab4_2.cpp程序的运行流程,跟踪观察类的构造函数、...
全国计算机等级考试-三级数据库-上机题-精选21题-简单方法实现-ZT
本书是和吴文虎编著的枟程序设计基础(第 2 版)枠(清华大学出版社 2004 年出版)配合使用的参考 书 。 内容包括 2部分 :第 1部分包括了枟程序设计基础(第 2 版)枠书中全部习题和参考解答 ;第 2 部分 ...
第三次上机—求first集合[大连理工大学 软件学院 ]【编译技术上机 求First集】【代码有思路+注释】【代码完美运行,界面清晰易懂;包含附加题完美运行代码:求Follow集】 目的:熟练掌握自上而下的语法分析方法,并...
大连理工大学优化方法上机作业-2022春上机作业 【1 问题的维数n= 2ab (ab为自己的学号最后两位,例如张三学号为22104135,那么n=235).取 x=0,步长ak为精确线搜索,利用下述方法求二次函数f(x)= xTGx+ bTx的极小点: 。...
YS-《计算机网络》上机任务书-PT实验三.pdf
算法设计上机题-31
作业三(第6周上机任务).md
首先介绍流计算的基本概念和需求,分析了MapReduce框架为何不适合处理流数据;然后,阐述了流计算的处理流程和可应用的场景;接着介绍了流计算框架Storm的设计思想和架构设计...最后,通过实例来加深对Storm框架的了解
(2)将列的次序取反,即按"四组"、"三组"、"二组"、"一组"的次序从左到右排列; (3)以文件名为"EXLT1_结果.xlsx"保存文件。 2. 创建如下工作表,并保存为EXLT2.xlsx文件。 接着完成以下操作: (1)将A列格式...
C++程序设计上机指导,包括上机前准备工作(申请博客和邮箱,注册上外网的帐号等),上机任务
第一部分是《Visual Basic程序设计教程(第四版)》习题与参考解答,包括了清华大学出版社出版的《VisualBasic程序设计教程(第四版)》一书中各章的全部习题,对每个编程题都给出了参考解答。第二部分是上机实验...