用c++实现以下程序:题目2 "图书管理系统设计" 1、问题描述定义图书类,属性有:书名、出版社、 ISBN 号、作者、库存量、价格等信息和相关的对属性做操作的行为。主要完成对图书的销售、统计和图书的简单管理.
时间: 2023-11-12 17:09:09 浏览: 120
用c++定义一个Book(图书)类
5星 · 资源好评率100%
好的,下面是一个简单的图书管理系统的C++代码示例:
```c++
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 图书类
class Book {
public:
Book(string name, string author, string publisher, string ISBN, int stock, double price) {
this->name = name;
this->author = author;
this->publisher = publisher;
this->ISBN = ISBN;
this->stock = stock;
this->price = price;
}
// 获取属性
string getName() {
return name;
}
string getAuthor() {
return author;
}
string getPublisher() {
return publisher;
}
string getISBN() {
return ISBN;
}
int getStock() {
return stock;
}
double getPrice() {
return price;
}
// 修改属性
void setName(string name) {
this->name = name;
}
void setAuthor(string author) {
this->author = author;
}
void setPublisher(string publisher) {
this->publisher = publisher;
}
void setISBN(string ISBN) {
this->ISBN = ISBN;
}
void setStock(int stock) {
this->stock = stock;
}
void setPrice(double price) {
this->price = price;
}
// 增加库存
void addStock(int num) {
stock += num;
}
// 减少库存
void reduceStock(int num) {
stock -= num;
}
private:
string name; // 书名
string author; // 作者
string publisher; // 出版社
string ISBN; // ISBN号
int stock; // 库存量
double price; // 价格
};
// 图书馆类
class Library {
public:
// 添加图书
void addBook(Book book) {
books.push_back(book);
cout << "添加图书成功!" << endl;
}
// 删除图书
void removeBook(string ISBN) {
for (int i = 0; i < books.size(); i++) {
if (books[i].getISBN() == ISBN) {
books.erase(books.begin() + i);
cout << "删除图书成功!" << endl;
return;
}
}
cout << "没有找到要删除的图书!" << endl;
}
// 显示所有图书
void displayAllBooks() {
cout << "图书馆一共有" << books.size() << "本图书:" << endl;
for (int i = 0; i < books.size(); i++) {
cout << "书名:" << books[i].getName() << ",作者:" << books[i].getAuthor()
<< ",出版社:" << books[i].getPublisher() << ",ISBN号:" << books[i].getISBN()
<< ",库存量:" << books[i].getStock() << ",价格:" << books[i].getPrice() << endl;
}
}
// 销售图书
void sellBook(string ISBN, int num) {
for (int i = 0; i < books.size(); i++) {
if (books[i].getISBN() == ISBN) {
if (books[i].getStock() >= num) {
books[i].reduceStock(num);
cout << "销售图书成功!" << endl;
}
else {
cout << "库存不足,无法销售!" << endl;
}
return;
}
}
cout << "没有找到要销售的图书!" << endl;
}
// 统计图书总数和总价值
void statistics() {
int totalNum = 0;
double totalPrice = 0.0;
for (int i = 0; i < books.size(); i++) {
totalNum += books[i].getStock();
totalPrice += books[i].getStock() * books[i].getPrice();
}
cout << "图书馆一共有" << totalNum << "本图书,总价值为" << totalPrice << "元。" << endl;
}
private:
vector<Book> books; // 图书集合
};
// 主函数
int main() {
Library library; // 创建一个图书馆对象
// 添加图书
Book book1("C++ Primer", "Stanley B. Lippman", "人民邮电出版社", "9787115226923", 10, 98.0);
library.addBook(book1);
Book book2("Effective C++", "Scott Meyers", "机械工业出版社", "9787111218652", 5, 49.0);
library.addBook(book2);
// 显示所有图书
library.displayAllBooks();
// 销售图书
library.sellBook("9787115226923", 3);
// 统计图书总数和总价值
library.statistics();
return 0;
}
```
上面这个代码实现了一个较为完整的图书管理系统,可以添加图书、删除图书、显示所有图书、销售图书、统计图书总数和总价值等功能。你可以根据自己的需求进行修改和扩展。
阅读全文