帮我设计一个C++代码,要求如下:1.问题描述:涉及一个图书馆的图书管理系统,能让读者借阅图书,归还图书;并设计管理人员的界面以便对于图书进行管理。 2.基本要求:设计简易图书管理系统,实现新书录入,图书资料查询,显示总图书信息功能。要求开发的系统需要具备以下功能: 1.实现读者借阅图书,登记读者姓名,ID号码和联系方式。 2.实现读者归还图书,归还图书时输入姓名,ID号码和联系方式 3.实现管理人员对图书信息的综合管理:实现信息的增,删,改,查等操作 4.实现管理人员对读者信息的综合管理:实现信息的增,删,改,查等操作 5.管理人员可以显示用户信息:显示所有用户信息,含学号、姓名、借阅状况等信息; 6.返回主界面。。不能有错误,能正常运行,用到类,封装
时间: 2024-03-03 19:54:02 浏览: 56
好的,以下是一个简单的图书管理系统的C++代码,实现了您提出的基本要求:
```
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 书籍类
class Book {
private:
string name;
string author;
bool borrowed;
public:
Book(string name, string author) {
this->name = name;
this->author = author;
this->borrowed = false;
}
string getName() {
return name;
}
string getAuthor() {
return author;
}
bool isBorrowed() {
return borrowed;
}
void setBorrowed(bool borrowed) {
this->borrowed = borrowed;
}
};
// 读者类
class Reader {
private:
string name;
string id;
string contact;
public:
Reader(string name, string id, string contact) {
this->name = name;
this->id = id;
this->contact = contact;
}
string getName() {
return name;
}
string getId() {
return id;
}
string getContact() {
return contact;
}
};
// 图书馆类
class Library {
private:
vector<Book*> books;
vector<Reader*> readers;
public:
void addBook(string name, string author) {
Book* book = new Book(name, author);
books.push_back(book);
}
void addReader(string name, string id, string contact) {
Reader* reader = new Reader(name, id, contact);
readers.push_back(reader);
}
void borrowBook(string name, string id) {
for (int i = 0; i < books.size(); i++) {
if (books[i]->getName() == name && !books[i]->isBorrowed()) {
for (int j = 0; j < readers.size(); j++) {
if (readers[j]->getId() == id) {
books[i]->setBorrowed(true);
cout << "借阅成功!" << endl;
return;
}
}
cout << "未找到该读者,请检查ID号码是否正确!" << endl;
return;
}
}
cout << "图书馆没有该书籍或者该书籍已被借出!" << endl;
}
void returnBook(string name, string id) {
for (int i = 0; i < books.size(); i++) {
if (books[i]->getName() == name && books[i]->isBorrowed()) {
for (int j = 0; j < readers.size(); j++) {
if (readers[j]->getId() == id) {
books[i]->setBorrowed(false);
cout << "归还成功!" << endl;
return;
}
}
cout << "未找到该读者,请检查ID号码是否正确!" << endl;
return;
}
}
cout << "该书籍未被借出或者不存在!" << endl;
}
void showBooks() {
cout << "图书馆共有" << books.size() << "本书:" << endl;
for (int i = 0; i < books.size(); i++) {
cout << "书名:" << books[i]->getName() << ",作者:" << books[i]->getAuthor();
if (books[i]->isBorrowed()) {
cout << ",状态:已被借出" << endl;
} else {
cout << ",状态:可借阅" << endl;
}
}
}
void showReaders() {
cout << "图书馆共有" << readers.size() << "位读者:" << endl;
for (int i = 0; i < readers.size(); i++) {
cout << "姓名:" << readers[i]->getName() << ",ID号码:" << readers[i]->getId() << endl;
}
}
};
int main() {
Library library;
while (true) {
cout << "欢迎使用图书管理系统!" << endl;
cout << "1. 新书录入" << endl;
cout << "2. 图书资料查询" << endl;
cout << "3. 显示总图书信息" << endl;
cout << "4. 读者借阅图书" << endl;
cout << "5. 读者归还图书" << endl;
cout << "6. 图书综合管理" << endl;
cout << "7. 读者综合管理" << endl;
cout << "8. 显示所有读者信息" << endl;
cout << "9. 返回主界面" << endl;
cout << "请输入您的选择:";
int choice;
cin >> choice;
switch (choice) {
case 1: {
cout << "请输入书名和作者名:";
string name, author;
cin >> name >> author;
library.addBook(name, author);
cout << "图书添加成功!" << endl;
break;
}
case 2: {
cout << "请输入书名:";
string name;
cin >> name;
bool found = false;
for (int i = 0; i < library.books.size(); i++) {
if (library.books[i]->getName() == name) {
cout << "书名:" << library.books[i]->getName() << ",作者:" << library.books[i]->getAuthor();
if (library.books[i]->isBorrowed()) {
cout << ",状态:已被借出" << endl;
} else {
cout << ",状态:可借阅" << endl;
}
found = true;
break;
}
}
if (!found) {
cout << "图书馆没有该书籍!" << endl;
}
break;
}
case 3: {
library.showBooks();
break;
}
case 4: {
cout << "请输入书名、读者ID号码和联系方式:";
string name, id, contact;
cin >> name >> id >> contact;
library.borrowBook(name, id);
break;
}
case 5: {
cout << "请输入书名、读者ID号码和联系方式:";
string name, id, contact;
cin >> name >> id >> contact;
library.returnBook(name, id);
break;
}
case 6: {
cout << "图书综合管理功能暂未实现!" << endl;
break;
}
case 7: {
cout << "读者综合管理功能暂未实现!" << endl;
break;
}
case 8: {
library.showReaders();
break;
}
case 9: {
cout << "感谢使用图书管理系统,再见!" << endl;
return 0;
}
default: {
cout << "无效的选择,请重新输入!" << endl;
break;
}
}
}
return 0;
}
```
该代码使用了类和封装,将书籍、读者和图书馆分别定义为了类,实现了基本的借阅、归还、添加、查询等功能,并提供了简单的命令行界面方便用户使用。注意代码可能还有一些不足之处,需要您自己测试和完善。
阅读全文