Menu
CoddyTech

项目结构

本课属于 Coddy C# 学习旅程的“面向对象编程”单元。第 62 课,共 70 课。

challenge icon

挑战

简单

让我们为你的 Library System 项目打好基础!你将创建基本的文件结构,并在接下来的课程中逐步扩展它,最终构建成完整的图书馆管理应用程序。

你将把代码组织到 4 个文件中,每个文件都有特定的职责:

  • Book.cs:这个文件将存放 Book 模型。现在,先在 LibrarySystem 命名空间中创建一个 Book 类,并为它添加 3 个自动实现的属性:Title(字符串)、Author(字符串)和 IsAvailable(布尔值,默认值为 true)。再添加一个以书名和作者为参数的构造函数。
  • User.cs:这个文件将存放 User 模型。在同一个命名空间中创建一个 User 类,并为它添加两个属性:Name(字符串)和 MemberId(整数)。添加一个接收这两个值的构造函数。
  • Library.cs:核心逻辑将放在这里。创建一个 Library 类,并为它添加一个 Name 属性(字符串)和一个用于设置该属性的构造函数。再添加一个名为 GetInfo() 的方法,让它返回格式为 "{Name} Library System Initialized" 的字符串。
  • Program.cs:在这里把所有内容组合起来。这里是程序的入口,你将在这里创建类的实例,并验证结构是否正常运行。

你将收到 3 个输入:

  • 图书馆名称
  • 格式为 title|author 的图书条目
  • 格式为 name|memberId 的用户条目

使用给定的名称创建一个 Library 实例,使用提供的书名和作者创建一个 Book 实例,并使用提供的姓名和会员 ID 创建一个 User 实例。然后打印 3 行内容:

  1. 调用图书馆的 GetInfo() 方法后得到的结果
  2. 格式为 Book: {Title} by {Author} - Available: {IsAvailable} 的图书信息
  3. 格式为 User: {Name} (ID: {MemberId}) 的用户信息

例如,输入如下:

City Central
The Great Gatsby|F. Scott Fitzgerald
Alice Johnson|1001

输出应为:

City Central Library System Initialized
Book: The Great Gatsby by F. Scott Fitzgerald - Available: True
User: Alice Johnson (ID: 1001)

这种结构遵循单一职责原则,每个文件只负责一个特定的方面。在接下来的课程中,你将为这些类添加借阅逻辑、搜索功能和完整的控制台界面!

亲手试试

using System;

namespace LibrarySystem
{
    class Program
    {
        public static void Main(string[] args)
        {
            // 读取输入
            string libraryName = Console.ReadLine();
            string bookInput = Console.ReadLine();
            string userInput = Console.ReadLine();

            // 解析图书输入(格式:title|author)
            string[] bookParts = bookInput.Split('|');
            string bookTitle = bookParts[0];
            string bookAuthor = bookParts[1];

            // 解析用户输入(格式:name|memberId)
            string[] userParts = userInput.Split('|');
            string userName = userParts[0];
            int memberId = Convert.ToInt32(userParts[1]);

            // TODO: 用库名称创建 Library 实例

            // TODO: 用书名和作者创建 Book 实例

            // TODO: 用姓名和会员 ID 创建 User 实例

            // TODO: 使用 GetInfo() 输出库信息

            // TODO: 按以下格式输出图书信息:Book: {Title} by {Author} - Available: {IsAvailable}

            // TODO: 按以下格式输出用户信息:User: {Name} (ID: {MemberId})
        }
    }
}

面向对象编程中的所有课

自己练习: C# 在线编译器