C# 实现简单的图书管理系统(控制台版)

简介: 图书管理系统案例,基于C#实现,支持增删改查功能,使用List存储图书信息,包含书名、作者、价格等字段,适用于控制台操作。

图书管理系统支持添加、查询、修改、删除图书信息,用 List 存储数据。

案例:图书管理系统

public class Book
{
    public int Id { get; set; }
    public string Title { get; set; } // 书名
    public string Author { get; set; } // 作者
    public decimal Price { get; set; } // 价格
    public string Category { get; set; } // 分类
    public override string ToString()
    {
        return $"ID:{Id} | 书名:{Title} | 作者:{Author} | 价格:{Price:C} | 分类:{Category}";
    }
}
public class BookManager
{
    private static List<Book> _books = new List<Book>();
    private static int _nextId = 1; // 自增ID
    // 添加图书
    public static void AddBook()
    {
        Book book = new Book();
        book.Id = _nextId++;
        Console.Write("请输入书名:");
        book.Title = Console.ReadLine()?.Trim() ?? "";
        Console.Write("请输入作者:");
        book.Author = Console.ReadLine()?.Trim() ?? "";
        Console.Write("请输入价格:");
        decimal.TryParse(Console.ReadLine()?.Trim(), out decimal price);
        book.Price = price;
        Console.Write("请输入分类:");
        book.Category = Console.ReadLine()?.Trim() ?? "";
        _books.Add(book);
        Console.WriteLine("图书添加成功!");
    }
    // 查询所有图书
    public static void QueryAllBooks()
    {
        if (_books.Count == 0)
        {
            Console.WriteLine("暂无图书信息!");
            return;
        }
        Console.WriteLine("=== 所有图书信息 ===");
        foreach (var book in _books)
        {
            Console.WriteLine(book);
        }
    }
    // 按书名查询图书
    public static void QueryBookByTitle()
    {
        Console.Write("请输入要查询的书名关键词:");
        string keyword = Console.ReadLine()?.Trim() ?? "";
        var result = _books.Where(b => b.Title.Contains(keyword, StringComparison.OrdinalIgnoreCase)).ToList();
        if (result.Count == 0)
        {
            Console.WriteLine("未找到匹配的图书!");
            return;
        }
        Console.WriteLine($"=== 找到 {result.Count} 本匹配图书 ===");
        foreach (var book in result)
        {
            Console.WriteLine(book);
        }
    }
    // 删除图书
    public static void DeleteBook()
    {
        Console.Write("请输入要删除的图书ID:");
        if (!int.TryParse(Console.ReadLine()?.Trim(), out int id))
        {
            Console.WriteLine("无效的ID!");
            return;
        }
        Book book = _books.FirstOrDefault(b => b.Id == id);
        if (book == null)
        {
            Console.WriteLine("未找到该ID的图书!");
            return;
        }
        _books.Remove(book);
        Console.WriteLine("图书删除成功!");
    }
    // 显示菜单
    public static void ShowMenu()
    {
        Console.WriteLine("\n=== 图书管理系统 ===");
        Console.WriteLine("1. 添加图书");
        Console.WriteLine("2. 查询所有图书");
        Console.WriteLine("3. 按书名查询图书");
        Console.WriteLine("4. 删除图书");
        Console.WriteLine("5. 退出系统");
        Console.Write("请选择操作(1-5):");
    }
    public static void Main(string[] args)
    {
        while (true)
        {
            ShowMenu();
            string choice = Console.ReadLine()?.Trim() ?? "";
            switch (choice)
            {
                case "1":
                    AddBook();
                    break;
                case "2":
                    QueryAllBooks();
                    break;
                case "3":
                    QueryBookByTitle();
                    break;
                case "4":
                    DeleteBook();
                    break;
                case "5":
                    Console.WriteLine("退出系统!");
                    return;
                default:
                    Console.WriteLine("无效操作,请重新选择!");
                    break;
            }
        }
    }
}
相关文章
|
3月前
|
Oracle Java 编译器
【全网最详细】Java JDK下载、安装配置和使用图文教程(从零搭建,2026最新)
JDK是Java开发必备工具包,含编译器、运行环境及开发工具。推荐使用LTS版JDK 25(稳定可靠)或JDK 26(新特性丰富)。本文详解下载、安装、环境变量配置及首个程序运行全流程,零基础也能快速上手。(239字)
|
5月前
|
存储 关系型数据库 MySQL
【超详细】MariaDB下载安装保姆级教程(附安装包,2026最新)
MariaDB是由MySQL创始人Monty主导开发的开源关系型数据库,完全兼容MySQL,性能更优、存储引擎更丰富(如Aria、ColumnStore),GPLv2永久开源。广泛用于Web应用与开发环境,开箱即用,零学习成本。(239字)
|
5月前
|
SQL 关系型数据库 MySQL
5款好用的免费MySQL客户端,新手必备!
告别枯燥命令行!数据库小学妹精选5款免费MySQL图形化工具:Workbench(官方全能)、phpMyAdmin(免安装Web版)、DBeaver(多库支持)、HeidiSQL(Windows轻量之选)、TablePlus(高颜值跨平台)。小白友好,语法高亮、自动补全、可视化结构一应俱全,助你高效学SQL!
|
5月前
|
存储 安全 算法
【分布式】分布式一致性协议:2PC/3PC、Paxos、Raft、ZAB 核心原理、区别(2026必考Raft)
本文系统梳理分布式一致性核心理论与四大协议(2PC/3PC、Paxos、Raft、ZAB),聚焦原理、差异及工程实践。重点强化2026年必考的Raft协议——涵盖Leader选举、日志复制、安全性机制、快照与成员变更等核心考点,构建完整、可落地的知识体系。
|
5月前
|
SQL 关系型数据库 MySQL
击穿 MySQL InnoDB MVCC 底层:从 undo log、Read View 到隔离级别的全链路深度拆解
本文深入解析MySQL InnoDB的MVCC机制,涵盖undo log版本链、Read View可见性规则、各隔离级别行为差异,并纠正脏读/幻读等常见误区,辅以SQL与Spring Boot实战演示,助你透彻理解高并发下数据一致性的底层原理。
397 3
|
6月前
|
存储 缓存 NoSQL
吃透 Redis 核心原理:内存模型、数据结构与持久化,从根上解决 90% 线上问题
本文深入剖析Redis三大核心基石:内存模型(含内存划分、碎片优化、过期与淘汰策略)、底层数据结构(String/Hash/List/Set/ZSet及扩展结构)和持久化机制(RDB/AOF/混合持久化),助开发者从set/get表层用法进阶到根因级问题解决。
630 2
|
6月前
|
大数据 数据库 数据库管理
EmEditor安装教程 Windows版:详细步骤+激活密钥输入+桌面快捷方式创建指南
EmEditor是功能强大的Windows文本编辑器,支持宏、Unicode及大数据/CSV处理,适用于网页设计、编程、出版、数据库与服务器管理等场景。本文详述其安装、激活(含终身密钥)及快捷方式创建方法。
3698 4
|
12月前
|
数据采集 数据可视化 安全
基于python大数据的天气可视化分析预测系统
本研究探讨基于Python的天气预报数据可视化系统,旨在提升天气数据获取、分析与展示的效率与准确性。通过网络爬虫技术快速抓取实时天气数据,并运用数据可视化技术直观呈现天气变化趋势,为公众出行、农业生产及灾害预警提供科学支持,具有重要的现实意义与应用价值。