Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. namespace enterprise
  2. {
  3.  
  4. internal abstract class Worker : IComparable<Worker>
  5. {
  6. public int ID { get; set; }
  7. public string Name { get; set; }
  8. public double Salary { get; protected set; }
  9. public abstract void CalculateSalary();
  10. public Worker(int id,string name)
  11. {
  12. ID = id;
  13. Name = name;
  14. }
  15. public int CompareTo(Worker other)
  16. {
  17. var a =-Salary.CompareTo(other.Salary);
  18. if (a == 0)
  19.  
  20. a = Name.CompareTo(other.Name);
  21. return a;
  22. }
  23.  
  24.  
  25. public override string ToString()
  26. {
  27. return Salary + " " + Name;
  28. }
  29. }
  30.  
  31.  
  32.  
  33.  
  34. internal class HourlyPayWorker : Worker
  35. {
  36. public double HourlySalary { get; set; }
  37. public HourlyPayWorker(int id, string name, double hourlySalary) : base(id, name)
  38. {
  39. HourlySalary = hourlySalary;
  40. }
  41.  
  42. public override void CalculateSalary()
  43. {
  44. Salary = 20.8 * 2 * HourlySalary;
  45. }
  46.  
  47.  
  48.  
  49. }
  50.  
  51.  
  52.  
  53.  
  54.  
  55. internal class StaticPayWorker: Worker
  56. {
  57. public double StaticSalary { get; set; }
  58. public StaticPayWorker(int id, string name, double staticSalary):base(id,name)
  59. {
  60. StaticSalary = staticSalary;
  61. }
  62. public override void CalculateSalary()
  63. {
  64. Salary = StaticSalary;
  65. }
  66.  
  67. }
  68.  
  69. class Program
  70. {
  71. static void Main(string[] args)
  72. {
  73.  
  74. var workers = new List<Worker>();
  75. workers.Add(new HourlyPayWorker(1, "vanya", 10000));
  76. workers.Add(new StaticPayWorker(2, "sanya", 1000));
  77. workers.Add(new HourlyPayWorker(3, "danya", 1000));
  78. workers.Add(new StaticPayWorker(4, "petya", 456));
  79. workers.Add(new HourlyPayWorker(5, "vasya", 1000646));
  80. workers.Add(new StaticPayWorker(6, "dunya", 102450));
  81. foreach (Worker worker in workers)
  82. {
  83. worker.CalculateSalary();
  84. }
  85.  
  86. Console.WriteLine("Сортировка");
  87. workers.Sort();
  88. foreach(Worker worker in workers)
  89. {
  90. Console.WriteLine(worker);
  91. }
  92.  
  93.  
  94. FileStream Work = new FileStream("D:\\Work.txt", FileMode.Create);
  95. StreamWriter Write = new StreamWriter(Work);
  96. foreach(Worker rab in workers)
  97. {
  98. Write.WriteLine(rab);
  99. }
  100. Write.Close();
  101. StreamReader Read = new StreamReader("D:\\Work.txt");
  102.  
  103.  
  104. FileInfo File = new FileInfo("D:\\Work.txt");
  105. if (File.Exists == false)
  106. {
  107. Console.WriteLine("Incorrect format or file does not exist");
  108. Console.ReadLine();
  109. }
  110.  
  111. for (var i = 0; i < 3; i++)
  112. {
  113. Console.WriteLine(workers[i]);
  114. }
  115. Console.WriteLine(Read.ReadToEnd());
  116. Console.ReadLine();
  117. }
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement