ProgaOra/20240212_valasztas/ConsoleApp1/Program.cs

183 lines
5.6 KiB
C#
Raw Normal View History

2024-02-12 10:17:35 +00:00
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<Kepviselo> kepviselok = new List<Kepviselo>();
}
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<Kepviselo> legjobbak = new List<Kepviselo>();
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();
}
}
}