C#如何在我的酒店管理系统中添加继承
我想在我的酒店管理系统中添加继承和更多的类,有什么想法吗? 我正在开发控制台应用程序,如果有人能给我更多的添加到这个程序中,我将不胜感激 该计划旨在复制一个基本的酒店客房预订计划。创建hotel number的实例后,通过调用checkIn()方法,程序检查是否有可用的房间,如果有,则保留房间 但是,如果在分配所有房间后,有人从一个房间(通过checkOut()方法)退房(例如1号房间),然后试图入住该房间,则该方法不起作用。当checkIn()调用hasRoomsAvailable()方法时会出现问题,在这种情况下,由于currentRoomNumber为5,该方法返回false而不是trueC#如何在我的酒店管理系统中添加继承,c#,class,inheritance,C#,Class,Inheritance,我想在我的酒店管理系统中添加继承和更多的类,有什么想法吗? 我正在开发控制台应用程序,如果有人能给我更多的添加到这个程序中,我将不胜感激 该计划旨在复制一个基本的酒店客房预订计划。创建hotel number的实例后,通过调用checkIn()方法,程序检查是否有可用的房间,如果有,则保留房间 但是,如果在分配所有房间后,有人从一个房间(通过checkOut()方法)退房(例如1号房间),然后试图入住该房间,则该方法不起作用。当checkIn()调用hasRoomsAvailable()方法时会
using System;
namespace HotelManagement
{
//otel sınıfı
public class Hotel
{
private bool[] available;
private int totalNumberOfRooms;
private int currentRoomNumber;
// oda sayısını bilirleyecek
private Hotel(int totalNumberOfRooms)
{
this.totalNumberOfRooms = totalNumberOfRooms;
available = new bool[totalNumberOfRooms];
for (int i = 0; i < totalNumberOfRooms; i++)
available[i] = true;
}
//Returns true if room is available
private bool hasRoomsAvailable()
{
if (currentRoomNumber < totalNumberOfRooms &&
available[currentRoomNumber])
return available[currentRoomNumber];
else
return false;
}
//Time Complexity: O(1)
//en azından bir oda olup olmadığını kontrol eder ve rezerv eder
private int checkIn()
{
if (hasRoomsAvailable())
{
available[currentRoomNumber] = false;
return ++currentRoomNumber;
}
else
return -1;
}
//Check out method
private void checkOut(int roomNumber)
{
if (roomNumber <= totalNumberOfRooms && roomNumber != -1)
{
if (available[roomNumber - 1] == false)
{
available[roomNumber - 1] = true;
Console.WriteLine("Check out oda: {0}", roomNumber);
}
else
Console.WriteLine("geçersiz Check Out : {0}", roomNumber);
}
else
Console.WriteLine("yanlış oda numarası: {0}", roomNumber);
}
//Time Complexity: O(1)
public static void Main(string[] args)
{
//Create an instance of 5 odalı bir otel
Hotel hotel = new Hotel(5);
int roomNum = -1;
if (hotel.hasRoomsAvailable())
{
roomNum = hotel.checkIn();
Console.WriteLine("tahsis edilen oda: {0}", roomNum);
roomNum = hotel.checkIn();
Console.WriteLine("tahsis edilen oda: {0}", roomNum);
roomNum = hotel.checkIn();
Console.WriteLine("tahsis edilen oda: {0}", roomNum);
roomNum = hotel.checkIn();
Console.WriteLine("tahsis edilen oda: {0}", roomNum);
roomNum = hotel.checkIn();
Console.WriteLine("tahsis edilen oda: {0}", roomNum);
}
hotel.checkOut(1);
roomNum = hotel.checkIn();
Console.WriteLine("tahsis edilen oda budur: {0}", roomNum);
//pause program output on console
Console.ReadLine();
}
}
}
使用系统;
命名空间酒店管理
{
//奥特尔sınıfı
公务舱酒店
{
私人bool[]可用;
私人房间;
私人房间号码;
//奥达·萨伊恩·比利勒耶切克(oda sayısınıbilirleyecek)
私人酒店(国际总客房数)
{
this.totalNumberOfRooms=总房间数;
可用=新bool[房间总数];
对于(int i=0;i 如果(roomNumber作为一种通用方法,我建议编程时完全按照人类的方式(没有PC).他们会有一张纸写下当前房间号吗?可能不会。他们会有一张包含所有房间的桌子吗?是的。当有人入住时,他们会在桌子上加一个十字,当有人退房时会把它擦掉吗?是的。他们如何找到一个空房间
解决您的问题不需要继承。您正在尝试按照房间号的顺序分配房间。您可以使用currentRoomNumber
跟踪这一点。它不是这样工作的。您可以根据床数、平方米大小、价格、楼层等来分配房间
相反,您应该遍历数组bool available[]
并找到一个false
。因为这看起来像是学习或家庭作业,所以我将把实现留给您。提示:使用for
循环,跟踪索引并将从循环中打断
对于面向对象的设计,可以执行以下操作:
- 写下管理酒店意味着什么的句子
- 识别名词,它们将成为类
- 识别动词,它们将成为方法
- 检查同义词,例如“房间”=“公寓”或“结帐”=“离开”,并仅选择一个单词
- 把动词赋给名词
- 想一想哪个动词需要哪些信息。如果信息不是名词自己知道的话,这将成为参数
main()方法看起来很像测试。请阅读“单元测试”,并将测试代码从酒店管理应用程序中分离出来。作为一种通用方法,我建议您完全按照人类(没有PC)的方式进行编程.他们会有一张纸写下当前房间号吗?可能不会。他们会有一张包含所有房间的桌子吗?是的。当有人入住时,他们会在桌子上加一个十字,当有人退房时会把它擦掉吗?是的。他们如何找到一个空房间
解决您的问题不需要继承。您正在尝试按照房间号的顺序分配房间。您可以使用currentRoomNumber
跟踪这一点。它不是这样工作的。您可以根据床数、平方米大小、价格、楼层等来分配房间
相反,您应该遍历数组bool available[]
并找到一个false
。因为这看起来像是学习或家庭作业,所以我将把实现留给您。提示:使用for
循环,跟踪索引并将从循环中打断
对于面向对象的设计,可以执行以下操作:
- 写下管理酒店意味着什么的句子
- 识别名词,它们将成为类
- 识别动词,它们将成为方法
- 检查同义词,例如“房间”=“公寓”或“结帐”=“离开”,并仅选择一个单词
- 把动词赋给名词
- 想一想哪个动词需要哪些信息。如果信息不是名词自己知道的话,这将成为参数
main()方法看起来很像测试。请阅读“单元测试”并将测试代码与您的酒店管理应用程序分开。如果您真的对代码不起作用的原因感兴趣,那么在签出时,您不会将变量currentRoomNumber
设置为您刚签出的房间号。在签出方法中添加此行可修复以下问题:
available[roomNumber - 1] = true;
currentRoomNumber = roomNumber - 1;
Console.WriteLine("Check out oda: {0}", roomNumber);
如果您真的对代码不起作用的原因感兴趣,那么在签出时,您不会将变量currentRoomNumber
设置为刚签出的房间号。在签出方法中添加此行可修复以下问题:
available[roomNumber - 1] = true;
currentRoomNumber = roomNumber - 1;
Console.WriteLine("Check out oda: {0}", roomNumber);
你为什么要这么做