Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.32 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. using System.IO;
  7.  
  8. namespace Laboratorinis
  9. {
  10. class Program
  11. {
  12. public const int MaxNumberOfQuestion = 25;
  13.  
  14. public static void Main(string[] args)
  15. {
  16. Quiz[] question;
  17. int quizCount;
  18.  
  19. ReadQuizData(out question, out quizCount);
  20. Quiz sunkiausiaTema = GrazintiSunkiausiaTema(question, quizCount);
  21. Console.WriteLine("Sunkiausia tema: {0}", sunkiausiaTema.Theme);
  22.  
  23. List<string> autoriai = new List<string>();
  24. int[] klausimuSk = new int[quizCount];
  25.  
  26. int index = DaugiausiaKlausimuAutorius(question, quizCount, ref autoriai, klausimuSk);
  27.  
  28. Console.WriteLine("Daugiausiai klausimų - {0} sugalvojo {1}", klausimuSk[index].ToString(), autoriai[index]);
  29.  
  30. Quiz[] rinkinys1 = SudarytiRinkini(question, quizCount);
  31. Quiz[] rinkinys2 = SudarytiRinkini(question, quizCount);
  32.  
  33. IrasytiRinkinius(rinkinys1, rinkinys2);
  34.  
  35. Console.ReadKey();
  36.  
  37.  
  38. }
  39. private static void ReadQuizData(out Quiz[] question, out int quizCount)
  40. {
  41. quizCount = 0;
  42. question = new Quiz[MaxNumberOfQuestion];
  43.  
  44. using (StreamReader reader = new StreamReader(@"L1-5.csv"))
  45. {
  46. string line = null;
  47. int rowNumber = 0;
  48. while (null != (line = reader.ReadLine()))
  49. {
  50. rowNumber++;
  51. if (rowNumber == 1)
  52. {
  53. continue;
  54. }
  55.  
  56.  
  57.  
  58. string[] values = line.Split(';');
  59. string theme = values[0];
  60. int complexity = int.Parse(values[1]);
  61. string author = values[2];
  62.  
  63.  
  64. string questionText = values[3];
  65.  
  66. string[] option = values[4].Split(',');
  67. string firstOption = option[0];
  68. string secondOption = option[1];
  69. string thirdOption = option[2];
  70. string fourthOption = option[3];
  71.  
  72. string trueOption = values[5];
  73.  
  74. int point = int.Parse(values[6]);
  75.  
  76. Quiz quiz = new Quiz(theme, complexity, author, questionText, firstOption, secondOption, thirdOption, fourthOption, trueOption, point);
  77.  
  78. question[quizCount++] = quiz;
  79.  
  80.  
  81. }
  82. }
  83. }
  84.  
  85. private static double AverageTheme(Quiz[] question, int quizCount, string theme)
  86. {
  87. int counter = 0;
  88. double complexity = 0;
  89. for (int i = 0; i < quizCount; i++)
  90. {
  91. if (question[i].Theme == theme)
  92. {
  93. counter++;
  94. complexity = complexity + question[i].Complexity;
  95. }
  96. }
  97.  
  98. return counter / complexity;
  99. }
  100.  
  101.  
  102. private static Quiz GrazintiSunkiausiaTema(Quiz[] question, int quizCount)
  103. {
  104. if (quizCount == 0)
  105. return null;
  106.  
  107. Quiz sunkiausia = question[0];
  108.  
  109. //for (int i = 1; i < quizCount; i++)
  110. // if (sunkiausia.Complexity < question[i].Complexity)
  111. // sunkiausia = question[i];
  112.  
  113. List<string> temos = new List<string>();
  114. SudarytiTemuSarasa(ref temos, question);
  115.  
  116. double[] vidurkiai = new double[temos.Count];
  117.  
  118. double didziausias = 0;
  119. int index = 0;
  120.  
  121. for (int i = 0; i < temos.Count; i++)
  122. {
  123. if (AverageTheme(question, quizCount, temos[i]) > didziausias)
  124. {
  125. didziausias = AverageTheme(question, quizCount, temos[i]);
  126. index = i;
  127. }
  128.  
  129.  
  130. }
  131.  
  132. sunkiausia = question[index];
  133.  
  134. return sunkiausia;
  135.  
  136. }
  137.  
  138.  
  139. private static void SudarytiTemuSarasa(ref List<string> temos, Quiz[] question)
  140. {
  141. for (int i = 0; i < question.Length; i++)
  142. {
  143. if (!temos.Contains(question[i].Theme))
  144. temos.Add(question[i].Theme);
  145.  
  146. }
  147.  
  148. }
  149.  
  150. // sudaro autoriu ir ju klausimu skaiciaus sarasa
  151. private static void SudarytiAutoriuSarasa(ref List<string> autoriai, Quiz[] question)
  152. {
  153.  
  154. for (int i = 0; i < question.Length; i++)
  155. {
  156.  
  157. if (!autoriai.Contains(question[i].Author)) // tikrina, ar naujam sarase yra autorius
  158. {
  159. autoriai.Add(question[i].Author); // jei nera, ji prideda
  160.  
  161. }
  162.  
  163. }
  164. }
  165.  
  166. private static void SuskaiciuotiKlausimus(List<string> autoriai, ref int[] klausimuSk, Quiz[] question)
  167. {
  168. klausimuSk.Initialize();
  169.  
  170. for (int i = 0; i < question.Length; i++)
  171. {
  172. for (int j = 0; j < autoriai.Count; j++)
  173. {
  174. if (question[i].Author == autoriai[j])
  175. {
  176. klausimuSk[j]++;
  177.  
  178. }
  179.  
  180. }
  181. }
  182.  
  183. }
  184.  
  185. private static int DaugiausiaKlausimuAutorius(Quiz[] question, int quizCount, ref List<string> autoriai, int[] klausimuSk)
  186. {
  187. //Quiz[] autorius = new Quiz[1];
  188. // int count = 0;
  189.  
  190.  
  191.  
  192. SudarytiAutoriuSarasa(ref autoriai, question);
  193. SuskaiciuotiKlausimus(autoriai, ref klausimuSk, question);
  194.  
  195. int daugiausia = 0;
  196. int index = 0;
  197.  
  198. for (int i = 0; i < autoriai.Count; i++)
  199. {
  200. if (klausimuSk[i] > daugiausia)
  201. {
  202. daugiausia = klausimuSk[i];
  203. index = i;
  204.  
  205. }
  206. }
  207.  
  208. return index;
  209. }
  210.  
  211. private static Quiz[] SudarytiRinkini(Quiz[] question, int questionCount)
  212. {
  213. Quiz[] rinkinys = new Quiz[5];
  214.  
  215. for (int i = 0; i < 5; i++)
  216. {
  217. Random r = new Random();
  218. int atsitiktinis = r.Next(0, questionCount);
  219.  
  220. rinkinys[i] = question[atsitiktinis];
  221.  
  222. }
  223.  
  224. return rinkinys;
  225. }
  226.  
  227. private static void IrasytiRinkinius(Quiz[] rinkinys1, Quiz[] rinkinys2)
  228. {
  229. using (StreamWriter writer = new StreamWriter("Klausimai1.csv"))
  230. {
  231. foreach (Quiz klausimas in rinkinys1)
  232. {
  233. writer.WriteLine(string.Format("{0}; {1}; {2}", klausimas.Theme, klausimas.QuestionText, klausimas.Point.ToString()), Encoding.UTF8);
  234.  
  235. }
  236. }
  237.  
  238. using (StreamWriter writer = new StreamWriter("Klausimai2.csv"))
  239. {
  240. foreach (Quiz klausimas in rinkinys2)
  241. {
  242. writer.WriteLine(string.Format("{0}; {1}; {2}", klausimas.Theme, klausimas.QuestionText, klausimas.Point.ToString()), Encoding.UTF8);
  243.  
  244. }
  245. }
  246. }
  247. }
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement