2025-02-21 05:58:11 +00:00
|
|
|
|
using Microsoft.Win32;
|
|
|
|
|
using System;
|
2025-02-20 05:55:21 +00:00
|
|
|
|
using System.Collections.Generic;
|
2025-02-21 05:58:11 +00:00
|
|
|
|
using System.IO;
|
2025-02-20 05:55:21 +00:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
2025-02-21 05:58:11 +00:00
|
|
|
|
using System.Windows.Controls.Primitives;
|
2025-02-20 05:55:21 +00:00
|
|
|
|
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;
|
2025-02-22 08:59:35 +00:00
|
|
|
|
using ValasztasGUI.View;
|
2025-02-20 05:55:21 +00:00
|
|
|
|
|
|
|
|
|
namespace ValasztasGUI
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Interaction logic for MainWindow.xaml
|
|
|
|
|
/// </summary>
|
2025-02-21 05:58:11 +00:00
|
|
|
|
|
|
|
|
|
public static class Eredmeny
|
|
|
|
|
{
|
2025-02-22 08:59:35 +00:00
|
|
|
|
public static List<Kepviselo> kepviselok = null;
|
2025-02-21 05:58:11 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
2025-02-21 09:44:52 +00:00
|
|
|
|
this.Part = part.Trim();
|
2025-02-21 05:58:11 +00:00
|
|
|
|
}
|
|
|
|
|
|
2025-02-21 09:44:52 +00:00
|
|
|
|
public string TeljesNev()
|
2025-02-21 05:58:11 +00:00
|
|
|
|
{
|
2025-02-21 09:44:52 +00:00
|
|
|
|
return $"{this.VezetekNev} {this.KeresztNev}";
|
2025-02-21 05:58:11 +00:00
|
|
|
|
}
|
2025-02-21 09:44:52 +00:00
|
|
|
|
|
2025-02-21 05:58:11 +00:00
|
|
|
|
public static List<Kepviselo> LoadFromTxt(string path)
|
|
|
|
|
{
|
|
|
|
|
List<Kepviselo> kepviselok = new List<Kepviselo>();
|
|
|
|
|
|
|
|
|
|
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<Kepviselo> 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<Kepviselo> kepviselok)
|
|
|
|
|
{
|
|
|
|
|
List<Kepviselo> legjobbkepviselok = new List<Kepviselo>();
|
|
|
|
|
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<Kepviselo> kepviselok)
|
|
|
|
|
{
|
|
|
|
|
var asd = kepviselok.OrderBy(x => x.Szavazat).OrderBy(x => x.Kerulet).GroupBy(x => x.Kerulet);
|
|
|
|
|
|
2025-02-21 09:44:52 +00:00
|
|
|
|
StreamWriter streamWriter = new StreamWriter("nyertesek.txt", false);
|
2025-02-21 05:58:11 +00:00
|
|
|
|
|
|
|
|
|
foreach (var item in asd)
|
|
|
|
|
{
|
|
|
|
|
Kepviselo kepviselo = item.Last();
|
|
|
|
|
streamWriter.WriteLine($"{kepviselo.Kerulet} {kepviselo.VezetekNev} {kepviselo.KeresztNev} {kepviselo.Part}");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
streamWriter.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2025-02-20 05:55:21 +00:00
|
|
|
|
public partial class MainWindow : Window
|
|
|
|
|
{
|
|
|
|
|
public MainWindow()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
2025-02-21 05:58:11 +00:00
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
{
|
2025-02-21 09:44:52 +00:00
|
|
|
|
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}";
|
2025-02-21 05:58:11 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void keruletButton_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
2025-02-21 09:44:52 +00:00
|
|
|
|
keruletListBox.Items.Clear();
|
|
|
|
|
foreach (var item in Eredmeny.kepviselok)
|
|
|
|
|
{
|
|
|
|
|
if (item.Kerulet == Convert.ToInt32(valasztokeruletSzamaTextBox.Text))
|
|
|
|
|
{
|
|
|
|
|
keruletListBox.Items.Add(item.TeljesNev());
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-02-21 05:58:11 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
{
|
2025-02-21 09:44:52 +00:00
|
|
|
|
jeloltekListBox.Items.Add(item.TeljesNev());
|
2025-02-21 05:58:11 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2025-02-21 09:44:52 +00:00
|
|
|
|
|
|
|
|
|
private void jeloltekListBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Nyertesek_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Kepviselo.ValosztokeruletiGyoztesek(Eredmeny.kepviselok);
|
|
|
|
|
}
|
2025-02-22 08:59:35 +00:00
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
2025-02-20 05:55:21 +00:00
|
|
|
|
}
|
|
|
|
|
}
|