Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.45 KB | None | 0 0
  1. using System;
  2. using System.Globalization;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace UppgiftLönespec
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14.  
  15. NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
  16. nfi.CurrencyDecimalSeparator = ",";
  17. nfi.CurrencyGroupSeparator = ".";
  18. nfi.CurrencySymbol = "";
  19.  
  20. while (true)
  21. {
  22. int median = 0;
  23. int medellön = 0;
  24. int lönespridning = 0;
  25. int antalLöner = mataInInt("Ange antal löner att mata in: ");
  26.  
  27. try
  28. {
  29. if (antalLöner < 1) throw new Exception("Antalet löner kan inte vara färre än 1");
  30. }
  31. catch (Exception e)
  32. {
  33. Console.WriteLine("\n" + e.Message);
  34. Console.WriteLine("Vänligen skriv igen...");
  35. continue;
  36. }
  37.  
  38. int[] löner = new int[antalLöner];
  39.  
  40. for (int i = 0; i < löner.Length; i++)
  41. {
  42. while (true)
  43. {
  44. int svar = mataInInt($"Ange lön nummer {i + 1}: ");
  45. if (svar < 0)
  46. {
  47. Console.WriteLine("\nDu kan inte skriva in en negativ lön.");
  48. Console.WriteLine("Vänligen skriv igen...");
  49. continue;
  50. }
  51. löner[i] = svar;
  52. break;
  53. }
  54. }
  55.  
  56. Array.Sort(löner);
  57.  
  58. if (löner.Length % 2 == 0)
  59. {
  60. int median1 = löner.Length / 2;
  61. int median2 = (löner.Length / 2) + 1;
  62.  
  63. median = (löner[median1 - 1] + löner[median2 - 1]) / 2;
  64. }
  65. else
  66. {
  67. median = löner[löner.Length / 2];
  68. }
  69.  
  70. medellön = (int)löner.Average();
  71.  
  72. lönespridning = löner.Max() - löner.Min();
  73.  
  74. Console.WriteLine();
  75. for (int i = 0; i < 36; i++) Console.Write("-");
  76.  
  77. Console.WriteLine($"\nMedianlön: \t{median.ToString("C0", nfi)} kr");
  78. Console.WriteLine($"Medellön: \t{medellön.ToString("C0", nfi)} kr");
  79. Console.WriteLine($"Lönespridning: \t{lönespridning.ToString("C0", nfi)} kr");
  80.  
  81. for (int i = 0; i < 36; i++) Console.Write("-");
  82.  
  83. int antalRader = (int)Math.Round(löner.Length / 3.0);
  84.  
  85. Console.Write("\n");
  86. for (int i = 0; i < antalRader; i++)
  87. {
  88. for (int j = 0; j < 3; j++)
  89. {
  90. if (j + (i * 3) >= antalLöner)
  91. {
  92. break;
  93. }
  94. else
  95. {
  96. Console.Write($" \t{löner[j + (i * 3)]}");
  97. }
  98. }
  99. Console.Write("\n");
  100. }
  101.  
  102. Console.BackgroundColor = ConsoleColor.Green;
  103. Console.ForegroundColor = ConsoleColor.White;
  104. Console.CursorVisible = false;
  105. Console.Write("\nTryck tangent för ny beräkning- Esc avslutar.");
  106.  
  107. if (Console.ReadKey(true).Key == ConsoleKey.Escape) break;
  108.  
  109. Console.ResetColor();
  110. Console.CursorVisible = true;
  111. Console.Clear();
  112. }
  113. }
  114.  
  115. static int mataInInt(string fråga)
  116. {
  117. int svar = 0;
  118.  
  119. while (true)
  120. {
  121. try
  122. {
  123. Console.Write(fråga);
  124. svar = int.Parse(Console.ReadLine());
  125.  
  126. break;
  127. }
  128. catch (Exception e)
  129. {
  130. Console.WriteLine("\n" + e.Message);
  131. Console.WriteLine("Vänligen skriv igen...");
  132. continue;
  133. }
  134. }
  135.  
  136. return svar;
  137. }
  138. }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement