Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace Laboratorinis
- {
- class Program
- {
- public const int MaxNumberOfQuestion = 25;
- public static void Main(string[] args)
- {
- Quiz[] question;
- int quizCount;
- ReadQuizData(out question, out quizCount);
- Quiz sunkiausiaTema = GrazintiSunkiausiaTema(question, quizCount);
- Console.WriteLine("Sunkiausia tema: {0}", sunkiausiaTema.Theme);
- List<string> autoriai = new List<string>();
- int[] klausimuSk = new int[quizCount];
- int index = DaugiausiaKlausimuAutorius(question, quizCount, ref autoriai, klausimuSk);
- Console.WriteLine("Daugiausiai klausimų - {0} sugalvojo {1}", klausimuSk[index].ToString(), autoriai[index]);
- Quiz[] rinkinys1 = SudarytiRinkini(question, quizCount);
- Quiz[] rinkinys2 = SudarytiRinkini(question, quizCount);
- IrasytiRinkinius(rinkinys1, rinkinys2);
- Console.ReadKey();
- }
- private static void ReadQuizData(out Quiz[] question, out int quizCount)
- {
- quizCount = 0;
- question = new Quiz[MaxNumberOfQuestion];
- using (StreamReader reader = new StreamReader(@"L1-5.csv"))
- {
- string line = null;
- int rowNumber = 0;
- while (null != (line = reader.ReadLine()))
- {
- rowNumber++;
- if (rowNumber == 1)
- {
- continue;
- }
- string[] values = line.Split(';');
- string theme = values[0];
- int complexity = int.Parse(values[1]);
- string author = values[2];
- string questionText = values[3];
- string[] option = values[4].Split(',');
- string firstOption = option[0];
- string secondOption = option[1];
- string thirdOption = option[2];
- string fourthOption = option[3];
- string trueOption = values[5];
- int point = int.Parse(values[6]);
- Quiz quiz = new Quiz(theme, complexity, author, questionText, firstOption, secondOption, thirdOption, fourthOption, trueOption, point);
- question[quizCount++] = quiz;
- }
- }
- }
- private static double AverageTheme(Quiz[] question, int quizCount, string theme)
- {
- int counter = 0;
- double complexity = 0;
- for (int i = 0; i < quizCount; i++)
- {
- if (question[i].Theme == theme)
- {
- counter++;
- complexity = complexity + question[i].Complexity;
- }
- }
- return counter / complexity;
- }
- private static Quiz GrazintiSunkiausiaTema(Quiz[] question, int quizCount)
- {
- if (quizCount == 0)
- return null;
- Quiz sunkiausia = question[0];
- //for (int i = 1; i < quizCount; i++)
- // if (sunkiausia.Complexity < question[i].Complexity)
- // sunkiausia = question[i];
- List<string> temos = new List<string>();
- SudarytiTemuSarasa(ref temos, question);
- double[] vidurkiai = new double[temos.Count];
- double didziausias = 0;
- int index = 0;
- for (int i = 0; i < temos.Count; i++)
- {
- if (AverageTheme(question, quizCount, temos[i]) > didziausias)
- {
- didziausias = AverageTheme(question, quizCount, temos[i]);
- index = i;
- }
- }
- sunkiausia = question[index];
- return sunkiausia;
- }
- private static void SudarytiTemuSarasa(ref List<string> temos, Quiz[] question)
- {
- for (int i = 0; i < question.Length; i++)
- {
- if (!temos.Contains(question[i].Theme))
- temos.Add(question[i].Theme);
- }
- }
- // sudaro autoriu ir ju klausimu skaiciaus sarasa
- private static void SudarytiAutoriuSarasa(ref List<string> autoriai, Quiz[] question)
- {
- for (int i = 0; i < question.Length; i++)
- {
- if (!autoriai.Contains(question[i].Author)) // tikrina, ar naujam sarase yra autorius
- {
- autoriai.Add(question[i].Author); // jei nera, ji prideda
- }
- }
- }
- private static void SuskaiciuotiKlausimus(List<string> autoriai, ref int[] klausimuSk, Quiz[] question)
- {
- klausimuSk.Initialize();
- for (int i = 0; i < question.Length; i++)
- {
- for (int j = 0; j < autoriai.Count; j++)
- {
- if (question[i].Author == autoriai[j])
- {
- klausimuSk[j]++;
- }
- }
- }
- }
- private static int DaugiausiaKlausimuAutorius(Quiz[] question, int quizCount, ref List<string> autoriai, int[] klausimuSk)
- {
- //Quiz[] autorius = new Quiz[1];
- // int count = 0;
- SudarytiAutoriuSarasa(ref autoriai, question);
- SuskaiciuotiKlausimus(autoriai, ref klausimuSk, question);
- int daugiausia = 0;
- int index = 0;
- for (int i = 0; i < autoriai.Count; i++)
- {
- if (klausimuSk[i] > daugiausia)
- {
- daugiausia = klausimuSk[i];
- index = i;
- }
- }
- return index;
- }
- private static Quiz[] SudarytiRinkini(Quiz[] question, int questionCount)
- {
- Quiz[] rinkinys = new Quiz[5];
- for (int i = 0; i < 5; i++)
- {
- Random r = new Random();
- int atsitiktinis = r.Next(0, questionCount);
- rinkinys[i] = question[atsitiktinis];
- }
- return rinkinys;
- }
- private static void IrasytiRinkinius(Quiz[] rinkinys1, Quiz[] rinkinys2)
- {
- using (StreamWriter writer = new StreamWriter("Klausimai1.csv"))
- {
- foreach (Quiz klausimas in rinkinys1)
- {
- writer.WriteLine(string.Format("{0}; {1}; {2}", klausimas.Theme, klausimas.QuestionText, klausimas.Point.ToString()), Encoding.UTF8);
- }
- }
- using (StreamWriter writer = new StreamWriter("Klausimai2.csv"))
- {
- foreach (Quiz klausimas in rinkinys2)
- {
- writer.WriteLine(string.Format("{0}; {1}; {2}", klausimas.Theme, klausimas.QuestionText, klausimas.Point.ToString()), Encoding.UTF8);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement