Componentes: Jackson Linzmaier, Luana Renata Humochinski, Vanderlei Evandro Schmidt
Objetivos: Aaplicar os conceitos aprendidos na disciplina de Programação orientadas a objetos, no desenvolvimento de um programa relacionado ao sistema de uma concessionária.
Metodologia de desenvolvimento:
Identificação de Requisitos:
Compreender as necessidades essenciais do programa.
Modelagem de Classes:
Criar classes representativas para entidades principais (veículos, clientes, vendas).
Implementação:
Desenvolver código para as classes, enfatizando encapsulamento e funcionalidades específicas.
Lógica de Negócios:
Integrar classes para formar a lógica central do programa.
Implementar funcionalidades principais, como adição de veículos e vendas.
Interface Simples:
Criar uma interface básica para interação do usuário.
Incluir opções para ações principais, como consulta de veículos e vendas.
Testes e Ajustes:
Realizar testes para identificar e corrigir possíveis erros.
Refinamentos Opcionais:
Considerar melhorias no código e adição de recursos extra.
Documentação Básica:
Criar documentação resumida explicando o propósito das classes e funcionalidades.
Entrega Final:
Finalizar o desenvolvimento da aplicação.
Demonstração:
Apresentar a aplicação, destacando funcionalidades-chave.
CÓDIGO
class Veiculo:
def __init__(self, modelo, marca, ano, preco):
self._modelo = modelo
self._marca = marca
self._ano = ano
self._preco = preco
def exibir_informacoes(self):
print(f"Modelo: {self._modelo}")
print(f"Marca: {self._marca}")
print(f"Ano: {self._ano}")
print(f"Preço: R${self._preco:.2f}")
print()
class Carro(Veiculo):
def __init__(self, modelo, marca, ano, preco):
super().__init__(modelo, marca, ano, preco)
class ListaCarros:
def __init__(self, nome):
self._nome = nome
self._carros_estoque = []
self._clientes = []
self._vendas_realizadas = []
def adicionar_carro_estoque(self, carro):
self._carros_estoque.append(carro)
def vender_carro(self, carro, cliente, quantidade_parcelas):
if carro in self._carros_estoque:
self._carros_estoque.remove(carro)
venda = Venda(carro=carro, cliente=cliente, quantidade_parcelas=quantidade_parcelas)
self._vendas_realizadas.append(venda)
print("Venda realizada com sucesso!")
venda.exibir_resumo_venda()
else:
print("Carro não disponível no estoque.")
def exibir_carros_estoque(self):
print(f"Carros disponíveis no estoque da {self._nome}:")
print()
for carro in self._carros_estoque:
print("---------------------------")
carro.exibir_informacoes()
def exibir_vendas_realizadas(self):
print(f"Vendas realizadas pela {self._nome}:")
for venda in self._vendas_realizadas:
venda.exibir_resumo_venda()
class Venda:
def __init__(self, carro, cliente, quantidade_parcelas):
self._carro = carro
self._cliente = cliente
self._quantidade_parcelas = quantidade_parcelas
def exibir_resumo_venda(self):
print("Resumo da venda:")
self._carro.exibir_informacoes()
self._cliente.exibir_informacoes()
print(f"Quantidade de Parcelas: {self._quantidade_parcelas}")
print()
class Cliente:
def __init__(self, nome, endereco, telefone):
self._nome = nome
self._endereco = endereco
self._telefone = telefone
def exibir_informacoes(self):
print(f"Nome do Cliente: {self._nome}")
print(f"Endereço: {self._endereco}")
print(f"Telefone: {self._telefone}")
print()
# Exemplo de uso
if __name__ == "__main__":
revenda = ListaCarros(nome="Revenda de Carros")
carro1 = Carro(modelo="Civic", marca="Honda", ano=2022, preco=80000.0)
carro2 = Carro(modelo="Corolla", marca="Toyota", ano=2022, preco=85000.0)
revenda.adicionar_carro_estoque(carro1)
revenda.adicionar_carro_estoque(carro2)
while True:
print("\nMenu:")
print("1. Consultar carros disponíveis")
print("2. Adicionar carro ao estoque")
print("3. Vender carro")
print("4. Consultar vendas realizadas")
print("0. Sair")
escolha = input("Escolha a opção desejada: ")
print()
if escolha == "1":
revenda.exibir_carros_estoque()
elif escolha == "2":
modelo_carro = input("Digite o modelo do carro: ")
marca_carro = input("Digite a marca do carro: ")
ano_carro = input("Digite o ano do carro: ")
preco_carro = float(input("Digite o preço do carro: "))
novo_carro = Carro(modelo=modelo_carro, marca=marca_carro, ano=ano_carro, preco=preco_carro)
revenda.adicionar_carro_estoque(novo_carro)
print("Carro adicionado ao estoque com sucesso!")
elif escolha == "3":
revenda.exibir_carros_estoque()
escolha_carro = int(input("Digite o número do carro que deseja vender: ")) - 1
if 0 <= escolha_carro < len(revenda._carros_estoque):
cliente_nome = input("Digite o nome do cliente: ")
cliente_endereco = input("Digite o endereço do cliente: ")
cliente_telefone = input("Digite o telefone do cliente: ")
cliente = Cliente(nome=cliente_nome, endereco=cliente_endereco, telefone=cliente_telefone)
quantidade_parcelas = int(input("Digite a quantidade de parcelas: "))
revenda.vender_carro(
carro=revenda._carros_estoque[escolha_carro],
cliente=cliente,
quantidade_parcelas=quantidade_parcelas
)
else:
print("Escolha inválida.")
elif escolha == "4":
revenda.exibir_vendas_realizadas()
elif escolha == "0":
break
break
else:
print("Escolha inválida. Tente novamente.")