private void btn_kreiraj_Click(object sender, EventArgs e) { StringBuilder stringBuilder = new StringBuilder(); oblasti = new List <int>(); zastupljenost = new List <double>(); stringBuilder.AppendLine($"Broj broj pitanja: {nUpDwn_brPitanja.Value}"); double sum = 0; double odnos = 0; foreach (var item in oblastZastupljenost.Where(x => x.Value != 0)) { odnos = item.Value / 10.0; stringBuilder.AppendLine(namesOfDomains[item.Key] + " : " + (odnos * 100) + "%"); sum += odnos; oblasti.Add(item.Key); zastupljenost.Add(odnos); } if (sum < 1) { MessageBox.Show("Zbir zastupljenosti nije 100% na testu!", "Greska!", buttons: MessageBoxButtons.OK, icon: MessageBoxIcon.Error); } else { var result = MessageBox.Show(stringBuilder.ToString(), "Da li ste sigurni?", buttons: MessageBoxButtons.YesNo, icon: MessageBoxIcon.Question); if (result == DialogResult.Yes) { //Zovi Logic.GeneticAlgorithmUse gen = new Logic.GeneticAlgorithmUse(); try { var t = gen.UseAlgorithm(oblasti, zastupljenost, brPitanja); TestPreview testPreviewForm = new TestPreview(t); testPreviewForm.ShowDialog(); } catch (Exception exc) { MessageBox.Show("Došlo je do greske.", "Greska!", buttons: MessageBoxButtons.OK, icon: MessageBoxIcon.Error); return; } } } }
static void Main(string[] args) { #region Oblasti //0 - Nizovi Lako //1 - Algoritmi Lako //2 - Funkcije Lako //3 - Fajlovi Lako //4 - Matrice Lako //5 = 0 + 5 - Nizovi Srednje //6 = 1 + 5 - Algoritmi Srednje //7 = 2 + 5 - Funkcije Srednje //8 = 3 + 5 - Fajlovi Srednje //9 = 4 + 5 - Matrice Srednje //10 = 0 + 2*5 - Nizovi Tesko //11 = 1 + 2*5 - Algoritmi Tesko //12 = 2 + 2*5 - Funkcije Tesko //13 = 3 + 2*5 - Fajlovi Tesko //14 = 4 + 2*5 - Matrice Tesko #endregion #region Test_Primeri // TRENUTNO List <int> oblasti = new List <int>(); List <double> zastupljenost = new List <double>(); int testLength = 5; #endregion #region Unos string unos = null; bool stop_flag = false; oblasti.Clear(); zastupljenost.Clear(); Console.WriteLine("Unesite duzinu testa:"); unos = Console.ReadLine(); testLength = Convert.ToInt32(unos);; do { Console.WriteLine("Unesite id oblasti:[0 - 15]"); unos = Console.ReadLine(); int oblast = Convert.ToInt32(unos); oblasti.Add(oblast); Console.WriteLine("Unesite zastupljenost:[0.1 - 1.0]"); unos = Console.ReadLine(); double zastupljeno = Convert.ToDouble(unos); zastupljenost.Add(zastupljeno); Console.WriteLine("======================================"); for (int i = 0; i < oblasti.Count; i++) { Console.WriteLine($"Oblast {oblasti[i]} je zastupljena {zastupljenost[i]}."); } Console.WriteLine("======================================"); char input; do { Console.WriteLine("Da li postoje jos oblasti?[y/n]"); input = Convert.ToChar(Console.ReadLine()[0]); }while (input != 'y' && input != 'n'); if (input == 'n') { if (zastupljenost.Sum(x => x) >= 1) { stop_flag = !stop_flag; } else { Console.WriteLine("Niste uneli dovoljnu zastupljenost! Suma zastupljenosti mora da bude vise od 100%"); } } }while (!stop_flag); Console.Clear(); Console.WriteLine("======================================"); for (int i = 0; i < oblasti.Count; i++) { Console.WriteLine($"Oblast {oblasti[i]} je zastupljena {zastupljenost[i]}."); } Console.WriteLine("======================================"); #endregion #region GenAlg var gen = new Logic.GeneticAlgorithmUse(); Test test = gen.UseAlgorithm(oblasti, zastupljenost, testLength); Console.WriteLine(); Console.WriteLine("Best test:"); if (test != null) { Console.WriteLine(test.ToString()); Console.WriteLine($"Test fitness: {test.Fitness}"); } else { Console.WriteLine("Nemoguce naci trazeni test!"); } #endregion }