首页 > 后端开发 > C++ > 正文

C++图书管理系统怎么做 类设计与控制台交互开发

P粉602998670
发布: 2025-08-13 19:43:01
原创
228人浏览过
答案:文章介绍了C++图书管理系统的设计,首先定义Book类封装图书信息,包含bookID、title、author和isBorrowed成员变量,以及构造函数、getInfo()、borrow()和returnBook()方法;接着设计Library类管理图书集合,使用vector存储Book对象,提供addBook()、removeBook()、searchBook()、displayAll()、borrowBook()和returnBook()等功能;最后通过控制台菜单实现用户交互,完成图书的增删查改和借阅归还操作,适合初学者学习类设计与STL应用。

c++图书管理系统怎么做 类设计与控制台交互开发

做一个C++图书管理系统,核心是合理的类设计和清晰的控制台交互。下面从类结构设计到菜单交互一步步说明,适合初学者理解和实现。

图书类(Book)设计

每本书需要基本信息,用一个Book类来封装。

成员变量:

  • bookID:图书编号(唯一标识)
  • title:书名
  • author:作者
  • isBorrowed:是否被借出

成员函数:

立即学习C++免费学习笔记(深入)”;

  • 构造函数:初始化图书信息
  • getInfo():打印图书信息
  • 借阅和归还操作(setBorrowed(true/false))

// 示例代码片段

class Book {
public:
    int bookID;
    string title;
    string author;
    bool isBorrowed;
<pre class='brush:php;toolbar:false;'>Book(int id, string t, string a) : bookID(id), title(t), author(a), isBorrowed(false) {}

void getInfo() const {
    cout << "ID: " << bookID << ", 书名: " << title 
         << ", 作者: " << author 
         << ", 状态: " << (isBorrowed ? "已借出" : "可借阅") << endl;
}

void borrow() { isBorrowed = true; }
void returnBook() { isBorrowed = false; }
登录后复制

};

图书管理类(Library)设计

管理所有图书,提供增删查改和借阅功能。

语鲸
语鲸

AI智能阅读辅助工具

语鲸 252
查看详情 语鲸

使用vector存储Book对象,避免固定数组限制。

  • addBook():添加新书
  • removeBook(int id):按ID删除
  • searchBook(string keyword):按书名或作者查找
  • displayAll():显示所有图书
  • borrowBook(int id) 和 returnBook(int id):处理借还逻辑

// 示例:查找图书

void searchBook(const string& keyword) {
    bool found = false;
    for (const auto& book : books) {
        if (book.title.find(keyword) != string::npos || 
            book.author.find(keyword) != string::npos) {
            book.getInfo();
            found = true;
        }
    }
    if (!found) cout << "未找到相关图书。" << endl;
}
登录后复制

控制台菜单交互

主函数中用循环显示菜单,接收用户输入并调用对应功能。

  • 显示选项:1. 添加图书 2. 查看所有 3. 搜索 4. 借阅 5. 归还 6. 删除 0. 退出
  • 用while循环保持程序运行,直到用户选择退出
  • 输入验证:检查ID是否存在、图书是否可借等

// 示例菜单结构

int choice;
Library lib;
<p>while (true) {
cout << "\n--- 图书管理系统 ---\n";
cout << "1. 添加图书\n2. 查看所有图书\n3. 搜索图书\n";
cout << "4. 借阅图书\n5. 归还图书\n6. 删除图书\n0. 退出\n";
cout << "请选择: ";
cin >> choice;</p><pre class='brush:php;toolbar:false;'>switch (choice) {
    case 1: {
        int id; string title, author;
        cout << "输入ID: "; cin >> id;
        cout << "书名: "; cin >> title;
        cout << "作者: "; cin >> author;
        lib.addBook(Book(id, title, author));
        break;
    }
    case 2:
        lib.displayAll();
        break;
    case 3: {
        string keyword;
        cout << "输入书名或作者关键词: ";
        cin >> keyword;
        lib.searchBook(keyword);
        break;
    }
    // 其他case类似...
    case 0:
        cout << "再见!\n";
        return 0;
    default:
        cout << "无效选择,请重试。\n";
}
登录后复制

}

关键细节与建议

实际开发中注意以下几点:

  • 图书ID建议用自增机制,避免重复
  • 搜索功能可改进为不区分大小写
  • 借阅前检查图书是否存在且未被借出
  • 删除图书时确认是否已归还
  • 可将数据保存到文件(如txt),实现持久化(进阶)

基本上就这些。类封装数据和操作,控制台驱动交互,结构清晰,易于扩展。不复杂但容易忽略细节,比如输入错误处理和状态判断。

以上就是C++图书管理系统怎么做 类设计与控制台交互开发的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号