Advertisement
MrBlaise

Emelt informatika érettségi 2013 május - Választások

Sep 30th, 2013
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.35 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. # Rostás Balázs - 2013 május - Választások
  4.  
  5. class Valaszto(object):
  6.  
  7.     def __init__(self, kerSzam, szavSzam, vezNev, utoNev, part):
  8.         self.kerSzam = kerSzam
  9.         self.szavSzam = szavSzam
  10.         self.vezNev = vezNev
  11.         self.utoNev = utoNev
  12.         self.part = part
  13.  
  14.     def validName(self, vezNev, utoNev):
  15.         if self.vezNev.lower() == vezNev.lower() and self.utoNev.lower() == utoNev.lower():
  16.             return(True)
  17.         else:
  18.             return(False)
  19.        
  20.     def getVote(self):
  21.         return self.szavSzam
  22.    
  23.     def getParty(self):
  24.         return self.part
  25.  
  26.     def getName(self):
  27.         nev = self.vezNev + " " + self.utoNev
  28.         return nev
  29.  
  30.     def getKer(self):
  31.         return self.kerSzam
  32.  
  33. def main():
  34.  
  35.     jogSzavSzam = 12345
  36.     valasztasLista = []
  37.     valasztoAdat = []
  38.  
  39. # 1. feladat - Fájl beolvasása
  40.  
  41.     szav = open("szavazatok.txt", "r")
  42.    
  43.     for line in szav:
  44.         valasztasLista.append(line.strip("\n").split(" "))
  45.  
  46.     for i in valasztasLista:
  47.         valasztoAdat.append(Valaszto(int(i[0]), int(i[1]), i[2], i[3], i[4]))
  48.  
  49.     szav.close()
  50.          
  51.     print("1. feladat - szavazatok.txt beolvasva\n")
  52.  
  53. # 2. feladat - Képviselőjelöltek száma
  54.  
  55.     print("2. feladat:")
  56.  
  57.     print("A helyhatósági választáson", len(valasztoAdat), "képviselőjelölt indult.\n")
  58.        
  59. # 3. feladat - Szavazatok száma/Kepviselo
  60.  
  61.     print("3. feladat:")
  62.  
  63.     vezNev = input("Kérem adja meg a keresett személy vezetéknevét: ")
  64.     utoNev = input("Kérem adja meg a keresett személy utónevét: ")
  65.  
  66.     vanSzemely = False
  67.  
  68.     for valaszto in valasztoAdat:
  69.         if valaszto.validName(vezNev, utoNev):
  70.             print()
  71.             print(vezNev, utoNev, "összesen", valaszto.getVote(), "szavazatot kapott.\n")
  72.             vanSzemely = True
  73.             break
  74.  
  75.     if not vanSzemely:
  76.         print("\nIlyen nevű képviselőjelölt nem szerepel a nyilvántartásban!\n")
  77.  
  78.  
  79. # 4. feladat - Hányan szavaztak, részvételi arány
  80.  
  81.     print("4. feladat:")
  82.    
  83.     szumSzav = 0
  84.  
  85.     for valaszto in valasztoAdat:
  86.        szumSzav += valaszto.getVote()
  87.  
  88.     reszvArany = round((szumSzav/jogSzavSzam)*100, 2)
  89.  
  90.     print("A választáson " + str(szumSzav) + " állampolgár, a jogosultak " + str(reszvArany) + "%-a vett részt.\n")
  91.  
  92. # 5. feladat - Pártokra leadott szavazatok aránya
  93.  
  94.     print("5. feladat:")
  95.    
  96.     gyep = 0
  97.     hep = 0
  98.     tisz = 0
  99.     zep = 0
  100.     fugg = 0
  101.  
  102.     for valaszto in valasztoAdat:
  103.         if valaszto.getParty() == "GYEP":
  104.             gyep += valaszto.getVote()
  105.         if valaszto.getParty() == "HEP":
  106.             hep += valaszto.getVote()
  107.         if valaszto.getParty() == "TISZ":
  108.             tisz += valaszto.getVote()
  109.         if valaszto.getParty() == "ZEP":
  110.             zep += valaszto.getVote()
  111.         if valaszto.getParty() == "-":
  112.             fugg += valaszto.getVote()
  113.  
  114.     gyep = round((gyep/szumSzav)*100, 2)
  115.     hep = round((hep/szumSzav)*100, 2)
  116.     tisz = round((tisz/szumSzav)*100, 2)
  117.     zep = round((zep/szumSzav)*100, 2)
  118.     fugg = round((fugg/szumSzav)*100, 2)
  119.  
  120.     print("Gyümölcsevők Pártja= "+ str(gyep) + "%")
  121.     print("Húsevők Pártja= "+ str(hep) + "%")
  122.     print("Tejivok Szövetsége= "+ str(tisz) + "%")
  123.     print("Zöldségevők Pártja= "+ str(zep) + "%")
  124.     print("Független jelöltek= "+ str(fugg) + "%\n")
  125.  
  126. # 6. feladat - Pártokra leadott szavazatok aránya
  127.  
  128.     print("6. feladat:")
  129.  
  130.     maxSzav = 0
  131.  
  132.     for valaszto in valasztoAdat:
  133.         if valaszto.getVote() > maxSzav:
  134.             maxSzav = valaszto.getVote()
  135.  
  136.     for valaszto in valasztoAdat:
  137.         if maxSzav == valaszto.getVote():
  138.             if valaszto.getParty() == "-":
  139.                 print(valaszto.getName(), "független")
  140.             else:
  141.                 print(valaszto.getName(), valaszto.getParty())
  142.  
  143. # 7. feladat - Kerület szetrinti gyöztesek
  144.  
  145.     print("\n7. feladat", end=" ")
  146.  
  147.     maxSzavPerKer = 0
  148.     nyertesPerKer = ""
  149.  
  150.     kepvFile = open("kepviselok.txt", "w")
  151.  
  152.     for i in range(8):
  153.         for valaszto in valasztoAdat:
  154.             if valaszto.getKer() == i+1:
  155.                 if valaszto.getVote() > maxSzavPerKer:
  156.                     maxSzavPerKer = valaszto.getVote()
  157.        
  158.  
  159.         for valaszto in valasztoAdat:
  160.             if maxSzavPerKer == valaszto.getVote() and i+1 == valaszto.getKer():
  161.                 if valaszto.getParty() == "-":
  162.                    
  163.                     nyertesNev = valaszto.getName()
  164.                     nyertesKer = valaszto.getKer()
  165.                    
  166.                     nyertesPerKer = str(nyertesKer) + " " + nyertesNev + "független\n"
  167.                    
  168.                     kepvFile.write(nyertesPerKer)
  169.                 else:
  170.                    
  171.                     nyertesNev = valaszto.getName()
  172.                     nyertesPart = valaszto.getParty()
  173.                     nyertesKer = valaszto.getKer()
  174.                    
  175.                     nyertesPerKer = str(nyertesKer) + " " + nyertesNev + " " + nyertesPart + "\n"
  176.                    
  177.                     kepvFile.write(nyertesPerKer)
  178.                        
  179.        
  180.         maxSzavPerKer = 0
  181.         nyertesPerKer = ""
  182.  
  183.     kepvFile.close()
  184.  
  185.     print("- kepviselok.txt fájl létrehova")
  186.  
  187. if __name__ == "__main__":
  188.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement