Создайте консольное приложение «Отдел магазина» - C#
Формулировка задачи:
Создайте консольное приложение «Отдел магазина». Приложение включает следующие пользовательские классы:
Класс человек «Person» - включает следующие свойства – Имя (Name), Фамилию (Fio) и оклад (Salary);
Класс продавец «Assistant» - наследник класса «Person», содержит все свойства родительского класса, а также и дополнительные свойства Стаж (Seniority) и Зарплата (Salarysum). Зарплата рассчитывается как оклад плюс стаж умноженный на 2% (Salarysum =Salary+ Seniority*0.2);
Класс менеджер (зав.отделом, управляющий) «Manager» - наследник класса «Assistant», содержит все свойства родительского класса и дополнительное свойство Количество подчиненных (Subordinate). Зарплата у менеджера рассчитывается как оклад плюс стаж умноженный на 2% плюс количество подчиненных умноженное на 2% (Salarysum =Salary+ Seniority*0.2+ Subordinate*0.2)
В классе продавец (Assistant) создается событие «Добавление продавца» (AddAssistant). В классе менеджер (Manager) создается событие «Добавление менеджера» (AddManager).
Помогите с этой задачкой на си шарпе пожалуйста
Решение задачи: «Создайте консольное приложение «Отдел магазина»»
textual
Листинг программы
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace day9
{
class Program
{
static int i = 0;
public static void next()
{
Console.ReadLine();
i++;
Console.WriteLine("\nЗадание " + i);
}
class Task3
{
interface ISalSum
{
double CalcSalSum();
}
class Person
{
protected string name;
public string Name
{
get { return name; }
set { name = value; } }
protected string fio;
public string Fio
{
get { return fio; }
set { fio = value; }
} protected int salary;
public int Salary
{
get { return salary; }
set { salary = value; }
} }
class Assistant : Person, ISalSum
{
protected int seniority;
public Assistant()
{
}
public int Seniority
{
get { return seniority; }
set { seniority = value; }
}
protected double salarysum;
public double Salarysum
{
get { return salarysum; }
set { salarysum = value; }
}
double ISalSum.CalcSalSum()
{
salarysum = this.Salary + seniority * 0.2;
return salarysum;
} }
class Manager : Assistant, ISalSum
{
int subordinate=0;
public Manager(string _name, Magazin pub)
{
name = _name;
seniority = 2;
salary = 100;
pub.RaiseCustomEvent += HandleCustomEvent;
}
void HandleCustomEvent(object sender, Manager e)
{
e.DoEvent();
}
public void DoEvent()
{
subordinate++;
salarysum = salary + seniority * 0.2 + subordinate * 0.2;
}
public int Subordinate
{
get { return subordinate; }
set { subordinate = value; }
}
public static bool f = false;
double ISalSum.CalcSalSum()
{
Salarysum = this.Salary + this.Seniority * 0.2 + subordinate * 0.2;
return Salarysum;
}
}
class Magazin : EventArgs
{
public List<Assistant> asistents = new List<Assistant>();
public Manager manager;
public Magazin(string nameOfManager)
{
manager = new Manager(nameOfManager, this);
}
public void AddAsis(Assistant a)
{
asistents.Add(a);
OnRaiseCustomEvent(manager);
}
public event EventHandler<Manager> RaiseCustomEvent;
public void AddNewAssistant()
{
}
protected virtual void OnRaiseCustomEvent(Manager e)
{
if (handler != null)
{
handler(this, e);
Console.WriteLine("Новая зарплата менеджера = "+e.Salarysum.ToString("f2"));
} } }
public Task3()
{
Magazin magaz = new Magazin("Родная сторона");
magaz.AddAsis(new Assistant());
magaz.AddAsis(new Assistant());
magaz.AddAsis(new Assistant());
} }
static void Main(string[] args)
{
next();
{ Task3 task = new Task3(); }
next();
}}}