在我的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
}
答案 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
}
};
使用驱动程序类进行测试。