【C#】クラスのサンプル(部屋の管理ができるホテル)

ホテルの客室を管理するクラスをC#で作成するには、次のような手順が必要です

ルームクラスを定義する C#では、"class “キーワードでクラスを定義することができます。例えば

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

ルームクラスのプロパティを定義します。プロパティとは、クラスのオブジェクトに関連づけられた変数のことです。この場合、部屋クラスのプロパティは、部屋番号、部屋タイプ、ベッド数、部屋料金などが考えられます。たとえば、以下のようになります

class Room
{
    public int RoomNumber { get; set; }
    public string RoomType { get; set; }
    public int NumberOfBeds { get; set; }
    public double RoomRate { get; set; }
}

クラスのメソッドを定義します。メソッドとは、クラスのオブジェクトに対して呼び出すことができる関数のことです。この場合、room クラスのメソッドには、部屋の空き状況を確認するメソッド、部屋を予約するメソッド、予約を取り消すメソッドが考えられます。たとえば、以下のようになります

class Room
{
    public int RoomNumber { get; set; }
    public string RoomType { get; set; }
    public int NumberOfBeds { get; set; }
    public double RoomRate { get; set; }
    public bool IsAvailable { get; set; }

    public void ReserveRoom()
    {
        if (IsAvailable)
        {
            IsAvailable = false;
            Console.WriteLine("Room " + RoomNumber + " has been reserved.");
        }
        else
        {
            Console.WriteLine("Room " + RoomNumber + " is not available.");
        }
    }

    public void CancelReservation()
    {
        if (!IsAvailable)
        {
            IsAvailable = true;
            Console.WriteLine("The reservation for Room " + RoomNumber + " has been canceled.");
        }
        else
        {
            Console.WriteLine("Room " + RoomNumber + " is not currently reserved.");
        }
    }
}

これはあくまで例であり、アプリケーションの要件に応じてプロパティやメソッドを調整する必要があることに留意する必要があります。また、必要に応じて、さらにプロパティやメソッドを追加することもできます。例えば、予約を行ったゲストの名前を記録するプロパティや、日付範囲ごとに部屋の空き状況をチェックするメソッドを追加することができます。

さらに、ホテルそのものを管理するクラスも作成し、ホテル名や所在地などのプロパティ、全室の空室状況の確認、稼働率の計算、空室リストの表示などのメソッドを持たせるとよいでしょう。

また、部屋のデータをデータベースに格納して永続化し、それを使ってWebサイトやモバイルアプリケーションでホテルの部屋の情報を表示することも考えられます。

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

作成したRoomクラスを使用するには、まず、そのクラスのインスタンスを作成する必要があります。例えば

Room myRoom = new Room();
myRoom.RoomNumber = 101;
myRoom.RoomType = "Deluxe";
myRoom.NumberOfBeds = 2;
myRoom.RoomRate = 120;

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

Console.WriteLine("Room Number: " + myRoom.RoomNumber); // Output: 101
Console.WriteLine("Room Type: " + myRoom.RoomType); // Output: Deluxe
Console.WriteLine("Number of Beds: " + myRoom.NumberOfBeds); // Output: 2
Console.WriteLine("Room Rate: " + myRoom.RoomRate); // Output: 120
Console.WriteLine("Availability: " + myRoom.IsAvailable); // Output: true

myRoom.ReserveRoom();

Console.WriteLine("Availability: " + myRoom.IsAvailable); // Output: false

myRoom.CancelReservation();

Console.WriteLine("Availability: " + myRoom.IsAvailable); // Output: true

注意すべきは、上記のコードはあくまで例であり、アプリケーションの要件に応じて調整する必要があることです。また、複数の部屋を一度に管理するために部屋のリストを作成したり、ホテル自体を管理するためのクラスを作成したりすることもできます

以下は、ホテルを管理するクラスを作成する例です

class Hotel
{
    public string Name { get; set; }
    public string Location { get; set; }
    public List<Room> Rooms { get; set; }

    public void CheckAvailability()
    {
        Console.WriteLine("Rooms available:");
        foreach (var room in Rooms)
        {
            if (room.IsAvailable)
            {
                Console.WriteLine(room.RoomNumber);
            }
        }
    }

    public double CalculateOccupancyRate()
    {
        int totalRooms = Rooms.Count;
        int occupiedRooms = 0;
        foreach (var room in Rooms)
        {
            if (!room.IsAvailable)
            {
                occupiedRooms++;
            }
        }
        return (double)occupiedRooms / totalRooms;
    }
}

Hotelクラスのインスタンスを作成し、そのクラスのプロパティとメソッドを使用して、オブジェクトと対話することができます

Hotel myHotel = new Hotel();
myHotel.Name = "Grand Hotel";
myHotel.Location = "New York";
myHotel.Rooms = new List<Room> { myRoom1, myRoom2, myRoom3};

myHotel.CheckAvailability();
Console.WriteLine("Occupancy Rate: " + myHotel.CalculateOccupancyRate());

C#,学習,設計

Posted by hidepon