using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { public class Kepviselo { public int valasztokerulet, szavazatok; public string nev, part; public Kepviselo(int szam1, int szam2, string nev, string part) { this.valasztokerulet = szam1; this.szavazatok = szam2; this.nev = nev; this.part = part; } } public static class Data { public static List kepviselok = new List(); } class Program { public static void ReadData() { FileStream fileStream = new FileStream("..\\szavazatok.txt", FileMode.Open, FileAccess.Read); StreamReader streamReader = new StreamReader(fileStream); string line = streamReader.ReadLine(); while (line != null) { string[] splitted = line.Split(' '); string nev = $"{splitted[2]} {splitted[3]}"; Kepviselo kepviselo = new Kepviselo(Convert.ToInt32(splitted[0]), Convert.ToInt32(splitted[1]), nev, splitted[4]); Data.kepviselok.Add(kepviselo); line = streamReader.ReadLine(); } streamReader.Close(); fileStream.Close(); } public static int KepviseloNum() { return Data.kepviselok.Count; } public static void Feladat2() { Console.WriteLine($"A helyhatósági választáson {KepviseloNum()} képviselőjelölt indult."); } public static int SzavazatNum(string kepviselo) { foreach (var item in Data.kepviselok) { if (item.nev.ToLower() == kepviselo.ToLower()) { return item.szavazatok; } } return -1; } public static void Feladat3() { Console.WriteLine("Add meg egy képviselő nevét!"); string name = Console.ReadLine(); int num = SzavazatNum(name); if (num >= 0) { Console.WriteLine($"{name} nevű képviselőre {num}db szavazatot adtak le."); } else { Console.WriteLine("Ilyen nevű képviselőjelölt nem szerepel a nyilvántartásban!"); } } public static int SzavazokNum() { int num = 0; foreach (var item in Data.kepviselok) { num += item.szavazatok; } return num; } public static void Feladat4() { const int jogosultak = 12345; int num = SzavazokNum(); double percentage = RoundedPercentage(num, jogosultak); Console.WriteLine($"A választáson {num} állampolgár, a jogosultak {percentage}%-a vett részt."); } public static double RoundedPercentage(int num, int all) { double sol = Convert.ToDouble(num) / Convert.ToDouble(all) * 100; return Math.Round(sol, 2); } public static void Feladat5() { int jogosultak = SzavazokNum(); int GYEP = 0; int HEP = 0; int TISZ = 0; int ZEP = 0; int FUG = 0; foreach (var item in Data.kepviselok) { switch (item.part) { case "GYEP": GYEP += item.szavazatok; break; case "HEP": HEP += item.szavazatok; break; case "TISZ": TISZ += item.szavazatok; break; case "ZEP": ZEP += item.szavazatok; break; default: FUG += item.szavazatok; break; } } Console.WriteLine($"Gyermek evők pártja: {RoundedPercentage(GYEP, jogosultak)}%"); Console.WriteLine($"Herpeszesek pártja: {RoundedPercentage(HEP, jogosultak)}%"); Console.WriteLine($"Tisztáltalanok pártja: {RoundedPercentage(TISZ, jogosultak)}%"); Console.WriteLine($"Zöldségevők pártja: {RoundedPercentage(ZEP, jogosultak)}%"); Console.WriteLine($"Független jelöltek: {RoundedPercentage(FUG, jogosultak)}%"); } public static void Feladat6() { List legjobbak = new List(); int szavazatmax = Data.kepviselok[0].szavazatok; foreach (var item in Data.kepviselok) { if (item.szavazatok > szavazatmax) { szavazatmax = item.szavazatok; } } foreach (var item in Data.kepviselok) { if (item.szavazatok == szavazatmax) { legjobbak.Add(item); } } Console.WriteLine($"A legtöbb szavazat: {szavazatmax}db"); foreach (var item in legjobbak) { Console.WriteLine($"{item.nev}, {item.part}"); } } static void Main(string[] args) { ReadData(); Feladat2(); Feladat3(); Feladat4(); Feladat5(); Feladat6(); } } }