用顺序表实现图书馆管理系统
时间: 2024-05-11 21:18:08 浏览: 158
首先,我们需要确定图书馆管理系统的功能和数据结构。
功能:
1. 添加图书
2. 删除图书
3. 借阅图书
4. 归还图书
5. 查询图书
数据结构:
1. 书籍信息:书名、作者、出版社、ISBN、是否借出等
2. 图书馆:包含一定数量的书籍信息
使用顺序表实现图书馆管理系统的代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
// 书籍信息结构体
struct Book {
char name[50];
char author[20];
char publisher[20];
char ISBN[20];
bool isLent;
};
// 图书馆类
class Library {
private:
Book books[100]; // 顺序表,最多存储100本书
int numBooks; // 记录当前图书馆中已有的书籍数量
public:
Library() {
numBooks = 0;
}
// 添加图书
void addBook(Book book) {
if (numBooks >= 100) {
cout << "图书馆已满,无法添加图书!" << endl;
return;
}
books[numBooks] = book;
numBooks++;
}
// 删除图书
void deleteBook(char ISBN[]) {
for (int i = 0; i < numBooks; i++) {
if (strcmp(books[i].ISBN, ISBN) == 0) {
for (int j = i; j < numBooks - 1; j++) {
books[j] = books[j+1];
}
numBooks--;
cout << "删除成功!" << endl;
return;
}
}
cout << "未找到该图书,删除失败!" << endl;
}
// 借阅图书
void lendBook(char ISBN[]) {
for (int i = 0; i < numBooks; i++) {
if (strcmp(books[i].ISBN, ISBN) == 0) {
if (books[i].isLent) {
cout << "该书已被借出!" << endl;
return;
}
books[i].isLent = true;
cout << "借阅成功!" << endl;
return;
}
}
cout << "未找到该图书,借阅失败!" << endl;
}
// 归还图书
void returnBook(char ISBN[]) {
for (int i = 0; i < numBooks; i++) {
if (strcmp(books[i].ISBN, ISBN) == 0) {
if (!books[i].isLent) {
cout << "该书未被借出!" << endl;
return;
}
books[i].isLent = false;
cout << "归还成功!" << endl;
return;
}
}
cout << "未找到该图书,归还失败!" << endl;
}
// 查询图书
void queryBook(char ISBN[]) {
for (int i = 0; i < numBooks; i++) {
if (strcmp(books[i].ISBN, ISBN) == 0) {
cout << "书名:" << books[i].name << endl;
cout << "作者:" << books[i].author << endl;
cout << "出版社:" << books[i].publisher << endl;
cout << "ISBN:" << books[i].ISBN << endl;
if (books[i].isLent) {
cout << "状态:已借出" << endl;
} else {
cout << "状态:未借出" << endl;
}
return;
}
}
cout << "未找到该图书!" << endl;
}
};
int main() {
Library lib;
int choice;
Book book;
char ISBN[20];
while (true) {
cout << "请选择操作:" << endl;
cout << "1. 添加图书" << endl;
cout << "2. 删除图书" << endl;
cout << "3. 借阅图书" << endl;
cout << "4. 归还图书" << endl;
cout << "5. 查询图书" << endl;
cout << "6. 退出" << endl;
cin >> choice;
switch (choice) {
case 1:
cout << "请输入书名、作者、出版社、ISBN:" << endl;
cin >> book.name >> book.author >> book.publisher >> book.ISBN;
book.isLent = false;
lib.addBook(book);
break;
case 2:
cout << "请输入要删除的图书的ISBN:" << endl;
cin >> ISBN;
lib.deleteBook(ISBN);
break;
case 3:
cout << "请输入要借阅的图书的ISBN:" << endl;
cin >> ISBN;
lib.lendBook(ISBN);
break;
case 4:
cout << "请输入要归还的图书的ISBN:" << endl;
cin >> ISBN;
lib.returnBook(ISBN);
break;
case 5:
cout << "请输入要查询的图书的ISBN:" << endl;
cin >> ISBN;
lib.queryBook(ISBN);
break;
case 6:
cout << "谢谢使用!" << endl;
return 0;
default:
cout << "输入错误,请重新输入!" << endl;
break;
}
}
}
```
当然,这只是一个简单的实现,实际应用中还需要考虑更多的细节问题。
阅读全文