Member 13310754 Ответов: 2

Не уверен, какой аспект неправильный


Я не уверен, что я сделал не так в этом случае, просто нужна небольшая помощь. Вот что такое инструкции по назначению:

Создайте новый класс под названием Course со следующей спецификацией:

Три открытых поля типа String, таких как название курса , имя преподавателя, преподающего этот курс, и предложение курса (независимо от того, предлагается ли класс онлайн или на месте)

Два открытых поля типа целых чисел, таких как номер курса и раздел.

Один общедоступный метод, который устанавливает предложение курса на основе раздела курса, который вводит пользователь. Этот метод будет принимать раздел курса в качестве параметра и проверять раздел курса с помощью оператора if/else. В этом задании предположим, что если раздел курса больше или равен 200, то предложение курса будет установлено равным онлайн, в противном случае оно будет установлено равным onsite.

Попросите пользователя предоставить информацию о курсе, например название, номер, раздел и инструктор, преподающий этот курс, как это может быть на экране ниже:

Когда пользователь нажимает на кнопку Показать информацию о курсе, вы хотите сделать следующее:

Создайте экземпляр нового класса курса и установите поля класса, такие как имя, номер, раздел и имя преподавателя, равными тому, что вводит пользователь.

Отображение значений полей курса в списке. Я хочу, чтобы вы использовали список, а не текстовое поле для отображения информации в этом задании. Таким образом, когда пользователь вводит информацию о курсе в четыре текстовых поля слева и нажимает кнопку “отобразить информацию о курсе”, вы должны увидеть эту информацию о курсе, отображаемую в списке, но сначала вы должны установить поля курса, как указано в шаге i выше. Смотрите ниже :

Обратите внимание, что у меня есть онлайн-предложение курса. Это было определено путем вызова метода курса и передачи ему раздела курса, введенного пользователем. На снимке экрана выше пользователь вводит 201 для раздела курса. В соответствии с методом, который вы должны создать в новом классе, курс, так как введенный номер раздела (201) больше или равен 200, метод устанавливает поле курса, предложение, в онлайн-режиме.


мой код:
namespace WPFAssign3
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }





        private void infobtn_Click(object sender, RoutedEventArgs e)
        {

            int Section = int.Parse(txtsection.Text);

            Course myCourse = new Course();

            myCourse.instructor = txtinstructor.Text;
            myCourse.name = txtname.Text;
            myCourse.Number = int.Parse(txtnumber.Text);



            myCourse.SetOffering(Section);

            courselst.Items.Add(myCourse.name);
            courselst.Items.Add(myCourse.instructor);
            courselst.Items.Add(myCourse.Number);
            courselst.Items.Add(Section);
            courselst.Items.Add(myCourse.GetOffering());

        }

        private void clearbtn_Click(object sender, RoutedEventArgs e)
        {
            courselst.Items.Clear();
        }
    }
    class Course
    {
        public String name;
        public String instructor;
        private int Offering;
        public int Number;
        public int Section;

        public int GetOffering()
        {
            return Offering;
        }

        public void SetOffering(int Section);

        {
         if (Section < 200) 
           {
            Offering = "Onsite"
            }
           else
           { 
           Offering = "Online"
            }
         }
      
  
         
         
    }

        



 
    }
}


Что я уже пробовал:

Я много чего перепробовал, но не могу понять, где я ошибся.

2 Ответов

Рейтинг:
0

OriginalGriff

Offering это int - значит, вы не можете присвоить ему строку:

private int Offering;
...

public int GetOffering()
{
    return Offering;
}

public void SetOffering(int Section);
{
 if (Section < 200)
   {
    Offering = "Onsite"
    }
   else
   {
   Offering = "Online"
    }
 }
Наверное, вы хотите их изменить ints to string


Atlapure Ambrish

Кроме того, сделайте свой код защитным, используя TryParse вместо Parse, с помощью TryParse вы бы убедились, что значение текстового поля является числом (также вы не получите исключение), если это не так, то обработайте его правильно и покажите требуемое сообщение конечному пользователю.

Рейтинг:
0

BillWoodruff

Цитата:
Я не уверен, что я сделал неправильно в этом случае,
Сейчас я вам все расскажу ... и я не имею в виду это в негативном смысле ... что "неправильное" здесь есть нет зло" ... это "недостаток" тестирования, наблюдений, гипотез и экспериментов.

Вы либо не пробовали запускать свой код и наблюдать, где и как возникают ошибки, экспериментировать с изменениями, устанавливать точки останова, чтобы попытаться точно определить, где код ломается, и т. д. Или, если вы это сделали тот- по неизвестным причинам Вы нам об этом не рассказываете.

Этот процесс называется "отладкой", и, если вы не научитесь делать это ... а это требует времени ... вы никогда не станете программистом.

Я хотел бы видеть, как вы входите в свой код, устанавливаете точки останова, запускаете код в режиме отладки, одношагово просматриваете код, просматривая значения переменных при попадании в каждую точку останова, и делаете комментарии в коде, где возникают ошибки.

Учитывая, что среда разработки мирового класса доступна бесплатно (Visual Studio) и имеет отличные инструменты для отладки, я не вижу причин, по которым вы не можете этого сделать ... займись делом прямо сейчас.

Когда вы действительно застрянете, а вы это сделаете, вернитесь сюда с конкретными вопросами, конкретными цитатами кода и описаниями ошибок.

Каждая ошибка, возникающая в вашем коде, должна чему-то вас научить !