Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MrBlaise/7022871 to your computer and use it in GitHub Desktop.
Save MrBlaise/7022871 to your computer and use it in GitHub Desktop.
Emelt informatika érettségi 2013 május - Választások / Solution for Advanced Computer Science Matura 2013 may (Hungary)
#!/usr/bin/env python3
# Rostás Balázs - Emelt informatika érettségi 2013 május - Választások
class Valaszto(object):
def __init__(self, kerSzam, szavSzam, vezNev, utoNev, part):
self.kerSzam = kerSzam
self.szavSzam = szavSzam
self.vezNev = vezNev
self.utoNev = utoNev
self.part = part
def validName(self, vezNev, utoNev):
if self.vezNev.lower() == vezNev.lower() and self.utoNev.lower() == utoNev.lower():
return(True)
else:
return(False)
def getVote(self):
return self.szavSzam
def getParty(self):
return self.part
def getName(self):
nev = self.vezNev + " " + self.utoNev
return nev
def getKer(self):
return self.kerSzam
def main():
jogSzavSzam = 12345
valasztasLista = []
valasztoAdat = []
# 1. feladat - Fájl beolvasása
szav = open("szavazatok.txt", "r")
for line in szav:
valasztasLista.append(line.strip("\n").split(" "))
for i in valasztasLista:
valasztoAdat.append(Valaszto(int(i[0]), int(i[1]), i[2], i[3], i[4]))
szav.close()
print("1. feladat - szavazatok.txt beolvasva\n")
# 2. feladat - Képviselőjelöltek száma
print("2. feladat:")
print("A helyhatósági választáson", len(valasztoAdat), "képviselőjelölt indult.\n")
# 3. feladat - Szavazatok száma/Kepviselo
print("3. feladat:")
vezNev = input("Kérem adja meg a keresett személy vezetéknevét: ")
utoNev = input("Kérem adja meg a keresett személy utónevét: ")
vanSzemely = False
for valaszto in valasztoAdat:
if valaszto.validName(vezNev, utoNev):
print()
print(vezNev, utoNev, "összesen", valaszto.getVote(), "szavazatot kapott.\n")
vanSzemely = True
break
if not vanSzemely:
print("\nIlyen nevű képviselőjelölt nem szerepel a nyilvántartásban!\n")
# 4. feladat - Hányan szavaztak, részvételi arány
print("4. feladat:")
szumSzav = 0
for valaszto in valasztoAdat:
szumSzav += valaszto.getVote()
reszvArany = round((szumSzav/jogSzavSzam)*100, 2)
print("A választáson " + str(szumSzav) + " állampolgár, a jogosultak " + str(reszvArany) + "%-a vett részt.\n")
# 5. feladat - Pártokra leadott szavazatok aránya
print("5. feladat:")
gyep = 0
hep = 0
tisz = 0
zep = 0
fugg = 0
for valaszto in valasztoAdat:
if valaszto.getParty() == "GYEP":
gyep += valaszto.getVote()
if valaszto.getParty() == "HEP":
hep += valaszto.getVote()
if valaszto.getParty() == "TISZ":
tisz += valaszto.getVote()
if valaszto.getParty() == "ZEP":
zep += valaszto.getVote()
if valaszto.getParty() == "-":
fugg += valaszto.getVote()
gyep = round((gyep/szumSzav)*100, 2)
hep = round((hep/szumSzav)*100, 2)
tisz = round((tisz/szumSzav)*100, 2)
zep = round((zep/szumSzav)*100, 2)
fugg = round((fugg/szumSzav)*100, 2)
print("Gyümölcsevők Pártja= "+ str(gyep) + "%")
print("Húsevők Pártja= "+ str(hep) + "%")
print("Tejivok Szövetsége= "+ str(tisz) + "%")
print("Zöldségevők Pártja= "+ str(zep) + "%")
print("Független jelöltek= "+ str(fugg) + "%\n")
# 6. feladat - Pártokra leadott szavazatok aránya
print("6. feladat:")
maxSzav = 0
for valaszto in valasztoAdat:
if valaszto.getVote() > maxSzav:
maxSzav = valaszto.getVote()
for valaszto in valasztoAdat:
if maxSzav == valaszto.getVote():
if valaszto.getParty() == "-":
print(valaszto.getName(), "független")
else:
print(valaszto.getName(), valaszto.getParty())
# 7. feladat - Kerület szetrinti gyöztesek
print("\n7. feladat", end=" ")
maxSzavPerKer = 0
nyertesPerKer = ""
kepvFile = open("kepviselok.txt", "w")
for i in range(8):
for valaszto in valasztoAdat:
if valaszto.getKer() == i+1:
if valaszto.getVote() > maxSzavPerKer:
maxSzavPerKer = valaszto.getVote()
for valaszto in valasztoAdat:
if maxSzavPerKer == valaszto.getVote() and i+1 == valaszto.getKer():
if valaszto.getParty() == "-":
nyertesNev = valaszto.getName()
nyertesKer = valaszto.getKer()
nyertesPerKer = str(nyertesKer) + " " + nyertesNev + "független\n"
kepvFile.write(nyertesPerKer)
else:
nyertesNev = valaszto.getName()
nyertesPart = valaszto.getParty()
nyertesKer = valaszto.getKer()
nyertesPerKer = str(nyertesKer) + " " + nyertesNev + " " + nyertesPart + "\n"
kepvFile.write(nyertesPerKer)
maxSzavPerKer = 0
nyertesPerKer = ""
kepvFile.close()
print("- kepviselok.txt fájl létrehova")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment