Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace enterprise
- {
- internal abstract class Worker : IComparable<Worker>
- {
- public int ID { get; set; }
- public string Name { get; set; }
- public double Salary { get; protected set; }
- public abstract void CalculateSalary();
- public Worker(int id,string name)
- {
- ID = id;
- Name = name;
- }
- public int CompareTo(Worker other)
- {
- var a =-Salary.CompareTo(other.Salary);
- if (a == 0)
- a = Name.CompareTo(other.Name);
- return a;
- }
- public override string ToString()
- {
- return Salary + " " + Name;
- }
- }
- internal class HourlyPayWorker : Worker
- {
- public double HourlySalary { get; set; }
- public HourlyPayWorker(int id, string name, double hourlySalary) : base(id, name)
- {
- HourlySalary = hourlySalary;
- }
- public override void CalculateSalary()
- {
- Salary = 20.8 * 2 * HourlySalary;
- }
- }
- internal class StaticPayWorker: Worker
- {
- public double StaticSalary { get; set; }
- public StaticPayWorker(int id, string name, double staticSalary):base(id,name)
- {
- StaticSalary = staticSalary;
- }
- public override void CalculateSalary()
- {
- Salary = StaticSalary;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- var workers = new List<Worker>();
- workers.Add(new HourlyPayWorker(1, "vanya", 10000));
- workers.Add(new StaticPayWorker(2, "sanya", 1000));
- workers.Add(new HourlyPayWorker(3, "danya", 1000));
- workers.Add(new StaticPayWorker(4, "petya", 456));
- workers.Add(new HourlyPayWorker(5, "vasya", 1000646));
- workers.Add(new StaticPayWorker(6, "dunya", 102450));
- foreach (Worker worker in workers)
- {
- worker.CalculateSalary();
- }
- Console.WriteLine("Сортировка");
- workers.Sort();
- foreach(Worker worker in workers)
- {
- Console.WriteLine(worker);
- }
- FileStream Work = new FileStream("D:\\Work.txt", FileMode.Create);
- StreamWriter Write = new StreamWriter(Work);
- foreach(Worker rab in workers)
- {
- Write.WriteLine(rab);
- }
- Write.Close();
- StreamReader Read = new StreamReader("D:\\Work.txt");
- FileInfo File = new FileInfo("D:\\Work.txt");
- if (File.Exists == false)
- {
- Console.WriteLine("Incorrect format or file does not exist");
- Console.ReadLine();
- }
- for (var i = 0; i < 3; i++)
- {
- Console.WriteLine(workers[i]);
- }
- Console.WriteLine(Read.ReadToEnd());
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement