Advertisement
aslen

Untitled

Dec 17th, 2015
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Salary1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             List<Employee> myJournal;
  14.  
  15.             myJournal = CreateListWorkers();
  16.             Console.WriteLine("Salary from this month:\n");
  17.             myJournal = myJournal.OrderByDescending(a => a.Salary).ToList();
  18.  
  19.             for (int i = 0; i < myJournal.Count; i++)
  20.                 Console.WriteLine("{0}) {1}: {2:C}", i + 1, myJournal[i].Name, myJournal[i].Salary);
  21.  
  22.             Console.ReadKey();
  23.  
  24.  
  25.         }
  26.         private static List<Employee> CreateListWorkers()
  27.         {
  28.             List<Employee> workers = new List<Employee>();
  29.  
  30.             workers.Add(new FixedSalary("Roma Mak", 1000));
  31.             workers.Add(new HoursSalary("Ivan Lisov", 4));
  32.             workers.Add(new FixedSalary("Nikolay Murtov", 780));
  33.             workers.Add(new HoursSalary("Svetlana Orekhova", 5.5));
  34.             workers.Add(new FixedSalary("Diana Reva", 610));
  35.             workers.Add(new HoursSalary("Oleg Lugniy", 5));
  36.             workers.Add(new FixedSalary("Dmitriy Stok", 1190));
  37.             workers.Add(new HoursSalary("Mila Werhova", 8));
  38.             workers.Add(new FixedSalary("Dmitriy Stob", 1190));
  39.  
  40.             return workers;
  41.         }
  42.     }
  43.     abstract class Employee
  44.     {
  45.         public string Name { get; set; }
  46.         public double Tax { get; set; }
  47.         public double Salary { get; set; }
  48.         public Employee(string name, double tax)
  49.         {
  50.             this.Name = name;
  51.             this.Tax = tax;
  52.             Salary = Tax;
  53.             averageSalary();
  54.         }
  55.  
  56.         protected abstract double averageSalary();
  57.  
  58.     }
  59.     class FixedSalary : Employee
  60.     {
  61.         public FixedSalary(string name, double salary)
  62.             : base(name, salary)
  63.         { }
  64.         protected override double averageSalary()
  65.         {
  66.             return Salary;
  67.         }
  68.     }
  69.     class HoursSalary : Employee
  70.     {
  71.         private const double rate = 20.8;
  72.         private double hourOfDays = 8;
  73.  
  74.         public HoursSalary(string name, double salary)
  75.             : base(name, salary)
  76.         { }
  77.  
  78.         protected override double averageSalary()
  79.         {
  80.             return Salary *= rate * hourOfDays;
  81.         }
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement