Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python Tkinter: Arvonlisävero

koodaaja [16.07.2021 10:39:57]

#

Tämä ohjelma laskee arvonlisäveron määrän, kun tiedetään verokanta sekä veroton tai verollinen hinta.Verokanta valitaan valintanappuloista ja hinta syötetään tekstikenttään. Esimerkiksi jos verokanta on 14% ja hinta on verollinen lasketaan alv:n määrä kaavalla a*0.14/1.14.
Verokannat ovat 10, 14 ja 24 prosenttia. 24% on yleinen verokanta ja muut alennettuja verokantoja. Esimerkiksi elintarvikkeet kuuluvat alennettuun verokantaan. Verollinen ja veroton hinta on laitettu eri näppäimiin. Laskeminen suoritettaan erillisessä metodissa.

Seuraavaksi keskityn tietorakenteisiin ja olen vähän aikaa lähettämättä koodeja.

from tkinter import *

#Tämä ohjelma laskee arvonlisäveron määrän.
#Syötteenä käytetään joko verollista tai verotonta hintaa.
#Ohjelmassa on kolme eri arvolisäveroprosenttia.


root = Tk()


def Laske(kanta,kerroin,rahaSumma):
 #Lasketaan arvolisäveron määrä, kun tiedetään verokanta
 prosentti = 0.0
 if (kanta == 1):
  prosentti = 24.0
 elif (kanta == 2):
  prosentti = 14.0
 elif (kanta == 3):
  prosentti = 10.0

 t = rahaSumma*(prosentti/100.0)
 if (kerroin == 2):
  t /= (prosentti/100.0)+1.0

 return t


def Veroton():
 #Lasketaan alv:n määrä lähtötiedon ollessa veroton hinta.
 rahaSumma = float(e1.get())
 t = Laske(verokanta.get(),1,rahaSumma)
 tulos.set("Tulos:" + str(t))


def Verollinen():
 #Lasketaan alv: määrä lähtötiedon ollessa verollinen hinta
 rahaSumma = float(e1.get())
 t = Laske(verokanta.get(),2,rahaSumma)
 tulos.set("Tulos:" + str(round(t*100.0)/100.0))


frame = Frame(root)
frame.pack()
#Ensimmäiseen frameen lisätään valinnat, jotka ovat alv:n prosentit.
verokanta = IntVar()

radio1 = Radiobutton(frame,text="24%", variable=verokanta,value=1)
radio1.pack()
radio2 = Radiobutton(frame,text="14%",variable=verokanta,value=2)
radio2.pack()
radio3 = Radiobutton(frame,text="10%",variable=verokanta,value=3)
radio3.pack()

#Toinen frame
#Toiseen kehykseen laitetaan tekstikenttä ja näppäimet.
frame2 = Frame(root)
frame2.pack()
selite = StringVar()
selite.set("Veroton/Verollinen hinta")
l1 = Label(frame2,textvariable=selite)
l1.pack()
e1 = Entry(frame2,bd=5)
e1.pack()
b1 = Button(frame2,text="Veroton",command=Veroton)
b1.pack()
b2 = Button(frame2,text="Verollinen",command=Verollinen)
b2.pack()

#Kolmas kehys.
frame3 = Frame(root)
frame3.pack()
tulos = StringVar()
tulos.set("Tulos:")
l2 = Label(frame3,textvariable=tulos)
l2.pack()

root.mainloop()

muuskanuikku [16.07.2021 12:08:04]

#

koodaaja kirjoitti:

Seuraavaksi keskityn tietorakenteisiin ja olen vähän aikaa lähettämättä koodeja.

Et ole koskaan tainnut avata, että mikä sinua motivoi tätä roskaa suoltamaan yleensäkään?

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta