使用类编写C ++中的因子

时间:2015-06-28 22:29:30

标签: c++

在我的C ++ OOP类中收到以下作业。

将计算因子的以下程序程序转换为使用类计算阶乘的程序。

#include <iostream.h>

int factorial(int);

int main(void) {
    int number;
    cout << "Please enter a positive integer: ";
    cin >> number;
if (number < 0)
    cout << "That is not a positive integer.\n";
else
    cout << number << " factorial is: " << factorial(number) << endl;
}

int factorial(int number) {
    int temp;
    if(number <= 1) return 1;
    temp = number * factorial(number - 1);
    return temp;
}

使用以下驱动程序。驱动程序意味着已经为您编写了int main()....您只需要创建类并将其添加到代码中。

提示:查看下面代码中使用的类的名称(factorialClass),并查看下面使用的方法/函数名称(FactNum)..你的新类必须使用它们......

int main(void) {

 factorialClass FactorialInstance;  //

 cout << "The factorial of 3 is: " << FactorialInstance.FactNum(3) << endl;

 cout << "The factorial of 5 is: " << FactorialInstance.FactNum(5) << endl;

 cout << "The factorial of 7 is: " << FactorialInstance.FactNum(7) << endl;

 system("pause");  // Mac user comment out this line

}

我自己做得很好,但是我收到了一堆错误消息,我不确定我错过了什么。我在网上发现了许多其他的代码块,可以轻松创建因子程序,但我不确定如何将它与他首选的驱动程序代码集成。这是我到目前为止所得到的。

#include <iostream>
using namespace std;

class factorialClass{
    int f, n; 
    public: 
    void factorialClass::FactorialInstance();
{
f=1;
cout<<"\nEnter a Number:";
cin>>n;
for(int i=1;i<=n;i++)
    f=f*i;
}
}

int main(void) {

 factorialClass FactorialInstance;  //

 FactorialInstance.FactNum();

 cout << "The factorial of 3 is: " << FactorialInstance.FactNum(3) << endl;

 cout << "The factorial of 5 is: " << FactorialInstance.FactNum(5) << endl;

 cout << "The factorial of 7 is: " << FactorialInstance.FactNum(7) << endl;

 system("pause");  // Mac user comment out this line
}

2 个答案:

答案 0 :(得分:2)

这是一项愚蠢的任务。阶乘函数不是对象的正确成员,但是为了完成对象的要求,它看起来像:

struct factorialClass{
  int FactNum(int number = 1) {  // default argument helps with the first call
    if(number <= 1) return 1;
    return number * FactNum(number - 1);
}

函数不做输入,它们做参数。

答案 1 :(得分:1)

通过

创建课程factorialClass
class factorialClass
{
};

现在添加函数来计算阶乘。 FactNum(int)

class factorialClass
{
public:
     int FactNum(int x)
     {
        //code to compute factorial
        //return result
     }
};

使用驱动程序类进行测试。