PROGRAMAS PROPIOS

  • PROGRAMA 1
Este programa calcula el total a pagar por un banquete, teniendo como precio regular $65 por platillo, en caso de que el número de personas sea mayor a 100 pero menor o igual a 200, el platillo se cobrará a $75, por otra parte, si el número de personas mayor a 200, cada platillo costará $50.

from Tkinter import *
import tkMessageBox

#VENTANA
ventana = Tk()
ventana.title("Servicio de Banquetes")
ventana.geometry("450x450")
ventana.config(bg="black")

#MARCO CON INFORMACION
marco = Frame(ventana)
marco.config(bg="pink")
marco.place(x=55, y=50)
marco.columnconfigure(0, weight=1)
marco.rowconfigure(0, weight=1)

#ETIQUETAS
e1 = Label(ventana, text="Banquetes 'Sol'", font=('Charlotte',35),background="black", foreground="light pink").place(x=40, y=300)
e2 = Label(marco, text="Numero de personas:",font=('Arial',10))
e2.grid(row=3, column=4, padx=(30, 30), pady=(30, 30))

#ENTRADA DE CANTIDAD
ent1 = "   "
ent1 = Entry(marco, width=15, textvariable=ent1)
ent1.grid(row=3, column=5, padx=(30, 30), pady=(30, 30))

#CALCULAR TOTAL A PAGAR
def calcular():
    personas = int(ent1.get())
    if personas<=100:
        total = personas * 65
        tkMessageBox.showinfo("Total", "Precio por platillo: 65, Total a pagar: " + str(total))
    elif personas>100 and personas<=200:
        total = personas * 75
        tkMessageBox.showinfo("Total", "Precio por platillo: 75, Total a pagar: " + str(total))
    elif personas>200:
        total = personas * 50
        tkMessageBox.showinfo("Total", "Precio por platillo: 50, Total a pagar " + str(total))


#BOTON
b1 = Button(marco, text="Calcular",font=('Arial',10), command=calcular)
b1.grid(row=5, column=5, padx=(30, 30), pady=(30, 30))

ventana.mainloop()





  • PROGRAMA 2
Este programa calcula el total a pagar por boletos para Twenty One Pilots, donde boletos para  Pista General tienen costo de $1,900 donde no es posible adquirir más de 4, para Segundo Piso cuestan $1,500 y para Tercer Piso $1,200. También cuenta con un botón que permite ver el mapa de como están distribuidos los asientos.

from Tkinter import *
import tkMessageBox
from tkMessageBox import *

#VENTANA CON BANNERS
ventana = Tk()
ventana.title("Venta de Boletos")
ventana = Canvas(width = 500, height = 630, bg = 'black')
ventana.pack(expand = YES, fill = BOTH)
banner1 = PhotoImage(file = 'C:/Users/Casa/Videos/21p.gif')
ventana.create_image(10, 10, image = banner1, anchor = NW)
banner2 = PhotoImage(file = 'C:/Users/Casa/Videos/21pb.gif')
ventana.create_image(5, 520, image = banner2, anchor = NW)

#AREA A ESCOGER
var = StringVar(ventana)
var.set("Eliga un area")
etiqueta_area = Label(ventana, text='Area: ',background="yellow3",foreground="black",font=('Arial',10)).place(x=120, y=250)
ent_area = OptionMenu(ventana, var, "Pista General", "Segundo Piso", "Tercer Piso")
ent_area.config(background="yellow3",foreground="black")
ent_area.place(x=290, y=250)

#CANTIDAD DE BOELTOS
et1 = Label(ventana, text="Cantidad de boletos",background="yellow3",foreground="black",font=('Arial',10)).place(x=80, y=320)
arr1 = [1, 2, 3, 4, 5, 6, 7]
cantidad = StringVar()
s1 = Spinbox(ventana, textvariable=cantidad, values=arr1,background="yellow3",foreground="black").place(x=280, y=320)

#MOSTRAR MAPA DEL EVENTO
def mostrarmapa():
    mapa= Toplevel()
    mapa.title("Mapa del Evento")
    map = PhotoImage(file='C:/Users/Casa/Videos/mapa.gif')
    mostrar = Label(mapa, image=map)
    mostrar.pack()
    mapa.mainloop()

#CALCULAR TOTAL A PAGAR
def comprar():
    area = str(var.get())
    boletos = int(cantidad.get())
    total=0

    if area=="Pista General" and boletos<=4:
        total=boletos*1900
        tkMessageBox.showinfo("Total", cantidad.get()+" boletos para Pista General, su total es de: " + str(total))
    elif area=="Pista General" and boletos>4:
        showerror("Error", "No se permite adquirir mas de 4 boletos para esta area")
    elif area=="Segundo Piso" and boletos>0:
        total = boletos * 1500
        tkMessageBox.showinfo("Total", cantidad.get()+" boletos para Segundo Piso, su total es de: " + str(total))
    elif area=="Tercer Piso" and boletos>0:
        total = boletos * 1200
        tkMessageBox.showinfo("Total", cantidad.get()+" boletos para Tercer Piso, su total es de: " + str(total))


#BOTONES
b1=Button(ventana, text='Mostrar mapa',background="yellow3",foreground="black", command=mostrarmapa,font=('Arial',10)).place(x=170, y=400)
b2=Button(ventana, text='Pagar', background="yellow3",foreground="black", command=comprar,font=('Arial',10)).place(x=275, y=400)

ventana.mainloop()




Debido a que el método para mostrar las imágenes es distinto, es necesario guardarlas en una carpeta y colocar la dirección de su ubicación.






  • PROGRAMA 3
Este programa calcula el total a pagar por el envío de un paquete a Norteamérica, Centroamérica, Sudamérica, Europa o Asia. El costo se calcula dependiendo el peso del paquete, donde el costo por gramo es: Norteamérica, $11, Centroamérica $10, Sudamérica $12 , Europa $24 y Asia $27. Por otra parte, no será posible hacer envíos cuando el peso supere los 5 kg.


from Tkinter import *
import tkMessageBox
from tkMessageBox import *

#VENTANA CON IMAGEN DEL KANGURO
ventana = Tk()
ventana.title("Servicio de Paqueteria")
ventana = Canvas(width = 555, height = 380, bg = 'white')
ventana.pack(expand = YES, fill = BOTH)
gif1 = PhotoImage(file = 'C:/Users/Casa/Videos/kanguro.gif')
ventana.create_image(452, 10, image = gif1, anchor = NW)

#ETIQUETAS
e1 = Label(ventana, text="Paqueteria ",font=('Silver Pen',60),background="white", foreground="tan4")
e1.place(x=10, y=10)
e2 = Label(ventana, text="El Kanguro", font=('Silver Pen',60),background="white", foreground="tan4")
e2.place(x=225, y=10)

#MARCO QUE MUESTRA ETIQUETAS Y ENTRADAS
marco = Frame(ventana)
marco.config(bg="tan4")
marco.place(x=80, y=140)
marco.columnconfigure(0, weight=1)
marco.rowconfigure(0, weight=1)

#ETIQUETAS
e1 = Label(marco, text="Zona de Destino:",font=('Arial',10))
e1.grid(row=1, column=10, padx=(10, 10), pady=(10, 10))
e2 = Label(marco, text="Peso del paquete (gramos):",font=('Arial',10))
e2.grid(row=8, column=10, padx=(10, 10), pady=(10, 10))

#ELEGIR ZONA DE DESTINO
var = StringVar(marco)
var.set("Eliga un area")
ent_area = OptionMenu(marco, var, "Norteamerica", "Centroamerica", "Sudamerica", "Europa", "Asia")
ent_area.grid(row=1, column=100, padx=(10, 10), pady=(10, 10))

#INGRESAR PESO DEL PAQUETE
peso = "   "
peso = Entry(marco, width=15, textvariable=peso)
peso.grid(row=8, column=100, padx=(10, 10), pady=(10, 10))

#CALCULAR TOTAL A PAGAR
def calcular():
    lugar = str(var.get())
    gramos = int(peso.get())
    total = 0

    if gramos>5000:
        showerror("Error", "El peso excede los 5 KG, no es posible hacer el envio")
    elif lugar=="Norteamerica":
        total=gramos*11
        tkMessageBox.showinfo("Total"," Paquete de " + peso.get() + " gramos con destino a Norteamerica: " + str(total))
    elif lugar=="Centroamerica":
        total=gramos*10
        tkMessageBox.showinfo("Total", " Paquete de " + peso.get() + " gramos con destino a Centroamerica: " + str(total))
    elif lugar=="Sudamerica":
        total=gramos*12
        tkMessageBox.showinfo("Total", " Paquete de " + peso.get() + " gramos con destino a Sudamerica: " + str(total))
    elif lugar=="Europa":
        total=gramos*24
        tkMessageBox.showinfo("Total", " Paquete de " + peso.get() + " gramos con destino a Europa: " + str(total))
    elif lugar=="Asia":
        total=gramos*27
        tkMessageBox.showinfo("Total", " Paquete de " + peso.get() + " gramos con destino a Asia: " + str(total))


#BOTON
b1 = Button(marco, text="Calcular", command=calcular,font=('Arial',10))
b1.grid(row=15, column=30, padx=(10, 10), pady=(10, 10))
ventana.mainloop()

 

Debido a que el método para mostrar la imágene es distinto, es necesario guardarla en una carpeta y colocar la dirección de su ubicación.



  • PROGRAMA 4
Este programa calcula cuanto se debe cobrar a los alumnos y cuanto se pagará por el autobús, cuando son 100 o más alumnos, se cobrará $65, si son de 50 a 99 alumnos se cobrará $70, si son de 49 a 30 alumnos se cobrará $95, y si son menos de 30 alumnos, el autobús se cobrará a $4,000 sin importar la cantidad de alumnos.


from Tkinter import *
import tkMessageBox
from tkMessageBox import *

#VENTANA CON IMAGEN DEL KANGURO
ventana = Tk()
ventana.title("Transporte")
ventana = Canvas(width=650, height=410, bg = 'turquoise2')
ventana.pack(expand = YES, fill = BOTH)
gif1 = PhotoImage(file = 'C:/Users/Casa/Videos/transporte.gif')
ventana.create_image(452, 1, image = gif1, anchor = NW)

#ETIQUETAS
e1 = Label(ventana, text="Transportes 'Roble'",font=('Blackside',50),background="turquoise2", foreground="gray24").place(x=10, y=65)
et1 = Label(ventana, text="Cantidad de pasajeros",font=('Arial',10)).place(x=180, y=180)

#ENTRADA DE CANTIDAD
ent1 = "   "
ent1 = Entry(ventana, width=15, textvariable=ent1)
ent1.place(x=350, y=180)

#CALCULAR TOTAL A PAGAR
def calcular():
    cantidad = int(ent1.get())
    total=0

    if cantidad>=100:
        total=cantidad*65
        tkMessageBox.showinfo("Total", "Cada alumno pagara 65 y el autobus costara " + str(total))
    elif cantidad>=50 and cantidad<=99:
        total = cantidad *70
        tkMessageBox.showinfo("Total", "Cada alumno pagara 70 y el autobus costara " + str(total))
    elif cantidad>=30 and cantidad<=49:
        total = cantidad * 95
        tkMessageBox.showinfo("Total", "Cada alumno pagara 95 y el autobus costara " + str(total))
    elif cantidad<30:
        tkMessageBox.showinfo("Total", "El autobus se cobra a 4,000")


#BOTON
b1=Button(ventana, text='Calcular', command=calcular,font=('Arial',10)).place(x=300, y=250)

ventana.mainloop()





Debido a que el método para mostrar la imágene es distinto, es necesario guardarla en una carpeta y colocar la dirección de su ubicación.



Comentarios

Entradas populares de este blog

3. Suma, resta y multiplicaión en Tkinter

2. Creación de figuras con Tkinter

Evaluación de la Unidad 1: Introducción a los ambientes de graficación (TEORÍA)