Правильно ли использование класса?
Постановка задачи:
Необходимо написать программу, имитирующую работу телевизора. Предусмотрите в нем возможность переключения каналов: следующий канал, предыдущий канал, переход к каналу по номеру. Учтите, что канал не может иметь отрицательный номер. При запуске программа должна показывать текущий канал и предлагать переключить канал по нажатию на какую-либо кнопку на клавиатуре. Отображать текущий канал можно просто в виде номера и названия. После запуска приложения программа должна постоянно предлагать переключать каналы и только после того, как пользователь решит выключить телевизор, завершать программу.
Указания:
Роль телевизора должен исполнять класс с именем TV.
Класс TV должен иметь:
поля:
- currentChannel - текущий канал
- channelLimit - количество каналов
конструктор:
- TV(currentChannel) - инициализирует свойства класса. Можно сделать еще один
конструктор, в котором будет задаваться еще и количество каналов.три метода:
- NextChannel() - переключает телевизор на следующий канал
- PreviousChannel() - переключает телевизор на предыдущий канал
- MoveToChannel(channel) - переключает телевизор на указанный канал
Мое решение:
using System;
namespace HomeTasks
{
internal class Program
{
static void Main(string[] args)
{
TV tv = new TV();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HomeTasks
{
internal class TV
{
public int currentChannel = 1;
public int channelLimit = 5;
public TV()
{
string answer;
Console.WriteLine($"Limit of channels: {channelLimit}");
do
{
Console.WriteLine($"Curent channel: {currentChannel}");
Console.WriteLine($"\tWrite N to go next channel!\n\tWrite P to go previous channel!\n\tWrite G to go channel wich you want!\n\tWrite Stop to exit!");
Console.Write("Enter your answer: ");
answer = Console.ReadLine().ToLower().Trim();
if (answer == "n")
NextChannel();
else if (answer == "p")
{
PreviousChannel();
}
else if (answer == "g")
{
Console.Write("Введите число: ");
int numberOfChannel = Convert.ToInt32(Console.ReadLine());
MoveToChannel(numberOfChannel);
}
}
while (answer != "stop");
}
public void NextChannel()
{
currentChannel++;
if (currentChannel > channelLimit)
currentChannel = 1;
}
public void PreviousChannel()
{
currentChannel--;
if (currentChannel < 1)
currentChannel = channelLimit;
}
public void MoveToChannel(int number)
{
currentChannel = number;
if (number > channelLimit)
{
currentChannel = 1;
}
}
}
}
Правильно ли я решил задачу в плане ТЗ?