using Microsoft.Win32; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using ValasztasGUI.View; namespace ValasztasGUI { /// /// Interaction logic for MainWindow.xaml /// public static class Eredmeny { public static List kepviselok = null; } public class Kepviselo { public int Kerulet; public int Szavazat; public string VezetekNev; public string KeresztNev; public string Part; public Kepviselo(int kerulet, int szavazat, string vezetekNev, string keresztNev, string part) { this.Kerulet = kerulet; this.Szavazat = szavazat; this.VezetekNev = vezetekNev; this.KeresztNev = keresztNev; this.Part = part.Trim(); } public string TeljesNev() { return $"{this.VezetekNev} {this.KeresztNev}"; } public static List LoadFromTxt(string path) { List kepviselok = new List(); FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read); StreamReader streamReader = new StreamReader(fileStream); var lines = streamReader.ReadToEnd().Split('\n'); foreach (var item in lines) { string[] data = item.Split(' '); Kepviselo kepviselo = new Kepviselo(Convert.ToInt32(data[0]), Convert.ToInt32(data[1]), data[2], data[3], data[4]); kepviselok.Add(kepviselo); } streamReader.Close(); fileStream.Close(); return kepviselok; } public static void SzavazatKiir(List kepviselok, string[] nev) { foreach (var item in kepviselok) { if (item.VezetekNev == nev[0] && item.KeresztNev == nev[1]) { Console.WriteLine($"{item.VezetekNev} {item.KeresztNev} nevű képviselőjelölt {item.Szavazat} darab szavazatot kapott."); return; } } Console.WriteLine("Ilyen nevű képviselőjelölt nem szerepel a nyilvántartásban!"); } public static void Legtobb(List kepviselok) { List legjobbkepviselok = new List(); Kepviselo kepviselo = kepviselok[0]; foreach (var item in kepviselok) { if (item.Szavazat > kepviselo.Szavazat) { kepviselo = item; } } legjobbkepviselok.Add(kepviselo); foreach (var item in kepviselok) { if (item.Szavazat == kepviselo.Szavazat && item.KeresztNev != kepviselo.KeresztNev && item.VezetekNev != kepviselo.VezetekNev) { legjobbkepviselok.Add(item); } } string fuggetlen = "független"; foreach (var item in legjobbkepviselok) { Console.WriteLine($"" + $"A legtöbb szavazatot kapta: " + $"\t{item.VezetekNev} {item.KeresztNev} {(item.Part == "-" ? fuggetlen : item.Part)}"); } } public static void ValosztokeruletiGyoztesek(List kepviselok) { var asd = kepviselok.OrderBy(x => x.Szavazat).OrderBy(x => x.Kerulet).GroupBy(x => x.Kerulet); StreamWriter streamWriter = new StreamWriter("nyertesek.txt", false); foreach (var item in asd) { Kepviselo kepviselo = item.Last(); streamWriter.WriteLine($"{kepviselo.Kerulet} {kepviselo.VezetekNev} {kepviselo.KeresztNev} {kepviselo.Part}"); } streamWriter.Close(); } } public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void MenuItem_Click(object sender, RoutedEventArgs e) { this.Close(); } private void informatoin_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Helyhatósági választásokat elemző program", "Névjegy"); } private void jeloltekListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { Kepviselo kepviselo = Eredmeny.kepviselok[jeloltekListBox.SelectedIndex]; nevTextBox.Text = $"{kepviselo.VezetekNev} {kepviselo.KeresztNev}"; valasztokeruletSzamaTextBox.Text = $"{kepviselo.Kerulet}"; partTextBox.Text = $"{(kepviselo.Part == "-" ? "független" : kepviselo.Part)}"; szavazatokSzamaTextBox.Text = $"{kepviselo.Szavazat}"; } private void keruletButton_Click(object sender, RoutedEventArgs e) { keruletListBox.Items.Clear(); foreach (var item in Eredmeny.kepviselok) { if (item.Kerulet == Convert.ToInt32(valasztokeruletSzamaTextBox.Text)) { keruletListBox.Items.Add(item.TeljesNev()); } } } private void open_Click(object sender, RoutedEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.ShowDialog(); string path = dialog.FileName; Eredmeny.kepviselok = Kepviselo.LoadFromTxt(path); foreach (var item in Eredmeny.kepviselok) { jeloltekListBox.Items.Add(item.TeljesNev()); } } private void jeloltekListBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e) { } private void Nyertesek_Click(object sender, RoutedEventArgs e) { Kepviselo.ValosztokeruletiGyoztesek(Eredmeny.kepviselok); } private void Statisztika_Click(object sender, RoutedEventArgs e) { if (Eredmeny.kepviselok != null) { Statisztika statisztika = new Statisztika(); statisztika.Show(); return; } MessageBox.Show("Az adatok nem kerültek importálásra!", "Hiba", MessageBoxButton.OK, MessageBoxImage.Error); } } }