Módulos

Programação Modular

Arquivo transações.txt

Venda Salgados

def salva_transacao(preco, cartao_credito, descricao):
   file = open('transacoes.txt',"a")
   file.write("%16s%07d%16s\n" %(cartao_credito,preco*100,descricao))
   file.close()

itens = ["Esfiha","Coxinha","Pastel","Pao de Queijo"]
precos = [1.50,2.20,1.80,1.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      salva_transacao(precos[escolha-1],cartao,itens[escolha-1])

Venda Salgados

Venda Salgados

  • Problemas: o banco rejeitou todo o arquivo de transações do período da manhã!

  • Todos os cartões estavam inválidos

  • Os preços estavam altos demais: rosquinha vendida por R$ 50.791,42!

  • Nos outros períodos não houve problema. O que será que aconteceu?

Venda Salgados

Venda Salgados

  • O banco mudou a ordem dos dados! [Preço / Cartão / Item]

Venda Salgados

Venda Salgados Tarde/Noite

def salva_transacao(preco, cartao_credito, descricao):
   file = open('transacoes.txt',"a")
   file.write("%16s%07d%16s\n" %(cartao_credito,preco*100,descricao))
   file.close()

itens = ["Esfiha","Coxinha","Pastel","Pao de Queijo"]
precos = [1.50,2.20,1.80,1.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      salva_transacao(precos[escolha-1],cartao,itens[escolha-1])
  • Formatação corrigida por aluno!

Venda Salgados Manhã

def salva_transacao(preco, cartao_credito, descricao):
   file = open('transacoes.txt',"a")
   file.write("%16s%07d%16s\n" %(cartao_credito,preco*100,descricao))
   file.close()

itens = ["Esfiha","Coxinha","Pastel","Pao de Queijo"]
precos = [1.50,2.20,1.80,1.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      salva_transacao(precos[escolha-1],cartao,itens[escolha-1])
  • Produtos alterados, mas esqueceram a formatação!

Módulo banco.py

Módulo banco.py

def salva_transacao(preco, cartao_credito, descricao):
   file = open('transacoes.txt',"a")
   file.write("%16s%07d%16s\n" %(cartao_credito,preco*100,descricao))
   file.close()
  • Obs.: deixar no mesmo diretório dos programas manhã e tarde/noite

Novo programa da manhã

from banco import *

itens = ["Bauru","X Salada","Calafrango"]
precos = [2.50,3.0,2.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      salva_transacao(precos[escolha-1],cartao,itens[escolha-1])

Novo programa tarde/noite

from banco import *

itens = ["Esfiha","Coxinha","Pastel","Pao de Queijo"]
precos = [1.50,2.20,1.80,1.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      salva_transacao(precos[escolha-1],cartao,itens[escolha-1])

Descontos

  • Agora sob nova direção os salgados na FATEC terão 10% de desconto!

  • Para isso será criado um módulo fatec.py

  • Inicialmente o desconto será de 10% para todos os salgados

Descontos

from banco import *
from fatec import *

itens = ["Esfiha","Coxinha","Pastel","Pao de Queijo"]
precos = [1.50,2.20,1.80,1.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      preco = desconto(precos[escolha-1])
      salva_transacao(preco,cartao,itens[escolha-1])

Descontos

  • Teremos um desconto adicional de 50% para pastéis por conta da colônia japonesa

  • Novo módulo japa.py

Os nomes são iguais! E agora?

Nomes Completos

  • A solução é adotar os nomes completos

from banco import *
import fatec
import japa

itens = ["Esfiha","Coxinha","Pastel","Pao de Queijo"]
precos = [1.50,2.20,1.80,1.20]
rodando = True

while rodando:
   opcao = 1
   for escolha in itens:
      print(str(opcao) + "." + escolha)
      opcao += 1
   print(str(opcao) + ".Finalizar")
   escolha = int(input("Escolha uma opcao: "))
   if escolha == opcao:
      #escolheu a ultima opcao Finalizar
      rodando = False
   else:
      cartao = input("Numero do cartao de credito: ")
      preco = fatec.descento(precos[escolha - 1])
      if itens[escolha - 1] == "Pastel":
         preco = japa.descento(preco)
      salva_transacao(preco,cartao,itens[escolha-1])

Nomes Completos

  • Resultado -

dis Module

Show Comments
Next Section - Interface Gráfica