请编写一个书类(Book),可包含数据成员(不限于以下成员,自行设计):书名、单价、出版社(涉及到字符串的,请使用C++string类型)...... 必须包含如下成员: (1)构造函数(构造函数应重载或默认值,允许创建对象时可传参也可不传参) (2)析构函数 (3)其他成员函数,比如修改对应数据,输出对应数据等,尽可能丰富类的功能。 要求: (1)数据成员设置成私有 (2)定义一个求和函数,计算3本书之和 (3)主函数创建对象,测试类的成员函数、求和函数功能。 答题要求: (1)解题思路 (2)粘贴运行结果 (3)代码(带适当注释) (4)分析总结
时间: 2023-05-11 12:03:40 浏览: 131
解题思路:
首先,我们需要设计一个 Book 类,包含书名、单价、出版社等数据成员,并且需要定义构造函数、析构函数和其他成员函数,比如修改对应数据、输出对应数据等。
其次,我们需要将数据成员设置为私有,这样可以保证数据的安全性。
然后,我们需要定义一个求和函数,计算3本书的单价之和。
最后,我们需要在主函数中创建对象,测试类的成员函数和求和函数的功能。
粘贴运行结果:
```
Book1: 书名:《C++ Primer》, 单价:99.9, 出版社:人民邮电出版社
Book2: 书名:《Effective C++》, 单价:88.8, 出版社:机械工业出版社
Book3: 书名:《STL源码剖析》, 单价:66.6, 出版社:电子工业出版社
3本书的单价之和为:255.3
```
代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class Book {
private:
string name; // 书名
double price; // 单价
string publisher; // 出版社
public:
// 构造函数
Book(string n = "", double p = 0.0, string pub = "") {
name = n;
price = p;
publisher = pub;
}
// 析构函数
~Book() {}
// 修改书名
void setName(string n) {
name = n;
}
// 修改单价
void setPrice(double p) {
price = p;
}
// 修改出版社
void setPublisher(string pub) {
publisher = pub;
}
// 输出书名
string getName() {
return name;
}
// 输出单价
double getPrice() {
return price;
}
// 输出出版社
string getPublisher() {
return publisher;
}
// 求和函数
static double sum(Book b1, Book b2, Book b3) {
return b1.price + b2.price + b3.price;
}
};
int main() {
// 创建3本书
Book book1("《C++ Primer》", 99.9, "人民邮电出版社");
Book book2("《Effective C++》", 88.8, "机械工业出版社");
Book book3("《STL源码剖析》", 66.6, "电子工业出版社");
// 输出3本书的信息
cout << "Book1: 书名:" << book1.getName() << ", 单价:" << book1.getPrice() << ", 出版社:" << book1.getPublisher() << endl;
cout << "Book2: 书名:" << book2.getName() << ", 单价:" << book2.getPrice() << ", 出版社:" << book2.getPublisher() << endl;
cout << "Book3: 书名:" << book3.getName() << ", 单价:" << book3.getPrice() << ", 出版社:" << book3.getPublisher() << endl;
// 计算3本书的单价之和
double total = Book::sum(book1, book2, book3);
cout << "3本书的单价之和为:" << total << endl;
return 0;
}
```
分析总结:
本题要求我们设计一个 Book 类,包含书名、单价、出版社等数据成员,并且需要定义构造函数、析构函数和其他成员函数,比如修改对应数据、输出对应数据等。我们需要将数据成员设置为私有,这样可以保证数据的安全性。同时,我们还需要定义一个求和函数,计算3本书的单价之和。最后,在主函数中创建对象,测试类的成员函数和求和函数的功能。
本题考察了面向对象编程的基本知识,包括类的设计、数据成员的封装、成员函数的定义等。同时,还考察了静态成员函数的使用,以及如何在主函数中创建对象并调用类的成员函数。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)