使用类编写一个求n!的程序,要求有构造函数重载,两个私有成员变量,int n,int total,一个是定义n的数量,另一个是存储阶乘的结果;两个程员函数,一个计算阶乘函数,零一显示结果函数。在主函数中完成调用输出6!。
时间: 2024-10-21 19:07:49 浏览: 10
课程《程序设计基础(C++)II》期中A卷答案.pdf
要编写这样一个程序,你可以创建一个名为`FactorialCalculator`的类,它包含构造函数重载、两个私有成员变量以及两个成员函数。以下是C++语言的一个例子:
```cpp
#include <iostream>
class FactorialCalculator {
private:
int n; // 定义n的数量
int total; // 存储阶乘的结果
public:
// 构造函数,无参版本
FactorialCalculator() : n(0), total(1) {}
// 构造函数重载,传入n值
FactorialCalculator(int num) : n(num), total(1) {
if (num < 0) {
throw std::invalid_argument("n cannot be negative.");
} else {
for (int i = 1; i <= num; ++i) {
total *= i;
}
}
}
// 计算阶乘的函数
void calculateFactorial() {
if (n < 0) {
throw std::runtime_error("Cannot compute factorial of a negative number.");
} else {
for (int i = 1; i <= n; ++i) {
total *= i;
}
}
}
// 显示结果的函数
void displayResult() const {
std::cout << "n!: " << total << std::endl;
}
};
int main() {
// 调用类实例化并计算6的阶乘
FactorialCalculator calculator(6);
try {
calculator.calculateFactorial();
calculator.displayResult();
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个程序中,当你在`main`函数中调用`calculator(6)`时,将会计算6的阶乘,并将其结果显示出来。注意,这里我们有两个构造函数,一个默认构造函数和一个带参数的构造函数,以便可以根据需要初始化`n`。
阅读全文