Member 14115626 Ответов: 3

Получить набор функций и конструктор


Привет, я нахожусь на своей первой неделе объектно-ориентированного класса с использованием C#, до сих пор я изучил основные вещи, но мое задание сложное, и я должен сделать следующее:

Создайте класс Employee, который включает в себя три части информации в качестве членов данных
- имя (тип string), фамилия (тип string) и месячная зарплата (тип floating point).
Ваш класс должен иметь конструктор, который инициализирует три элемента данных.
Предоставьте набор и получите функции для каждого элемента данных.
Создайте два объекта Employee и отобразите годовую зарплату каждого объекта.
Затем дайте каждому сотруднику повышение на 10% и снова покажите годовую зарплату каждого сотрудника

То, что у меня есть до сих пор, это потому, что я погуглил его и нашел что-то похожее, но я не смог успешно скомпилировать, я все время использую C#

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

public class Employee 
{
    
    private string firstName_;
    private string lastName_;
    private double monthlySalary_;
    
    public Employee(string first, string last, double mSalary) 
    {
        firstName = first;
        lastName = last;
        monthlySalary = mSalary;
    }
    //starts firstname string get set
    public string firstName
    {
        get
        {
             return firstName_;
        }    
        set
        {
            firstName_ = first;
        }
    }  //end firstname string get set

    //starts lastname string get set
    public string lastName
    {
        get
        {
            return lastName_;
        }
        set
        {
            lastName_ = last;
        }  
    }   //end lastname string get set

    //starts monthlySalary string get set
    public double monthlySalary
    {
        get
        {
            return monthlySalary_;
        }
        set
        {
            monthlySalary_ = mSalary;
        }
    }   //end of monthlysalary double get set
}

//employee test

public class Employeetest
{
    public static void Main(string[] args)
    {
        employee E1 = new employee ("John", "Doe", 3000.00);
        employee E1 = new employee ("Jane", "Doe", 4000.00);
        
        //display information
        System.Console.WriteLine("Last name is {0}", "First name is {1}, with a monthly salary of {2}",
        E1.getlastName, E1.getfirstName, E1.getmonthlySalary);

        System.Console.WriteLine("Last name is {0}", "First name is {1}, with a monthly salary of {2}",
        E2.getlastName, E2.getfirstName, E2.getmonthlySalary);
    }
    
}

0x01AA

"но я не смог успешно скомпилировать": Пожалуйста, объясните подробнее, например, какое-либо сообщение об ошибке? Кстати. в этом примере есть плохие соглашения об именовании переменных, но я думаю, что это не главная проблема на данный момент.

Большой палец вверх: вы здесь с сегодняшнего дня и пометили код, как и должно быть.

3 Ответов

Рейтинг:
5

RickZeeland

public class Employee
{
    public Employee(string first, string last, double mSalary)
    {
        FirstName = first;
        LastName = last;
        MonthlySalary = mSalary;
    }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public double MonthlySalary { get; set; }

    public double YearlySalary { get { return MonthlySalary * 12; } }

    public override string ToString()
    {
        return string.Format("Last name is {0}, First name is {1}, with a Yearly salary of {2}", FirstName, LastName, YearlySalary);
    }
}

public class Employeetest
{
    public static void Main()
    {
        Employee E1 = new Employee("John", "Doe", 3000.00);
        Employee E2 = new Employee("Jane", "Doe", 4000.00);

        //display information
        System.Console.WriteLine(E1.ToString());
        System.Console.WriteLine(E2.ToString());
    }
}


Member 14115626

Спасибо! Если я хочу умножить месячную зарплату на 12, чтобы получить годовую зарплату, куда мне поместить множитель * 12?

RickZeeland

Смотрите обновленное решение :)

Рейтинг:
25

Richard MacCutchan

Вы объявили свои три вариабельных имени с конечными символами подчеркивания. Однако в вашем конструкторе вы используете имена без подчеркивания, отсюда и ошибки компилятора. В ваших методах сеттера вы должны использовать имя value поскольку это подразумеваемое имя параметра, таким образом:

public string lastName
{
    get
    {
        return lastName_;
    }
    set
    {
        lastName_ = value;
    }
}   //end lastname string get set

Незначительный момент, но свойства, по соглашению, имеют имена, которые начинаются с символа верхнего регистра, например LastName скорее, чем lastName.


Рейтинг:
18

phil.o

Что касается сеттеров ваших свойств, то вы используете необъявленные переменные (а именно, first, last и mSalary). Замените все эти необъявленные переменные в сеттерах переменной value и вы должны избавиться от трех проблем компиляции.

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

Любезно.