Calcular o troco

Outro Código relacionado: Calcular o Troco usando tkinter


import time
def troco():
dinheroapagar = float(input("Dinheiro a Pagar:€ "))
dinheirorecebido = float(input("Dinheiro Recebido:€ "))
if dinheroapagar == dinheirorecebido:
print("O dinheiro a pagar é igual ao dinheiro recebido.")
elif dinheirorecebido < dinheroapagar:
print("ERRO!!!\n O valor recebido é inferior ao valor a pagar")
else:
troco = dinheirorecebido - dinheroapagar
trocoarrendando = round(troco, 2)
time.sleep(5)
print("\n\n\tO Valor do troco é de {} euros".format(trocoarrendando))


def sair ():
print("***********************\n")
print("\tFim Do Programa")
print("***********************\n")
quit()

def menu():
print("\n\t\t*********************************************************"
"\n\t\t\t\t\t\t\t\tMenu Principal"
"\n\t\t*********************************************************")
escolha = input("""
A: Calcular o Troco
B: Sair
Escolha uma hipótese:
""")
escolha = escolha.lower()
if escolha == 'a':
troco()
time.sleep(5)
menu()
elif escolha == 'b':
time.sleep(5)
sair()
else:
print("Erro na Tecla!")
print("Por favor, escolha novamente.")
menu()
menu()

#Outra Versão


from tkinter import *

def calcular_troco():
try:
v_pago = float(valor_pago.get())
v_compra = float(compra_valor.get())
troco = v_pago - v_compra
moeda = opcao_moeda.get()
if troco < 0:
resultado_texto.config(text="Valor pago é insuficiente.", fg="red")
elif troco == 0:
resultado_texto.config(text="Valor pago é igual ao valor da compra.", fg="yellow")
else:
resultado_texto.config(text=f"Troco a ser dado: {troco:.2f} {moeda}", fg="green")
except ValueError:
resultado_texto.config(text="Erro: Insira valores numéricos válidos.", fg="red")

def limpar():
valor_pago_entrada.delete(0, END)
compra_valor_entrada.delete(0, END)
resultado_texto.config(text="")

root = Tk()
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Troco")

titulo = Label(text="Calcular Troco",
font=("Arial", "38", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05)

sub1 = Label(text="Valor da Compra:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
sub1.place(relx=0.05, rely=0.3)

sub2 = Label(text="Valor Pago:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
sub2.place(relx=0.23, rely=0.45)

sub3 = Label(text="Moeda:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
sub3.place(relx=0.25, rely=0.6)

compra_valor = StringVar()
compra_valor_entrada = Entry(textvariable=compra_valor, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
compra_valor_entrada.place(relx=0.62, rely=0.32, relwidth=0.3)
compra_valor_entrada.focus()

valor_pago = StringVar()
valor_pago_entrada = Entry(textvariable=valor_pago, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
valor_pago_entrada.place(relx=0.62, rely=0.45, relwidth=0.3)

opcao_moeda = StringVar()
opcao_moeda.set("€") # Valor padrão
opcao_moeda_menu = OptionMenu(root, opcao_moeda, "R$", "€", "$")
opcao_moeda_menu.place(relx=0.62, rely=0.6, relwidth=0.3)

but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=calcular_troco)
but1.place(relx=0.1, rely=0.7, relwidth=0.25, relheight=0.1)

but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.7, relwidth=0.25, relheight=0.1)

but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.7, relwidth=0.25, relheight=0.1)

resultado_texto = Label(font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.85, relwidth=0.9, relheight=0.1)

root.mainloop()

# Outra Versão tkinter


from tkinter import *

def calcular_troco():
try:
# Obtendo os valores de entrada
valor_compra = float(entry_valor_compra.get())
valor_pago = float(entry_valor_pago.get())

# Lista de denominações de moedas e cédulas disponíveis em centavos
denominacoes = [20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 25, 10, 5, 1]

# Calcula o troco total em centavos
troco_total = int(round((valor_pago - valor_compra) * 100))

if troco_total < 0:
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "O valor pago é insuficiente para cobrir o valor da compra.")
return

# Dicionário para armazenar a quantidade de cada denominação
troco = {}

# Calcula a quantidade de cada denominação necessária
for denominacao in denominacoes:
quantidade, troco_total = divmod(troco_total, denominacao)
if quantidade > 0:
troco[denominacao] = quantidade

# Dicionário para conversão de valores em centavos para representação de texto
representacao = {
20000: "200 €",
10000: "100 €",
5000: "50 €",
2000: "20 €",
1000: "10 €",
500: "5 €",
200: "2 €",
100: "1 €",
50: "50 CENT",
25: "25 CENT",
10: "10 CENT",
5: "5 CENT",
1: "1 CENT"
}

# Construindo o resultado do troco
resultado = "Troco:\n"
for denominacao, quantidade in troco.items():
resultado += f"{quantidade} x {representacao[denominacao]}\n"

# Atualizando o Text widget com o resultado
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, resultado)

except ValueError:
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "Erro de digitação. Por favor, insira valores válidos.")

def limpar_campos():
entry_valor_compra.delete(0, END)
entry_valor_pago.delete(0, END)
resultado_texto.delete(1.0, END)

# Configuração da interface gráfica
root = Tk()
root.geometry("400x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calcular Troco")

titulo = Label(root, text="Calcular Troco", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05)

label_valor_compra = Label(root, text="Valor compra:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
label_valor_compra.place(relx=0.05, rely=0.25)

entry_valor_compra = Entry(root, font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
entry_valor_compra.place(relx=0.55, rely=0.26, relwidth=0.35)

label_valor_pago = Label(root, text="Valor pago:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
label_valor_pago.place(relx=0.08, rely=0.4)

entry_valor_pago = Entry(root, font=("Arial", 12, "bold"), bg="white", fg="blue", justify='center')
entry_valor_pago.place(relx=0.55, rely=0.41, relwidth=0.35)

botao_calcular = Button(root, text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=calcular_troco)
botao_calcular.place(relx=0.1, rely=0.55, relwidth=0.25, relheight=0.1)

botao_limpar = Button(root, text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar_campos)
botao_limpar.place(relx=0.4, rely=0.55, relwidth=0.25, relheight=0.1)

botao_sair = Button(root, text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
botao_sair.place(relx=0.7, rely=0.55, relwidth=0.25, relheight=0.1)

# Adicionando o Text widget com uma barra de rolagem
frame_resultado = Frame(root, bg="#cfe2f3")
frame_resultado.place(relx=0.05, rely=0.68, relwidth=0.9, relheight=0.25)

scrollbar = Scrollbar(frame_resultado)
scrollbar.pack(side=RIGHT, fill=Y)

resultado_texto = Text(frame_resultado, font=("Arial", 12, "bold"),
bg="#cfe2f3", wrap=WORD, yscrollcommand=scrollbar.set)
resultado_texto.pack(expand=True, fill=BOTH)

scrollbar.config(command=resultado_texto.yview)

root.mainloop()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação