/// <summary> /// metodas skirtas atrinkti visas temas, jog nesikartotų ir surasti jų kiekius /// </summary> /// <param name="AtstovybiuPav"></param> /// <param name="temos"></param> /// <param name="atstovybiuKiekis"></param> public void TemuKiekis(Atstovybes[] AtstovybiuPav, TemuKonteineris temos, int atstovybiuKiekis) { int temosIndeksas = 0; int atstovybesIndeksas = 0; string laikinasPav = AtstovybiuPav[atstovybesIndeksas].Klausimai.GautiKlausima(temosIndeksas).Tema; temos.TemuKiekiuPaieska(AtstovybiuPav, temos, laikinasPav, temosIndeksas, atstovybesIndeksas, atstovybiuKiekis); while (temosIndeksas != AtstovybiuPav[atstovybiuKiekis - 1].Klausimai.kiekKlausimu - 1) { while (temosIndeksas != AtstovybiuPav[atstovybesIndeksas].Klausimai.kiekKlausimu - 1) { temosIndeksas++; laikinasPav = AtstovybiuPav[atstovybesIndeksas].Klausimai.GautiKlausima(temosIndeksas).Tema; temos.TemuKiekiuPaieska(AtstovybiuPav, temos, laikinasPav, temosIndeksas, atstovybesIndeksas, atstovybiuKiekis); } if (atstovybesIndeksas + 1 != atstovybiuKiekis) { temosIndeksas = 0; atstovybesIndeksas++; temos.TemuKiekiuPaieska(AtstovybiuPav, temos, laikinasPav, temosIndeksas, atstovybesIndeksas, atstovybiuKiekis); } } }
/// <summary> /// metode sukūriamas objektas ir į jį įdedama informacija apie nesikartojančias temas /// </summary> /// <param name="AtstovybiuPav"></param> /// <param name="temos"></param> /// <param name="laikinasPav"></param> /// <param name="temosIndeksas"></param> /// <param name="atstovybesIndeksas"></param> /// <param name="atstovybiuKiekis"></param> public void TemuKiekiuPaieska(Atstovybes[] AtstovybiuPav, TemuKonteineris temos, string laikinasPav, int temosIndeksas, int atstovybesIndeksas, int atstovybiuKiekis) { int laikinasKiekis = 0; for (int i = atstovybesIndeksas; i < atstovybiuKiekis; i++) { if (atstovybesIndeksas != i) { temosIndeksas = 0; } for (int j = temosIndeksas; j < AtstovybiuPav[i].Klausimai.kiekKlausimu; j++) { if (laikinasPav == AtstovybiuPav[i].Klausimai.GautiKlausima(j).Tema) { laikinasKiekis++; } } } if (!ArYra(laikinasPav)) { Temos t = new Temos(laikinasPav, laikinasKiekis); temos.PridetiTema(t); } }
/// <summary> /// nesikartojančių temų ir jų kiekių išvedimas /// </summary> /// <param name="temos"></param> public void SkirtinguTemuIsvedimas(TemuKonteineris temos) { string failoVardas = @"C:\Users\Armis\Desktop\L.1 Proto musis\U2-5_Mantas_Danauskas/TemųSkaičius.csv"; using (StreamWriter rasyti = new StreamWriter(failoVardas)) { for (int i = 0; i < temos.temuKiekis; i++) { rasyti.WriteLine("{0};{1}", temos.GautiTema(i).TemosPav, temos.GautiTema(i).TemuKiekis); } } }
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 }