/// <summary> /// metodas grąžina didžiausią klausimų skaičių iš visų atstovybių /// </summary> /// <param name="atstovybe">Atsovybė</param> /// <param name="klausimuSkaicius">Klausimų skaičius</param> /// <returns></returns> public int DaugiausiaiAtstovybejPaieska(Atstovybe atstovybe, int klausimuSkaicius) { int laikinasKlausimuSkaicius; string vardas; for (int i = 0; i < atstovybe.VisiKlausimai.Kiekis; i++) { laikinasKlausimuSkaicius = 1; vardas = atstovybe.VisiKlausimai.GautiKlausima(i).Autorius; for (int j = i + 1; j < atstovybe.VisiKlausimai.Kiekis; j++) { if (vardas == atstovybe.VisiKlausimai.GautiKlausima(j).Autorius) { laikinasKlausimuSkaicius++; } } if (laikinasKlausimuSkaicius > klausimuSkaicius) { klausimuSkaicius = laikinasKlausimuSkaicius; IstrintiAutorius(); PridetiAutoriu(vardas); } else if (laikinasKlausimuSkaicius == klausimuSkaicius && !Autoriai.Contains(vardas)) { PridetiAutoriu(vardas); } } return(klausimuSkaicius); }
/// <summary> /// Aktyviausio autoriaus klausimų kiekio metodas /// </summary> /// <param name="atstovybes">Atstovybės</param> /// <param name="autoriaiAts">Autoriai atskirai</param> /// <returns>metodas grąžina iš kiekvienos atstovybės aktyviausio autoriaus klausimų kiekį</returns> public int DaugiausiaiKlausimuAtstovybese(Atstovybe atstovybes, DaugiausiaKlausimuAtskirai autoriaiAts) { int klausimuskaicius = 0; int laikinasklausimuskaicius; string laikinasvardas = atstovybes.VisiKlausimai.GautiKlausima(0).Autorius; for (int i = 0; i < atstovybes.VisiKlausimai.Kiekis; i++) { laikinasvardas = atstovybes.VisiKlausimai.GautiKlausima(i).Autorius; laikinasklausimuskaicius = 1; for (int j = i + 1; j < atstovybes.VisiKlausimai.Kiekis; j++) { if (atstovybes.VisiKlausimai.GautiKlausima(j).Autorius == laikinasvardas) { laikinasklausimuskaicius++; } } if (laikinasklausimuskaicius > klausimuskaicius) { klausimuskaicius = laikinasklausimuskaicius; autoriaiAts.IstrintiAutorius(); autoriaiAts.PridetiAutoriu(laikinasvardas); } if (laikinasklausimuskaicius == klausimuskaicius && !autoriaiAts.Autoriai.Contains(laikinasvardas)) { autoriaiAts.PridetiAutoriu(laikinasvardas); } } return(klausimuskaicius); }
const int maxAtstovybiuKiekis = 10; //didžiausias atstovybių kiekis static void Main(string[] args) { int atstovybiuKiekis = 0; //Kintamasis, kuris nurodo, kiek yra atstovybių int skaicius = 0; //Istorinių klausimų kiekis Console.OutputEncoding = Encoding.UTF8; //Konsolėje rašomos lietuviškos raidės Program p = new Program(); //Program klasės objektas, kad galima būtų prieiti prie metodų Atstovybe[] atstovybes = new Atstovybe[maxAtstovybiuKiekis]; //objekto masyve saugomi atstovybių pavadinimai p.Skaitymas(ref atstovybes, ref atstovybiuKiekis); //Skaitymo metodas if (atstovybes[0].AtstovybesPav == null) { Console.WriteLine("Duomenų failuose nėra"); //Jeigu duomenų faile nėra, rezultatų failus palieka tuščius string[] istoriniai = new string[1000]; p.IstoriniuKlausimuSpausdinimasFaile(istoriniai, skaicius); KlausimuKonteineris visiParasytiKlausimai = new KlausimuKonteineris(); p.VisuKlausimuSpausdinimasFaile(visiParasytiKlausimai); p.DuomenuPateikimasLenteleje(atstovybes, atstovybiuKiekis); } else { DaugiausiaKlausimuBendrai autoriaiBendr = new DaugiausiaKlausimuBendrai(); //Iš visų atstovybių populiariausių autorių objektas p.DaugiausiaKlausimuIsVisoIsvedimas(atstovybes, autoriaiBendr, atstovybiuKiekis); //populiariausio autoriaus apskritai išvedimo metodas Console.WriteLine(new String('-', 100)); //Atskiria rezultatus Console.WriteLine(""); DaugiausiaKlausimuAtskirai autoriaiAts = new DaugiausiaKlausimuAtskirai(); //Skirtingų atstovybių populiariausių autorių objektas p.DaugiausiaiKlausimuAtstovybeseIsvedimas(atstovybes, autoriaiAts, atstovybiuKiekis); //populiariausio autoriaus kiekvienoje atstovybėje paieškos metodas Console.WriteLine(new String('-', 100)); //Atskiria rezultatus Console.WriteLine(""); DaugiausiaKlausimuAtskirai muzAutoriaiAts = new DaugiausiaKlausimuAtskirai(); //Skirtingų atstovybių daugiausiai muzikinių klausimų uždavusių autorių objektas p.DaugiausiaiMuzikiniuKlausimuAtstovybeseIsvedimas(atstovybes, muzAutoriaiAts, atstovybiuKiekis); //Autorių, daugiausiai uždavusių muzikinių klausimų, išvedimas Console.WriteLine(new String('-', 100)); //Atskiria rezultatus Console.WriteLine(""); KlausimuKonteineris visiParasytiKlausimai = new KlausimuKonteineris(); //Visų klausimų objektas visiParasytiKlausimai = p.VisiParasytiKlausimai(atstovybes, atstovybiuKiekis); //Suranda visus užduotus klausimus visiParasytiKlausimai.RikiuotiKlausimus(); //Surikiuoja visų klausimų sąrašą p.VisuKlausimuSpausdinimasFaile(visiParasytiKlausimai); //Atspausdina faile visus klausimus string[] istoriniai = new string[1000]; //Istorinių klausimų objektas istoriniai = p.IstoriniaiKlausimai(atstovybes, atstovybiuKiekis, ref skaicius); //Suranda visus istorinius klausimus if (skaicius == 0) { Console.WriteLine("Istorinių klausimų nėra"); Console.WriteLine(""); } p.IstoriniuKlausimuSpausdinimasFaile(istoriniai, skaicius); //Atspausdina faile visus istorinius klausimus p.DuomenuPateikimasLenteleje(atstovybes, atstovybiuKiekis); //Duomenys pateikiami lentele } }
/// <summary> /// Metodas skirtas nuskaityti duomenis /// </summary> /// <param name="atstovybes">Atstovybės</param> /// <param name="atstovybiuKiekis">Atstovybių kiekis</param> public void Skaitymas(ref Atstovybe[] atstovybes, ref int atstovybiuKiekis) { string[] DuomenuVieta = Directory.GetFiles(@"C:\Users\Vartotojas\Desktop\L3 Proto musis\L.1 Proto musis\U3-5_Arminas_Marozas", "duomenys*.csv"); foreach (string failas in DuomenuVieta) { using (StreamReader skaityti = new StreamReader(@failas)) { string eilute = skaityti.ReadLine(); if (eilute == "") { Atstovybe atstovybee = new Atstovybe(eilute); atstovybes[atstovybiuKiekis++] = atstovybee; break; } Atstovybe atstovybe = new Atstovybe(eilute); while ((eilute = skaityti.ReadLine()) != null) { if (eilute.Count(x => x == ',') == 6) //Patikrina, ar eilutėje yra 6 kableliai, jeigu ne, vadinasi klausimas yra be variantų { if (eilute.Count(x => x == '-') >= 1) //Jeigu yra brūkšnių, vadinasi yra atsakymų variantų(vienas nuo kito atskirti - ), jeigu ne, čia muzikinis klausimas. { string[] dalys = eilute.Split(','); string Tema = dalys[0]; int Sudetingumas = int.Parse(dalys[1]); string Autorius = dalys[2]; string KlausimoTekstas = dalys[3]; string Variantai = dalys[4]; string TeisingasAtsakymas = dalys[5]; int Balai = int.Parse(dalys[6]); KlausimasSuVariantais klausimas = new KlausimasSuVariantais(Tema, Sudetingumas, Autorius, KlausimoTekstas, Variantai, TeisingasAtsakymas, Balai); atstovybe.KlausimaiSuVariantais.PridetiKlausima(klausimas); atstovybe.VisiKlausimai.PridetiKlausima(klausimas); } else { string[] dalys = eilute.Split(','); string Tema = dalys[0]; int Sudetingumas = int.Parse(dalys[1]); string Autorius = dalys[2]; string KlausimoTekstas = dalys[3]; string TeisingasAtsakymas = dalys[4]; int Balai = int.Parse(dalys[5]); string FailoPavadinimas = dalys[6]; MuzikinisKlausimas klausimas = new MuzikinisKlausimas(Tema, Sudetingumas, Autorius, KlausimoTekstas, TeisingasAtsakymas, Balai, FailoPavadinimas); atstovybe.MuzikiniaiKlausimai.PridetiKlausima(klausimas); atstovybe.VisiKlausimai.PridetiKlausima(klausimas); } } else { string[] dalys = eilute.Split(','); string Tema = dalys[0]; int Sudetingumas = int.Parse(dalys[1]); string Autorius = dalys[2]; string KlausimoTekstas = dalys[3]; string TeisingasAtsakymas = dalys[4]; int Balai = int.Parse(dalys[5]); Klausimas klausimas = new Klausimas(Tema, Sudetingumas, Autorius, KlausimoTekstas, TeisingasAtsakymas, Balai); atstovybe.Klausimai.PridetiKlausima(klausimas); atstovybe.VisiKlausimai.PridetiKlausima(klausimas); } } atstovybes[atstovybiuKiekis++] = atstovybe; } } }