183 lines
5.6 KiB
C#
183 lines
5.6 KiB
C#
|
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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|