Z1.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace School
  7. {
  8. abstract class AbstractClass
  9. {
  10. public abstract int CountSkip(int CountWorkDays); //Для посчета пропусков
  11. public abstract double AvgRating(int CountRating); //Для посчета среднего бала
  12. public abstract void ReadDiary(); // Для прочтения дневника
  13. }
  14. class BaseClass : AbstractClass
  15. {
  16. protected int CountSkips;
  17. protected double AvgRatings;
  18. protected int[] ArraySkip;
  19. protected int[] ArrayRating;
  20. public override int CountSkip(int CountWorkDays)
  21. {
  22. ArraySkip = new int[CountWorkDays];
  23. for (int i = 0; i < CountWorkDays - 1; i++)
  24. {
  25. if (ArraySkip[i] == 0)
  26. {
  27. CountSkips++;
  28. }
  29. }
  30. return CountSkips;
  31. }
  32. public override double AvgRating(int CountRating)
  33. {
  34. ArrayRating = new int[CountRating];
  35. AvgRatings = ArrayRating.Average();
  36. return AvgRatings;
  37. }
  38. public override void ReadDiary()
  39. {
  40. if (ArraySkip != null || ArrayRating != null)
  41. {
  42. Console.WriteLine("Пропуски");
  43. Console.WriteLine("Всего: " + CountSkips);
  44. Console.WriteLine("По дням: ");
  45. for (int i = 0; i < ArraySkip.Length; i++)
  46. {
  47. if (ArraySkip[i] == 0)
  48. {
  49. Console.WriteLine(i + 1 + " ");
  50. }
  51. }
  52. Console.WriteLine("Оценки");
  53. Console.WriteLine("Средний бал: " + AvgRatings);
  54. Console.WriteLine("По дням: ");
  55. for (int i = 0; i < ArrayRating.Length; i++)
  56. {
  57. if (ArraySkip[i] != 0)
  58. {
  59. Console.WriteLine(i + 1 + " день оценка " + ArrayRating[i]);
  60. }
  61. }
  62. }
  63. else
  64. {
  65. Console.WriteLine("Дневник пуст");
  66. }
  67. }
  68. }
  69. class DerivedClass : BaseClass
  70. {
  71. public new int CountSkip(int CountWorkDays)
  72. {
  73. ArraySkip = new int[CountWorkDays];
  74. for (int i = 0; i < ArraySkip.Length; i++)
  75. {
  76. Console.WriteLine("Был ли ученик в " + (i + 1) + " день учебы? ( 1 - да / 0 - нет )");
  77. ArraySkip[i] = Convert.ToInt32(Console.ReadLine());
  78. if (ArraySkip[i] == 0)
  79. {
  80. CountSkips++;
  81. }
  82. }
  83. return CountSkips;
  84. }
  85. public override double AvgRating(int CountRating)
  86. {
  87. ArrayRating = new int[CountRating];
  88. for (int i = 0; i < ArrayRating.Length; i++)
  89. {
  90. Console.WriteLine("Какая оценка стоит у ученка в " + (i + 1) + " день учебы? ( 2,3,4,5 - оценка / 0 - нет оценки )");
  91. ArrayRating[i] = Convert.ToInt32(Console.ReadLine());
  92. }
  93. AvgRatings = ArrayRating.Average();
  94. return AvgRatings;
  95. }
  96. public void Eror()
  97. {
  98. if (ArraySkip != null || ArrayRating != null)
  99. {
  100. for (int i = 0; i < ArraySkip.Length; i++)
  101. {
  102. if (ArraySkip[i] == 0 && ArrayRating[i] != 0)
  103. {
  104. Console.WriteLine("Ошибка: В " + i + " день ученика не было в школеа а оценка стоит!");
  105. }
  106. }
  107. }
  108. else { Console.WriteLine("Дневник пуст");}
  109. }
  110. }
  111. }