プロジェクト構成
CoddyのC#ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 62/70。
チャレンジ
簡単図書館システムプロジェクトの基礎を築きましょう!今後のレッスンを通じて、完全な図書館管理アプリケーションへと成長していく基本的なファイル構造を作成します。
コードを4つのファイルに整理し、それぞれに特定の役割を持たせます:
Book.cs: このファイルはBookモデルを保持します。まずは、LibrarySystem名前空間にBookクラスを作成し、3つの自動実装プロパティTitle(string)、Author(string)、およびIsAvailable(bool、デフォルトはtrue) を持たせます。タイトルと著者をパラメータとして受け取るコンストラクタを追加してください。User.cs: このファイルはUserモデルを含みます。同じ名前空間に、Name(string) とMemberId(int) の2つのプロパティを持つUserクラスを作成します。両方の値を受け取るコンストラクタを含めてください。Library.cs: ここにコアロジックを記述します。Nameプロパティ (string) と、それを設定するためのコンストラクタを持つLibraryクラスを作成します。"{Name} Library System Initialized"という形式の文字列を返すGetInfo()というメソッドを追加してください。Program.cs: ここですべてをまとめます。これは、クラスのインスタンスを作成し、構造が正しく機能することを確認するためのエントリポイントです。
3つの入力を受け取ります:
- 図書館の名前
title|author形式の書籍エントリname|memberId形式のユーザーエントリ
指定された名前で Library インスタンスを、提供されたタイトルと著者で Book を、提供された名前とメンバーIDで User を作成します。その後、次の3行を出力してください:
- ライブラリの
GetInfo()を呼び出した結果 Book: {Title} by {Author} - Available: {IsAvailable}形式の書籍情報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)この構造は単一責任の原則(Single Responsibility Principle)に従っており、各ファイルが1つの特定の関心事を処理します。今後のレッスンでは、これらのクラスを貸出ロジック、検索機能、および完全なコンソールインターフェースで拡張していきます!
自分で試してみよう
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: libraryName を使用して Library インスタンスを作成する
// TODO: title と author を使用して Book インスタンスを作成する
// TODO: name と member ID を使用して User インスタンスを作成する
// TODO: GetInfo() を使用してライブラリ情報を出力する
// TODO: 次の形式で本の情報を出力する: Book: {Title} by {Author} - Available: {IsAvailable}
// TODO: 次の形式でユーザー情報を出力する: User: {Name} (ID: {MemberId})
}
}
}