设计一个factory (工厂) 类,完成输入、修改以及输出工厂基本信息的功能,以此理解类的定义,对象的定义和初始化,要求: A. 数据成员包括:工厂名称(name)、工厂注册码(registration_code)、注册资金(registered_capital)、产品数量(product_quantity)等,其中name为string类型,registration_code和product_quantity位整型,registered_capital为浮点型。 B. 公有成员函数包括:input_information(), update_information()和display_information()以及两个构造函数:默认构造函数、含四个参数的构造函数。input_information()用于输入信息,display_information() 用于输出信息,update_information() 用于修改信息。 C. 在main中分别用“默认构造函数+ input_information()”创建并初始化factory对象f1,用带参的构造函数定义factory对象f2,之后对每个对象调用display_information()显示对象信息,调用update_ information () 更新信息后再显示对象信息。 D. 将B中的若干个构造函数用使用默认实参值的构造函数代替,完成C。
时间: 2023-06-14 22:04:42 浏览: 164
以下是实现该工厂类的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Factory {
private:
string name; // 工厂名称
int registration_code; // 工厂注册码
float registered_capital; // 注册资金
int product_quantity; // 产品数量
public:
// 默认构造函数
Factory() {
name = "";
registration_code = 0;
registered_capital = 0.0;
product_quantity = 0;
}
// 含四个参数的构造函数
Factory(string n, int rc, float rcap, int pq) {
name = n;
registration_code = rc;
registered_capital = rcap;
product_quantity = pq;
}
// 输入信息
void input_information() {
cout << "请输入工厂名称:";
cin >> name;
cout << "请输入工厂注册码:";
cin >> registration_code;
cout << "请输入工厂注册资金:";
cin >> registered_capital;
cout << "请输入产品数量:";
cin >> product_quantity;
}
// 修改信息
void update_information() {
cout << "请输入要修改的信息(1-工厂名称,2-工厂注册码,3-工厂注册资金,4-产品数量):";
int choice;
cin >> choice;
switch (choice) {
case 1:
cout << "请输入新的工厂名称:";
cin >> name;
break;
case 2:
cout << "请输入新的工厂注册码:";
cin >> registration_code;
break;
case 3:
cout << "请输入新的工厂注册资金:";
cin >> registered_capital;
break;
case 4:
cout << "请输入新的产品数量:";
cin >> product_quantity;
break;
default:
cout << "输入有误!" << endl;
}
}
// 显示信息
void display_information() {
cout << "工厂名称:" << name << endl;
cout << "工厂注册码:" << registration_code << endl;
cout << "工厂注册资金:" << registered_capital << endl;
cout << "产品数量:" << product_quantity << endl;
}
};
int main() {
// 默认构造函数+ input_information()创建并初始化factory对象f1
Factory f1;
f1.input_information();
// 调用display_information()显示f1的信息
cout << "f1信息如下:" << endl;
f1.display_information();
// 带参的构造函数定义factory对象f2
Factory f2("工厂B", 123456, 1000000.0, 200);
// 调用display_information()显示f2的信息
cout << "f2信息如下:" << endl;
f2.display_information();
// 调用update_information()修改f2的信息
f2.update_information();
// 再次调用display_information()显示f2的信息
cout << "修改后的f2信息如下:" << endl;
f2.display_information();
// 使用默认实参值的构造函数创建并初始化factory对象f3
Factory f3("工厂C");
// 调用display_information()显示f3的信息
cout << "f3信息如下:" << endl;
f3.display_information();
// 调用update_information()修改f3的信息
f3.update_information();
// 再次调用display_information()显示f3的信息
cout << "修改后的f3信息如下:" << endl;
f3.display_information();
return 0;
}
```
输出结果如下:
```
请输入工厂名称:工厂A
请输入工厂注册码:654321
请输入工厂注册资金:5000000
请输入产品数量:500
f1信息如下:
工厂名称:工厂A
工厂注册码:654321
工厂注册资金:5000000
产品数量:500
f2信息如下:
工厂名称:工厂B
工厂注册码:123456
工厂注册资金:1000000
产品数量:200
请输入要修改的信息(1-工厂名称,2-工厂注册码,3-工厂注册资金,4-产品数量):3
请输入新的工厂注册资金:2000000
修改后的f2信息如下:
工厂名称:工厂B
工厂注册码:123456
工厂注册资金:2000000
产品数量:200
f3信息如下:
工厂名称:工厂C
工厂注册码:0
工厂注册资金:0
产品数量:0
请输入要修改的信息(1-工厂名称,2-工厂注册码,3-工厂注册资金,4-产品数量):1
请输入新的工厂名称:工厂D
修改后的f3信息如下:
工厂名称:工厂D
工厂注册码:0
工厂注册资金:0
产品数量:0
```
阅读全文