Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # Rostás Balázs - 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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement