Mundo em Python

Classificação do Hotel

from tkinter import *


def limpar():
Certificações_entrada.delete(0, END)
Avaliação_hóspedes_entrada.delete(0, END)
Localização_entrada.delete(0, END)
Infraestrutura_entrada.delete(0, END)
Qualidade_serviços_entrada.delete(0, END)
resultado_texto.config(text="")
def app():
try:
certificações = float(Certificações.get())
avaliação_hospedes = float(Avaliação_hóspedes.get())
localização = float(Localização.get())
infraestrutura = float(Infraestrutura.get())
qualidade_serviços = float(Qualidade_serviços.get()) # Validação para garantir que os valores estão entre 0 e 100
if (0 <= certificações <= 100 and 0 <= avaliação_hospedes <= 100 and
0 <= localização <= 100 and 0 <= infraestrutura <= 100 and
0 <= qualidade_serviços <= 100): # Pesos
peso_servicos = 0.3
peso_infraestrutura = 0.25
peso_localizacao = 0.2
peso_avaliacao = 0.15
peso_certificacoes = 0.1

# Cálculo da pontuação total
pontuacao = (qualidade_serviços * peso_servicos +
infraestrutura * peso_infraestrutura +
localização * peso_localizacao +
avaliação_hospedes * peso_avaliacao +
certificações * peso_certificacoes) # Determinação da classificação
if pontuacao >= 90:
estrelas = 5
elif pontuacao >= 80:
estrelas = 4
elif pontuacao >= 70:
estrelas = 3
elif pontuacao >= 60:
estrelas = 2
else:
estrelas = 1

resultado_texto.config(text=f"Pontuação: {pontuacao:.2f}\nClassificação: {estrelas} Estrelas") else:
resultado_texto.config(text="Os valores devem estar entre 0 e 100.") except ValueError:
resultado_texto.config(text="Digitação inválida! Insira valores numéricos.")
root = Tk()
root.geometry("600x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Classificação do Hotel") titulo = Label(text="Classificação do Hotel", font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05) Sub_titulo = Label(text="0 a 100 ", font=("Arial", 15, "bold"), bg="#103030", fg="#49e3e3")
Sub_titulo.place(relx=0.45, rely=0.15) # Labels e Entradas
texto_sub1 = Label(text="Qualidade serviços:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.08, rely=0.2) Qualidade_serviços = StringVar()
Qualidade_serviços_entrada = Entry(textvariable=Qualidade_serviços, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Qualidade_serviços_entrada.place(relx=0.55, rely=0.2, relwidth=0.35) texto_sub2 = Label(text="Infraestrutura:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.18, rely=0.3) Infraestrutura = StringVar()
Infraestrutura_entrada = Entry(textvariable=Infraestrutura, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Infraestrutura_entrada.place(relx=0.55, rely=0.3, relwidth=0.35) texto_sub3 = Label(text="Localização:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.2, rely=0.4) Localização = StringVar()
Localização_entrada = Entry(textvariable=Localização, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Localização_entrada.place(relx=0.55, rely=0.4, relwidth=0.35) texto_sub4 = Label(text="Avaliação hóspedes:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub4.place(relx=0.05, rely=0.5) Avaliação_hóspedes = StringVar()
Avaliação_hóspedes_entrada = Entry(textvariable=Avaliação_hóspedes, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Avaliação_hóspedes_entrada.place(relx=0.55, rely=0.5, relwidth=0.35) texto_sub5 = Label(text="Certificações:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub5.place(relx=0.18, rely=0.6) Certificações = StringVar()
Certificações_entrada = Entry(textvariable=Certificações, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Certificações_entrada.place(relx=0.55, rely=0.6, relwidth=0.35) # Botões
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=app)
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(text="", font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.83, relwidth=0.9, relheight=0.15) root.mainloop()
0