/// <summary> /// aktyviausio autoriaus klausimų kiekio metodas /// </summary> /// <param name="klausimas"></param> /// <param name="DaugiausiaiKlausimuAtstovybese"></param> /// <returns>metodas grąžina iš kiekvienos atstovybės aktyviausio autoriaus klausimų kiekį</returns> public int DaugiausiaiKlausimuAtstovybese(Atstovybes AtstovybiuPav, DaugiausiaKlausimuAtskirai autoriaiAts) { int klausimuskaicius = 0; int laikinasklausimuskaicius; string laikinasvardas = AtstovybiuPav.Klausimai.GautiKlausima(0).Autorius; for (int i = 0; i < AtstovybiuPav.Klausimai.kiekKlausimu; i++) { laikinasvardas = AtstovybiuPav.Klausimai.GautiKlausima(i).Autorius; laikinasklausimuskaicius = 1; for (int j = i + 1; j < AtstovybiuPav.Klausimai.kiekKlausimu; j++) { if (AtstovybiuPav.Klausimai.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); }
/// <summary> /// metodas skirtas nuskaityti duomenis /// </summary> /// <param name="AtstovybiuPav"></param> /// <param name="maxKlausimuKiekis"></param> /// <param name="atstovybiuKiekis"></param> public void Skaitymas(ref Atstovybes[] AtstovybiuPav, int maxKlausimuKiekis, ref int atstovybiuKiekis) { string[] DuomenuVieta = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.csv"); foreach (string failas in DuomenuVieta) { using (StreamReader skaityti = new StreamReader(@failas, Encoding.GetEncoding(1257))) { string eilute = skaityti.ReadLine(); Atstovybes atstovybes = new Atstovybes(eilute, maxKlausimuKiekis); while ((eilute = skaityti.ReadLine()) != null) { string[] dalys = eilute.Split(';'); string Tema = dalys[0]; int Sudėtingumas = int.Parse(dalys[1]); string Autorius = dalys[2]; string KlausimoTekstas = dalys[3]; string AtsakymoVariantai = dalys[4]; string TeisingasAtsakymas = dalys[5]; int Balai = int.Parse(dalys[6]); Klausimas klausimas = new Klausimas(Tema, Sudėtingumas, Autorius, KlausimoTekstas, AtsakymoVariantai, TeisingasAtsakymas, Balai); atstovybes.Klausimai.PridetiKlausima(klausimas); } AtstovybiuPav[atstovybiuKiekis++] = atstovybes; } } }
/// <summary> /// metodas grąžina didžiausią klausimų skaičių iš visų atsovybių /// </summary> /// <param name="atstovybe"></param> /// <param name="klausimuSkaicius"></param> /// <returns></returns> public int DaugiausiaiAtstovybejPaieska(Atstovybes atstovybe, int klausimuSkaicius) { int laikinasKlausimuSkaicius; string vardas; for (int i = 0; i < atstovybe.Klausimai.kiekKlausimu; i++) { laikinasKlausimuSkaicius = 1; vardas = atstovybe.Klausimai.GautiKlausima(i).Autorius; for (int j = i + 1; j < atstovybe.Klausimai.kiekKlausimu; j++) { if (vardas == atstovybe.Klausimai.GautiKlausima(j).Autorius) { laikinasKlausimuSkaicius++; } } if (laikinasKlausimuSkaicius > klausimuSkaicius) { klausimuSkaicius = laikinasKlausimuSkaicius; IstrintiAutorius(); PridetiAutoriu(vardas); } else if (laikinasKlausimuSkaicius == klausimuSkaicius && !Autoriai.Contains(vardas)) { PridetiAutoriu(vardas); } } return(klausimuSkaicius); }
/// <summary> /// Funkcija grąžina sutampančio klausimo tekstą /// </summary> /// <param name="kitas"></param> /// <param name="vienodiKlaus"></param> /// <param name="kiekis"></param> /// <returns></returns> public string[] VienodiKlausimai(Atstovybes kitas, ref string[] vienodiKlaus, ref int kiekis) { for (int i = 0; i < kiekKlausimu; i++) { for (int j = 0; j < kitas.Klausimai.kiekKlausimu; j++) { if (GautiKlausima(i).Equals(kitas.Klausimai.GautiKlausima(j)) && !vienodiKlaus.Contains(GautiKlausima(i).KlausimoTekstas)) { vienodiKlaus[kiekis++] = GautiKlausima(i).KlausimoTekstas; } } } return(vienodiKlaus); }
const int maxAtstovybiuKiekis = 10; //didžiausias atstovybių kiekis static void Main(string[] args) { Program p = new Program(); Atstovybes[] AtstovybiuPav = new Atstovybes[maxAtstovybiuKiekis]; //objekto masyve saugomi atstovybių pavadinimai int atstovybiuKiekis = 0; DaugiausiaKlausimuBendrai autoriaiBendr = new DaugiausiaKlausimuBendrai(maxKlausimuKiekis); //Iš visų atstovybių popuiariausių autorių objektas DaugiausiaKlausimuAtskirai autoriaiAts = new DaugiausiaKlausimuAtskirai(maxKlausimuKiekis); //Skirtingų atstovybių populiariausių autorių objektas TemuKonteineris temos = new TemuKonteineris(maxKlausimuKiekis); //Nesikartojančių temų objektas p.Skaitymas(ref AtstovybiuPav, maxKlausimuKiekis, ref atstovybiuKiekis); //Skaitymo metodas p.TemuKiekis(AtstovybiuPav, temos, atstovybiuKiekis); //metode kaupiamas nesikartojančių temų pavadinimas ir kiekis p.DaugiausiaKlausimuIsVisoIsvedimas(AtstovybiuPav, autoriaiBendr, atstovybiuKiekis); //populiariausio autoriaus apskritai išvedimo metodas p.DaugiausiaiKlausimuAtstovybeseIsvedimas(AtstovybiuPav, autoriaiAts, atstovybiuKiekis); //populiariausio autoriaus kiekvienoje atstovybėje paieškos metodas p.SkirtinguTemuIsvedimas(temos); //nesikartojančių temų ir jų kiekių išvedimas p.VienoduKlausimuIsvedimas(AtstovybiuPav, atstovybiuKiekis); //pasikartojančių klausimų keliose atstovybėse išvedimas p.DuomenuPateikimasLenteleje(AtstovybiuPav, atstovybiuKiekis); //duomenų lentelės .txt kūrimo metodas }