C++ Book 类实现及测试:图书信息管理
C++ Book 类实现及测试:图书信息管理
本文将介绍如何用 C++ 实现一个 Book 类,用于管理图书信息。该类包含图书编号、名称和存书量,并提供相应的成员函数用于操作这些数据。同时,我们将编写测试程序来验证类的功能。
Book 类结构
数据成员:
ID(私有,string):图书编号name(私有,string):图书名称num(私有,int):存书量
成员函数:
-
构造函数:
Book(string value1 = '000', string value2 = 'book', int value3 = 0)- 功能:初始化图书信息。
- 参数:
value1: 图书编号,默认值为 '000'。value2: 图书名称,默认值为 'book'。value3: 存书量,默认值为 0。
-
void setID(string value): 设置图书编号。 -
void setName(string value): 设置图书名称。 -
void setNum(int value): 设置存书量。 -
string getID(void): 获取图书编号。 -
string getName(void): 获取图书名称。 -
int getNum(void): 获取存书量。 -
void display(void) const: 显示图书信息到控制台,格式为:编号-名称-存书量。
测试程序
测试程序将创建一个 Book 类的对象数组,并从键盘输入数据存储到数组中。然后,程序将查找数组中存书量最少的图书,并输出所有存书量最少的图书的信息。
代码实现
#include <iostream>
#include <string>
using namespace std;
class Book {
public:
Book(string value1 = '000', string value2 = 'book', int value3 = 0) {
ID = value1;
name = value2;
num = value3;
}
void setID(string value) { ID = value; }
void setName(string value) { name = value; }
void setNum(int value) { num = value; }
string getID(void) { return ID; }
string getName(void) { return name; }
int getNum(void) { return num; }
void display(void) const { cout << ID << '-' << name << '-' << num << endl; }
private:
string ID, name;
int num;
};
void in(Book book[], int n) {
string id, name;
int num;
for (int i = 0; i < n; i++) {
cin >> id >> name >> num;
book[i] = Book(id, name, num);
}
}
int findMin(Book book[], int n) {
int minNum = book[0].getNum();
for (int i = 1; i < n; i++) {
if (book[i].getNum() < minNum) {
minNum = book[i].getNum();
}
}
return minNum;
}
void outmin(Book book[], int n, int minNum) {
for (int i = 0; i < n; i++) {
if (book[i].getNum() == minNum) {
book[i].display();
}
}
}
int main(void) {
Book book[4];
int minNum = 0;
in(book, 4);
minNum = findMin(book, 4);
outmin(book, 4, minNum);
return 0;
}
输入样例
001 C语言程序设计 38
002 面向对象系统分析 114
003 数据结构 38
004 统一建模语言 91
输出样例
001-C语言程序设计-38
003-数据结构-38
总结
通过以上步骤,我们实现了 Book 类,并编写了测试程序来验证其功能。该类可以用于管理图书信息,并进行相关的操作,例如输入、查找、输出等。
原文地址: https://www.cveoy.top/t/topic/osIU 著作权归作者所有。请勿转载和采集!