C# 第八章 课后习题(3-2):实现书籍信息管理系统


系统需求与设计:

在开始编码之前,我们需要明确系统的基本需求。我们的系统应该能够:

  1. 存储书籍的基本信息,如书名、作者、出版社、出版时间和定价。
  2. 允许用户通过控制台界面添加新书籍。
  3. 允许用户编辑和删除现有书籍信息。
  4. 将书籍信息保存到文件中,并在程序启动时加载。

基于这些需求,我们设计了一个包含书籍类(Book)和程序主类(Program)的系统。书籍类负责存储单本书籍的信息,而程序主类则包含用户界面和业务逻辑。

实现细节:

我们的系统使用C#语言编写,涉及到的主要技术点包括文件操作、控制台输入输出和基本的类设计。以下是代码实现的关键部分:

  1. 书籍类(Book)
    我们定义了一个书籍类,包含书名、作者、出版社、出版时间和定价等属性。同时,我们重写了ToString方法,以便在控制台中打印书籍的详细信息。

  2. 主程序(Program)
    主程序类包含Main方法,这是程序的入口点。在这里,我们加载书籍数据,显示菜单,并根据用户的选择执行相应的操作。

  3. 加载和保存书籍数据(LoadBooks和SaveBooks)
    我们定义了LoadBooks方法来从文件中加载书籍数据,并定义了SaveBooks方法来保存当前的书籍列表到文件中。这些方法使用文件流和字符串操作来实现。

  4. 添加书籍(AddBook)
    AddBook方法允许用户输入新书籍的信息,并将其添加到书籍列表中。之后,调用SaveBooks方法将更新后的书籍列表保存到文件。

  5. 编辑书籍(EditBook)
    EditBook方法允许用户选择并编辑现有书籍的信息。如果找到对应的书籍,用户可以更新书籍的各个字段。

  6. 删除书籍(DeleteBook)
    DeleteBook方法允许用户删除书籍列表中的特定书籍,并更新文件中的数据。

代码实现

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace P3_2
{
   
    internal class Program
    {
   
        // 主程序入口点
        static void Main(string[] args)
        {
   
            string filePath = "books.txt"; // 定义书籍信息存储的文件路径
            List<Book> books = LoadBooks(filePath); // 从文件加载书籍信息
            bool exit = false; // 控制程序退出的布尔变量

            // 主循环,显示菜单并处理用户输入
            while (!exit)
            {
   
                Console.WriteLine("1. 查看书籍信息");
                Console.WriteLine("2. 添加书籍");
                Console.WriteLine("3. 编辑书籍");
                Console.WriteLine("4. 删除书籍");
                Console.WriteLine("5. 退出");
                Console.Write("请选择操作:");

                int choice = Convert.ToInt32(Console.ReadLine()); // 获取用户选择

                // 根据用户选择执行相应的操作
                switch (choice)
                {
   
                    case 1:
                        foreach (var book in books)
                        {
   
                            Console.WriteLine(book); // 打印每本书的详细信息
                        }
                        break;
                    case 2:
                        AddBook(ref books, filePath); // 添加新书籍
                        break;
                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值