【C#】クラスのサンプル(図書館)

2023年1月19日

C#で図書館を管理するクラスを作るには、次のような手順が必要です

図書館クラスを定義する C#では、"class “キーワードを使ってクラスを定義することができます。たとえば、次のようになります

class Library
{
    // クラスのメンバーを記述
}

ライブラリクラスのプロパティを定義します。プロパティとは、クラスのオブジェクトに関連づけられた変数のことです。この場合、図書館クラスのプロパティには、図書館の名前、住所、電話番号、図書館で利用できる本などを含めることができます。たとえば、以下のようになります

class Library
{
    public string Name { get; set; }
    public string Address { get; set; }
    public string PhoneNumber { get; set; }
    public List<Book> Books { get; set; }
}

クラスのメソッドを定義します。メソッドとは、クラスのオブジェクトに対して呼び出すことができる関数のことです。この場合、図書館クラスのメソッドには、新しい本の追加、本の削除、本の検索、本のチェックアウトのメソッドが含まれます。たとえば、以下のようになります

class Library
{
    public string Name { get; set; }
    public string Address { get; set; }
    public string PhoneNumber { get; set; }
    public List<Book> Books { get; set; }

    public void AddBook(Book book)
    {
        Books.Add(book);
        Console.WriteLine("Book " + book.Title + " has been added to the library.");
    }

    public void RemoveBook(Book book)
    {
        Books.Remove(book);
        Console.WriteLine("Book " + book.Title + " has been removed from the library.");
    }

    public Book SearchBook(string title)
    {
        foreach (var book in Books)
        {
            if (book.Title == title)
            {
                return book;
            }
        }
        return null;
    }

    public bool CheckOutBook(Book book, string memberId)
    {
        if (book.IsAvailable)
        {
            book.IsAvailable = false;
            book.BorrowerId = memberId;
            Console.WriteLine("Book " + book.Title + " has been checked out to member with ID: " + memberId);
            return true;
        }
        else
        {
            Console.WriteLine("Book " + book.Title + " is not available.");
            return false;
        }
    }
}

これはあくまで例であり、アプリケーションの要件に応じてプロパティやメソッドを調整する必要があることに留意する必要があります。また、必要に応じて、さらにプロパティやメソッドを追加することもできます。たとえば、返却期限を記録するプロパティや、本の状態(返却期限切れ、紛失など)を確認するメソッドを追加することができます。

また、図書館のデータをデータベースに格納して永続化し、Webサイトやモバイルアプリケーションで図書館にある本の情報を表示するために利用することも検討する必要があります。

複雑な作業なので、ソフトウェア開発の専門家に相談し、プロセスを手伝ってもらうと同時に、クラスで何を実現したいかを明確にするのもよいでしょう

はい、図書館の本のクラスも作成する必要があります。以下は、本のクラスを作成する方法の例です

class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public string ISBN { get; set; }
    public bool IsAvailable { get; set; }
    public string BorrowerId { get; set; }
}

このクラスは、本のタイトル、著者、ISBN番号、入手可能性などのプロパティと、その本を借りた借主のIDを持ちます。
Bookクラスのインスタンスを作成し、LibraryクラスのBooksリストに追加することができます。
また、出版日を記録するプロパティや、本の状態(延滞、紛失など)を確認するメソッドなど、必要に応じてプロパティやメソッドを追加していくことも念頭に置いておく必要があります。

複雑な作業ですので、ソフトウェア開発の専門家に相談し、プロセスを手伝ってもらい、また、クラスで何を実現したいのかを明確にすることも必要でしょう

作成した図書館クラスとBookクラスを使用するには、まず、そのクラスのインスタンスを作成する必要があります。たとえば、以下のようになります

Library myLibrary = new Library();
myLibrary.Name = "Main Library";
myLibrary.Address = "123 Main St";
myLibrary.PhoneNumber = "555-555-5555";
myLibrary.Books = new List<Book>();

Book myBook1 = new Book();
myBook1.Title = "The Great Gatsby";
myBook1.Author = "F. Scott Fitzgerald";
myBook1.ISBN = "978-0-7432-9881-1";
myBook1.IsAvailable = true;

Book myBook2 = new Book();
myBook2.Title = "To Kill a Mockingbird";
myBook2.Author = "Harper Lee";
myBook2.ISBN = "978-0-4463-1020-1";
myBook2.IsAvailable = true;

myLibrary.Books.Add(myBook1);
myLibrary.Books.Add(myBook2);

そして、クラスのプロパティやメソッドを使用して、オブジェクトと対話することができます。例えば

// Add a new book to the library
Book myBook3 = new Book();
myBook3.Title = "The Catcher in the Rye";
myBook3.Author = "J.D. Salinger";
myBook3.ISBN = "978-0-14-118686-5";
myBook3.IsAvailable = true;
myLibrary.AddBook(myBook3);

// Search for a book in the library
Book foundBook = myLibrary .SearchBook("To Kill a Mockingbird");
if (foundBook != null)
{
Console.WriteLine("Book found: " + foundBook.Title + " by " + foundBook.Author);
}
else
{
Console.WriteLine("Book not found.");
}

// Check out a book from the library
myLibrary.CheckOutBook(foundBook, "M123");

// Check the availability of a book
if (foundBook.IsAvailable)
{
Console.WriteLine("Book " + foundBook.Title + " is available.");
}
else
{
Console.WriteLine("Book " + foundBook.Title + " is not available. It is borrowed by member with ID " + foundBook.BorrowerId);
}

上記のコードはあくまで例であり、アプリケーションの要件に応じて調整する必要があることに留意してください。また、必要に応じてプロパティやメソッドを追加することもできます。

また、図書館のデータをデータベースに保存して永続化し、ウェブサイトやモバイルアプリケーションで図書館にある本の情報を表示するために使用したい場合もあることを念頭に置いておくことが重要です。
複雑な作業なので、ソフトウェア開発の専門家に相談し、プロセスを手伝ってもらうとよいでしょう。また、クラスで何を実現したいかを明確にすることも必要です

C#,学習,設計

Posted by hidepon