C++线性表顺序存储结构实现图书管理系统
时间: 2024-06-06 08:04:11 浏览: 140
基于顺序存储结构的线性表实现(C++).zip
C++线性表顺序存储结构可以用来实现图书管理系统,其基本思路是将所有的图书信息存储在一个数组中,每本书对应数组中的一个元素。每个元素包含图书的相关信息,如编号、名称、作者、出版社、价格等等。
具体实现过程中,需要定义一个结构体来存储每本书的信息,然后使用数组来存储所有的书籍。可以定义如下的结构体:
```
struct Book {
int id; // 书籍编号
string name; // 书籍名称
string author; // 作者
string publisher; // 出版社
double price; // 价格
};
```
接下来,我们可以定义一个类来实现图书管理系统。这个类包括添加图书、删除图书、查找图书等基本功能。其中,添加图书操作可以使用数组的末尾添加,删除图书操作可以使用移动元素位置来实现,查找图书操作可以遍历整个数组进行查找。
下面是一个简单的示例代码:
```
#include <iostream>
#include <string>
using namespace std;
const int MAX_SIZE = 100; // 数组最大长度
class BookManagementSystem {
private:
Book books[MAX_SIZE]; // 用于存储图书信息的数组
int size; // 数组中存储的图书数量
public:
BookManagementSystem() {
size = 0;
}
// 添加图书
void addBook(int id, string name, string author, string publisher, double price) {
if (size >= MAX_SIZE) {
cout << "图书库已满,无法添加新书!" << endl;
return;
}
books[size].id = id;
books[size].name = name;
books[size].author = author;
books[size].publisher = publisher;
books[size].price = price;
size++;
cout << "添加成功!" << endl;
}
// 删除图书
void deleteBook(int id) {
int pos = -1; // 找到要删除的元素位置
for (int i = 0; i < size; i++) {
if (books[i].id == id) {
pos = i;
break;
}
}
if (pos == -1) {
cout << "未找到该编号的图书!" << endl;
return;
}
for (int i = pos; i < size - 1; i++) {
books[i] = books[i + 1];
}
size--;
cout << "删除成功!" << endl;
}
// 查找图书
void searchBook(int id) {
for (int i = 0; i < size; i++) {
if (books[i].id == id) {
cout << "编号:" << books[i].id << endl;
cout << "名称:" << books[i].name << endl;
cout << "作者:" << books[i].author << endl;
cout << "出版社:" << books[i].publisher << endl;
cout << "价格:" << books[i].price << endl;
return;
}
}
cout << "未找到该编号的图书!" << endl;
}
};
int main() {
BookManagementSystem bms;
bms.addBook(1001, "C++程序设计", "张三", "清华大学出版社", 39.8);
bms.addBook(1002, "Java程序设计", "李四", "人民邮电出版社", 45.6);
bms.addBook(1003, "Python编程入门", "王五", "电子工业出版社", 29.9);
bms.deleteBook(1002);
bms.searchBook(1003);
return 0;
}
```
阅读全文