fork download
  1. class PecaMoto:
  2. def __init__(self, nome, preco, quantidade, categoria):
  3. self.nome = nome
  4. self.preco = preco
  5. self.quantidade = quantidade
  6. self.categoria = categoria
  7.  
  8. def vender(self, quantidade_vendida):
  9. if quantidade_vendida <= self.quantidade:
  10. self.quantidade -= quantidade_vendida
  11. return self.preco * quantidade_vendida
  12. else:
  13. print(f"Estoque insuficiente para a peça {self.nome}!")
  14. return 0
  15.  
  16. def atualizar_estoque(self, quantidade):
  17. self.quantidade += quantidade
  18.  
  19. def __str__(self):
  20. return f"{self.nome} ({self.categoria}) - Preço: R${self.preco} - Estoque: {self.quantidade}"
  21.  
  22. class ComercioPecasMoto:
  23. def __init__(self):
  24. self.pecas = {}
  25.  
  26. def adicionar_peca(self, nome, preco, quantidade, categoria):
  27. if nome in self.pecas:
  28. print(f"A peça {nome} já está cadastrada. Atualizando o estoque.")
  29. self.pecas[nome].atualizar_estoque(quantidade)
  30. else:
  31. self.pecas[nome] = PecaMoto(nome, preco, quantidade, categoria)
  32. print(f"Peça {nome} adicionada com sucesso!")
  33.  
  34. def vender_peca(self, nome, quantidade_vendida):
  35. if nome in self.pecas:
  36. total = self.pecas[nome].vender(quantidade_vendida)
  37. if total > 0:
  38. print(f"Venda realizada da peça {nome}! Total: R${total}")
  39. else:
  40. print(f"Peça {nome} não encontrada.")
  41.  
  42. def mostrar_estoque(self):
  43. if not self.pecas:
  44. print("Nenhuma peça cadastrada.")
  45. else:
  46. print("\nEstoque de Peças:")
  47. for peca in self.pecas.values():
  48. print(peca)
  49.  
  50. def buscar_peca_por_categoria(self, categoria):
  51. encontrados = [peca for peca in self.pecas.values() if peca.categoria.lower() == categoria.lower()]
  52. if encontrados:
  53. print(f"\nPeças da categoria {categoria}:")
  54. for peca in encontrados:
  55. print(peca)
  56. else:
  57. print(f"Nenhuma peça encontrada na categoria {categoria}.")
  58.  
  59. # Função principal para simular o uso do sistema
  60. def main():
  61. sistema = ComercioPecasMoto()
  62.  
  63. # Adicionando algumas peças
  64. sistema.adicionar_peca("Corrente", 100.00, 50, "Transmissão")
  65. sistema.adicionar_peca("Pneu", 200.00, 20, "Rodagem")
  66. sistema.adicionar_peca("Freio", 150.00, 30, "Segurança")
  67. sistema.adicionar_peca("Filtro de Óleo", 40.00, 100, "Manutenção")
  68. sistema.adicionar_peca("Amortecedor", 250.00, 15, "Suspensão")
  69.  
  70. # Exibindo estoque
  71. sistema.mostrar_estoque()
  72.  
  73. # Realizando algumas vendas
  74. print("\nRealizando vendas...")
  75. sistema.vender_peca("Pneu", 5)
  76. sistema.vender_peca("Filtro de Óleo", 10)
  77.  
  78. # Exibindo o estoque após as vendas
  79. print("\nEstoque após vendas:")
  80. sistema.mostrar_estoque()
  81.  
  82. # Buscando peças por categoria
  83. sistema.buscar_peca_por_categoria("Rodagem")
  84. sistema.buscar_peca_por_categoria("Suspensão")
  85. sistema.buscar_peca_por_categoria("Transmissão")
  86.  
  87. if __name__ == "__main__":
  88. main()
  89. # your code goes here
Success #stdin #stdout 0.1s 14072KB
stdin
Standard input is empty
stdout
Peça Corrente adicionada com sucesso!
Peça Pneu adicionada com sucesso!
Peça Freio adicionada com sucesso!
Peça Filtro de Óleo adicionada com sucesso!
Peça Amortecedor adicionada com sucesso!

Estoque de Peças:
Corrente (Transmissão) - Preço: R$100.0 - Estoque: 50
Pneu (Rodagem) - Preço: R$200.0 - Estoque: 20
Freio (Segurança) - Preço: R$150.0 - Estoque: 30
Filtro de Óleo (Manutenção) - Preço: R$40.0 - Estoque: 100
Amortecedor (Suspensão) - Preço: R$250.0 - Estoque: 15

Realizando vendas...
Venda realizada da peça Pneu! Total: R$1000.0
Venda realizada da peça Filtro de Óleo! Total: R$400.0

Estoque após vendas:

Estoque de Peças:
Corrente (Transmissão) - Preço: R$100.0 - Estoque: 50
Pneu (Rodagem) - Preço: R$200.0 - Estoque: 15
Freio (Segurança) - Preço: R$150.0 - Estoque: 30
Filtro de Óleo (Manutenção) - Preço: R$40.0 - Estoque: 90
Amortecedor (Suspensão) - Preço: R$250.0 - Estoque: 15

Peças da categoria Rodagem:
Pneu (Rodagem) - Preço: R$200.0 - Estoque: 15

Peças da categoria Suspensão:
Amortecedor (Suspensão) - Preço: R$250.0 - Estoque: 15

Peças da categoria Transmissão:
Corrente (Transmissão) - Preço: R$100.0 - Estoque: 50