0

0

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

P粉602998670

P粉602998670

发布时间:2025-08-13 19:43:01

|

247人浏览过

|

来源于php中文网

原创

答案:文章介绍了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;
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)设计

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

SCNet智能助手
SCNet智能助手

SCNet超算互联网平台AI智能助手

下载

使用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;

while (true) { cout << "\n--- 图书管理系统 ---\n"; cout << "1. 添加图书\n2. 查看所有图书\n3. 搜索图书\n"; cout << "4. 借阅图书\n5. 归还图书\n6. 删除图书\n0. 退出\n"; cout << "请选择: "; cin >> choice;

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),实现持久化(进阶)

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

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

84

2023.09.25

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

537

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

52

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

194

2025.08.29

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

1

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

1

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 6.6万人学习

C 教程
C 教程

共75课时 | 4万人学习

C++教程
C++教程

共115课时 | 12.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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