基于C++语言实现图书管理系统

📅 发布时间:2026/8/15 19:48:06
基于C++语言实现图书管理系统 代码功能分析该程序是一个简单的图书管理系统基于C实现采用结构体数组存储图书信息支持添加、删除、查找、清空、修改和显示图书功能。以下是核心模块的说明和优化建议关键功能模块数据结构Person结构体存储单本图书信息书名、价格、编号。Arraybooks结构体管理图书数组包含最大容量MAX和当前数量length。功能函数addBooks: 添加新图书检查数组是否已满。dalateBooks: 按书名删除图书移动后续元素覆盖被删项。isExist: 检查书名是否存在返回索引或-1。CheckBook: 按书名查找并输出图书信息。cleanbooks: 清空图书数组重置length。changebooks: 按书名修改图书信息。showbooks: 遍历输出所有图书信息。交互逻辑main函数通过while循环和switch实现菜单驱动。mean函数打印功能菜单。代码实现#include iostream#include stringusing namespace std;#define MAX 1000struct Person {string name;int price;string number;};struct Arraybooks {struct Person book[MAX];int length;};void mean();int outSystem();void addBooks(Arraybooks* abs);void dalateBooks(Arraybooks* abs);int isExist(Arraybooks* abs, string name);void CheckBook(Arraybooks* abs);void cleanbooks(Arraybooks* abs);void showbooks(Arraybooks* abs);void changebooks(Arraybooks* abs);int main() {int x;Arraybooks abs;abs.length 0;while (true) {mean();cin x;switch (x) {case 1:addBooks(abs);break;case 2:dalateBooks(abs);break;case 3:CheckBook(abs);break;case 4:cleanbooks(abs);break;case 5:changebooks(abs);break;case 6:showbooks(abs);break;case 0:outSystem();break;}}return 0;}void addBooks(Arraybooks* abs) {if (abs-length MAX) {cout 书籍已满 endl;}else {string name;cout 请输入书籍的名字: endl;cin name;abs-book[abs-length].name name;int price;cout 请输入书的价格 endl;cin price;abs-book[abs-length].price price;string num;cout 请输入书的编号 endl;cin num;abs-book[abs-length].number num;abs-length;cout 添加成功 endl;}}int isExist(Arraybooks* abs, string name) {for (int i 0; i abs-length; i) {if (abs-book[i].name name) {return i;}}return -1;}void dalateBooks(Arraybooks* abs) {cout 请输入你要删除的书籍 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1 ret ! abs-length - 1) {abs-book[ret].name abs-book[ret 1].name;abs-book[ret].number abs-book[ret 1].number;abs-book[ret].price abs-book[ret 1].price;for (int i ret 2; i abs-length; i) {abs-book[i - 1].name abs-book[i].name;abs-book[i - 1].number abs-book[i].number;abs-book[i - 1].price abs-book[i].price;abs-length--;}cout 删除成功 endl;}else if(ret ! 1 ret abs-length - 1) {abs-length--;}else {cout 查无此书 endl;}}void CheckBook(Arraybooks* abs) {cout 输入你要查找的书籍 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1) {cout 书名为 abs-book[ret].name \t;cout 书价格为 abs-book[ret].price \t;cout 书编号为 abs-book[ret].number endl;}else {cout 查无此书 endl;}}void cleanbooks(Arraybooks* abs) {abs-length 0;cout 清理完成 endl;}void changebooks(Arraybooks* abs) {cout 输入你要修改的图书 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1) {cout 请输入名字 endl;string name;cin name;abs-book[ret].name name;cout 请输入价格 endl;int price;cin price;abs-book[ret].price price;cout 请输入编号: endl;string num;cin num;abs-book[ret].number num;}else {cout 查无此书 endl;}}void showbooks(Arraybooks* abs) {if (abs-length 0) {cout 书架为空 endl;}else {for (int i 0; i abs-length; i) {cout 书籍名字 abs-book[i].name \t;cout 书籍价格 abs-book[i].price \t;cout 书籍编号 abs-book[i].number endl;}}}int outSystem() {cout 欢迎下次使用 endl;return 0;}void mean() {cout ************************* endl;cout *******1、加入图书******** endl; //OKcout *******2、按名删除图书***** endl;//OKcout *******3、按名查找图书***** endl;//OKcout *******4、清空图书架******* endl;//OKcout *******5、修改图书名******* endl;cout *******6、显示图书架******* endl;//OKcout *******0、退出系统********* endl; //OKcout ************************** endl;}