Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3.1
- #-*-coding:utf-8-*-
- '''
- 2008-as emelt szintű számtech érettségi programozás feladata python 3.1-ben
- kiinduló prg
- '''
- import datetime
- class SMS:
- def __init__(self,óra,perc,telefonszám,smsszöveg):
- self.idő=datetime.time(eval(óra),eval(perc))
- self.telefonszám=telefonszám
- self.smsszöveg=smsszöveg
- def __repr__(self):
- return '({0.idő},{0.telefonszám},{0.smsszöveg})'.format(self)
- def __str__(self):
- return repr(self)
- class SMSLista:
- def __init__(self,nyerslista):
- self.nyerslista=nyerslista
- self.smsek=[]
- lista=open(self.nyerslista,'r',).readlines()
- i=0
- for sorok in lista[1:len(lista)]:
- i+=1
- if i/2!=int(i/2):
- óra,perc,telefonszám=sorok.split()
- else:
- smsszöveg=sorok[:-2]
- self.smsek.append(SMS(óra,perc,telefonszám,smsszöveg))
- print(self.smsek)
- def legutolsó_sms(self):
- sms=self.smsek[0]
- for i in self.smsek:
- if sms.idő<i.idő:
- sms=i
- self.eredmény_sms('Legutolsó',sms)
- def leghosszabb_sms(self):
- sms=self.smsek[0]
- for i in self.smsek:
- if len(sms.smsszöveg)<len(i.smsszöveg):
- sms=i
- self.eredmény_sms('Leghosszabb',sms)
- def legrövidebb_sms(self):
- sms=self.smsek[0]
- for i in self.smsek:
- if len(sms.smsszöveg)>len(i.smsszöveg):
- sms=i
- self.eredmény_sms('Legrövidebb',sms)
- def karakter_hossz_stat(self,mettől,meddig):
- számoló=0
- for i in self.smsek:
- if mettől-1<len(i.smsszöveg) and meddig+1>len(i.smsszöveg):
- számoló+=1
- print('{0}-{1} := {2}'.format(mettől,meddig,számoló))
- def azonos_telefonról_jővő_sms_közti_leghosszabb_idő(self,telefonszám):
- leghosszabb_idő=datetime.time(0,0)
- self.telről_jővő_smsek=[]
- for i in self.smsek:
- if i.telefonszám==telefonszám:
- self.telről_jővő_smsek.append(i.idő)
- if len(self.telről_jővő_smsek)<2:
- print('\nNincs elegendő üzenet \n')
- else:
- for i in range(1,len(self.telről_jővő_smsek)):
- aktuális_különbség=self.időkülönbség(self.telről_jővő_smsek[i],self.telről_jővő_smsek[i-1])
- if leghosszabb_idő<aktuális_különbség:
- leghosszabb_idő=aktuális_különbség
- print('\n{0} volt a leghosszabb idő két sms között ami a {1} telefonszámról jött \n'.format(leghosszabb_idő,telefonszám))
- def üzenet_kézi_bevitele(self):
- adatok=('óra: ','perc: ','telefonszám: ','sms szövege: ')
- sms=[]
- for i in adatok:
- sms.append(input(i))
- self.smsek.append(SMS(sms[0],sms[1],sms[2],sms[3]))
- def telefonba_nem_férő_üzenetek_száma_óránkénti_megtekintéskor(self):
- eredmény=0
- for i in range(1,24):
- számoló=0
- for j in self.smsek:
- if j.idő.hour==i:
- számoló+=1
- if számoló>10:
- eredmény+=számoló-10
- print('\n{0} sms miatt kellene hívni a szolgáltatót'.format(eredmény))
- def sms_csoportosítás_txtbe(self):
- kiírni=open('smski.txt','w')
- telefonszámok=[]
- for i in self.smsek:
- if telefonszámok.count(i.telefonszám)==0:
- telefonszámok.append(i.telefonszám)
- telefonszámok=sorted(telefonszámok)
- for i in telefonszámok:
- kiírni.write('{0}\n'.format(i))
- for j in self.smsek:
- if j.telefonszám==i:
- kiírni.write(' {0} : {1}\n'.format(j.idő,j.smsszöveg))
- kiírni.close()
- def időkülönbség(self,idő1,idő2):
- idő_minusz=(idő1.hour*60+idő1.minute)-(idő2.hour*60+idő2.minute)
- idő_minusz_óra=int(idő_minusz/60)
- idő_minusz_perc=(idő_minusz%60)
- return datetime.time(idő_minusz_óra,idő_minusz_perc)
- def eredmény_sms(self,szöveg,sms):
- print(szöveg,'SMS érkezési ideje: {0} telefonszáma: {1} üzenete: {2} \n'.format(sms.idő,sms.telefonszám,sms.smsszöveg))
- print('\n1.feladat')
- nap=SMSLista('/home/zfoxatis/Dokumentumok/sms.txt')
- print('\n2.feladat')
- nap.legutolsó_sms()
- print('\n3.feladat')
- nap.leghosszabb_sms()
- nap.legrövidebb_sms()
- print('\n4.feladat')
- nap.karakter_hossz_stat(1,20)
- nap.karakter_hossz_stat(21,40)
- nap.karakter_hossz_stat(41,60)
- nap.karakter_hossz_stat(61,80)
- nap.karakter_hossz_stat(81,100)
- print('\n5.feladat')
- nap.telefonba_nem_férő_üzenetek_száma_óránkénti_megtekintéskor()
- print('\n6.feladat')
- nap.azonos_telefonról_jővő_sms_közti_leghosszabb_idő('123456789')
- print('\n7.feladat')
- nap.üzenet_kézi_bevitele()
- print('\n8.feladat')
- nap.sms_csoportosítás_txtbe()
- '''
- sms.txt
- 30
- 9 11 123456789
- Szia, mikor jossz?
- 9 13 434324223
- Nem kerek ebedet!
- 9 14 434324223
- Hova menjek erted?
- 9 16 343567452
- Nem erek oda idoben. Hivd fel a fonokot es ments ki!
- 9 20 123456789
- Hozd el a mintas pulcsimat!
- 9 21 434324223
- NyertĂźnk a palyazaton!
- 9 40 434325432
- A nyelvvizsgadra mennyi potlekot kapsz? Nekem meg nem fizettek egy fillert sem. :-(
- 9 45 434324223
- A gep nem bootol be. Aramot kap, de a monitoron nem jelenik meg semmi.
- 9 46 434325632
- Hova tetted a palyazati urlapot? Mar fel oraja keressuk.
- 9 51 545432542
- Erdekli Ont egy telefon? A vezetek nelkuli telefon most a legolcsobb!
- 9 53 434324223
- Elvesztetted a fogadast! :-)
- 10 8 123456789
- Hol vagy mar olyan sokaig? Varlak!
- 10 12 454343545
- Add fel postan meg ma a palyazatot!
- 10 25 231287556
- Tibi megjott, majd hivd fel delben!
- 10 44 565643244
- Erdekli Ont egy telefon? A vezetek nelkuli telefon most a legolcsobb!
- 11 1 545453345
- Potyara jottem, az ugyfel nem volt itt.
- 11 3 545345345
- Erdekli Ont egy telefon? A vezetek nelkuli telefon most a legolcsobb!
- 11 4 853556565
- Sot, az urge visszalepett.
- 11 11 854655455
- Hova szallitsam a butort?
- 11 13 854655455
- Mikor kezdodik a meccs? A jegyet veszed?
- 11 14 123456789
- Este szinhazba megyunk, ugye tudod?
- 11 19 435435345
- A megrendelt konyve megerkezett.
- 11 21 123456789
- Holnap jonnek Agiek!
- 11 22 434324223
- Utalhatod a penzt a lakasert!
- 11 29 654647445
- Erdekli Ont egy telefon? A vezetek nelkuli telefon most a legolcsobb!
- 11 36 434324223
- Kesz a kocsi!
- 11 50 434324223
- No mi van, akarsz focizni?
- 12 3 434324223
- Lesz egy londoni ut, erdekel?
- 12 44 854655455
- Hany napra kersz szallast?
- 12 48 123456789
- A szinhaz ugrott, csotores van!
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement