Правильно ли использование класса?

Постановка задачи:

Необходимо написать программу, имитирующую работу телевизора. Предусмотрите в нем возможность переключения каналов: следующий канал, предыдущий канал, переход к каналу по номеру. Учтите, что канал не может иметь отрицательный номер. При запуске программа должна показывать текущий канал и предлагать переключить канал по нажатию на какую-либо кнопку на клавиатуре. Отображать текущий канал можно просто в виде номера и названия. После запуска приложения программа должна постоянно предлагать переключать каналы и только после того, как пользователь решит выключить телевизор, завершать программу.

Указания:

Роль телевизора должен исполнять класс с именем 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;
            }  
        }
    }
}

Правильно ли я решил задачу в плане ТЗ?


Ответы (0 шт):