Я пишу консольное приложение C#, которое позволяет пользователю устанавливать начальную температуру и регулировать ее, но я не получаю желаемый результат - PullRequest
0 голосов
/ 03 февраля 2020

Вот мой исходный код:

    class Program
    {
        static void Main(string[] args)
        {

            while (true)
            {
                Console.WriteLine("Set initial Temperature");
                int set_temperature = int.Parse(Console.ReadLine());
                ThermostatView.ControlTemperature(set_temperature);
                Console.WriteLine("Continue? ");
                string Continue = Console.ReadLine();
                if (Continue == "no".ToUpper())
                {
                    break;
                }
            }

        }
    }


    class Thermostat 
    {

        int defaultTemp { get; set; } 
        int decrease { get; set; }
        int increase { get; set; }


        public Thermostat()
        { }
        public Thermostat(int DefaultTemp) 
        {
            defaultTemp = DefaultTemp;
            CurrentTemperature(defaultTemp);


        }

        public void CurrentTemperature(int defaultTemp)
        {
            Console.WriteLine("Current Temperature: {0}", defaultTemp);
        }

        public void ControlThermostat()
        {

            int Choice;
            Console.WriteLine("Increase(1) or Decrease(2) Temperature");
            Choice = int.Parse(Console.ReadLine());
            ValidateControl(Choice);


        }

        public void ValidateControl(int choice) 
        {


                if (choice == 2)
                {
                    if(defaultTemp==0)
                    {
                        Console.WriteLine("Temperature at Minimum Setting!");

                    }
                    else {
                            Console.WriteLine("Decrease by: ");
                            decrease = int.Parse(Console.ReadLine());
                            DecreaseTemperature(decrease);
                         }
                }
                if (choice == 1)
                {
                    if(defaultTemp == 100) 
                        {
                            Console.WriteLine("Temperature at Maximum Setting!");

                        }
                    else
                        {
                             Console.WriteLine("Increase by: ");
                             increase = int.Parse(Console.ReadLine());
                             IncreaseTemperature(increase);
                        }

                }
         }

        public void IncreaseTemperature(int increaseTemp) 
        {

            defaultTemp =+ increaseTemp;
            CurrentTemperature(defaultTemp);
        }

        public void DecreaseTemperature(int decreaseTemp)
        {
            defaultTemp =- decreaseTemp;
            CurrentTemperature(defaultTemp);

        }


    }

    class ThermostatView 
    {



        public static void ControlTemperature(int Temperature) 
        {
            Thermostat thermostat = new Thermostat(Temperature);
            thermostat.ControlThermostat();
        }

    }


}

Вот мой вывод:

Окно консоли:

Установка начальной температуры 72 (ввод данных пользователем)

Текущая температура: 72

Повышение (1) или уменьшение (2) температуры

2 (ввод пользователя)

Уменьшение на: 40 (ввод пользователя)

Текущая температура: -40

Как получить начальную температуру, которая в этом случае была изменена на 72, вместо увеличения или уменьшения значения 0?

1 Ответ

2 голосов
/ 03 февраля 2020

Ваша функция понижения температуры:

    defaultTemp =- decreaseTemp;

Это неправильный оператор, и он должен быть

    defaultTemp -= decreaseTemp;

Вы сделали ту же ошибку с = +, которая должна быть + =

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...