Skip to content
51 changes: 33 additions & 18 deletions src/frota.py
Original file line number Diff line number Diff line change
@@ -1,40 +1,55 @@
class Carro:
modelo : str
marca : str
cor : str
odometro : 0.0
motor_on : False

def __init__(self, modelo : str, marca : str, cor : str,
odometro : float, motor : bool):
modelo: str
marca: str
cor: str
__odometro: 0.0
__motor_on: False
__tanque: 0.0
consumo_medio : float

def __init__(self, modelo: str, marca: str, cor: str,
odometro: float, motor: bool, tanque: float, consumo_medio: float):
self.modelo = modelo
self.marca = marca
self.cor = cor
self.odometro = odometro
self.motor_on = motor
self.__odometro = odometro
self.__motor_on = motor
self.__tanque = tanque
self.consumo_medio = consumo_medio

def ligar(self):
if not self.motor_on:
if not self.motor_on and self.__tanque > 0:
self.motor_on = True
else:
raise Exception("Erro: Motor já ligado!")

def get_tanque(self):
return self.__tanque
def acelerar(self, velocidade : float, tempo : float):
if self.motor_on:
self.odometro += velocidade * tempo
if self.motor_on and self.__tanque > 0:
km = velocidade * tempo
litros = km / self.consumo_medio

if self.__odometro >= km:
self. __tanque -= litros
else:
km = litros * self.consumo_medio
self.__tanque = 0
self.desligar()
self.__odometro += km
else:
raise Exception("Erro: Não é possível acelerar! Motor desligado!")
raise Exception("Erro: Não é possível acelerar! Motor desligado!")

def desligar(self):
if self.motor_on:
self.motor_on = False
else:
raise Exception("Erro: Motor já desligado!")

def get_odometro(self):
return self.__odometro
def __str__(self):
info = (f'Carro {self.modelo}, marca {self.marca}, '
f'cor {self.cor}\n{self.odometro} Km, '
f'motor {self.motor_on}')
f'cor {self.cor}\n{self.__odometro} Km, '
f'motor {self.motor_on} consumo {self.consumo_medio} km\l __tanque{self.__tanque}')
return info


Expand Down
69 changes: 40 additions & 29 deletions src/main.py
Original file line number Diff line number Diff line change
@@ -1,44 +1,55 @@
from frota import *
def controlar_carro(carro: Carro ):
print('1 -LIgar motor')
print('2 - Desligar motor')
print('3 - Acelerar')

op = 0
while op not in (1, 2 , 3):
op = int(input("Digite as opcoes[1-3]: "))
if op == 1:
carro.ligar ()
elif op == 2:
carro.desligar ()
elif op == 3:
v = float(input("Informe a velocidade :"))
t = float(input("Informe o tempo :"))
carro.acelerar (v,t)

print("Infos carro atual")
print(carro)

if __name__ == "__main__":
print('Cadastre um carro')
print('Cadastre o primeiro carro')
nm_modelo = input('Digite o modelo: ')
nm_marca = input('Digite a marca: ')
nm_cor = input('Digite a cor: ')
litros = float(input('Litros do tanque: '))
consu = float(input('Consumo medio: '))

kms = float(input('Digite com quantos Kms: '))
carro1 = Carro(nm_modelo, nm_marca, nm_cor, 0 ,False, litros, consu)

carro1 = Carro(nm_modelo, nm_marca, nm_cor, kms, motor = True)
print('Cadastre o segundo carro')
nm_modelo = input('Digite o modelo: ')
nm_marca = input('Digite a marca: ')
nm_cor = input('Digite a cor: ')
litros = float(input('Litros do tanque: '))
consu = float(input('Consumo medio: '))

carro2 = Carro(nm_modelo, nm_marca, nm_cor, 0 ,False, litros, consu)
'''
Controlando o carro até ele atingir 10000 Km
'''
while carro1.odometro < 10000:
while carro1.get_odometro() < 600 and carro2.get_odometro() < 600 and (carro1.get_tanque() > 0) or (carro2.get_tanque() > 0):
try:
print('1- Ligar motor')
print('2- Desligar motor')
print('3- Acelerar')

op = 0
while op not in (1,2,3):
op = int(input("Digite as opcoes[1-3]: "))
op_carro = 0
while op_carro not in [1, 2]:
op_carro = int(input("Qual carro deseja controlar ? [1,2]:"))
if op_carro == 1:
controlar_carro(carro1)
elif op_carro == 2:
controlar_carro(carro2)

if op == 1:
carro1.ligar()
elif op == 2:
carro1.desligar()
elif op == 3:
v = float(input("Informe a velocidade: "))
t = float(input("Informe o tempo: "))
carro1.acelerar(v, t)

print('Infos atuais do carro')
print(carro1)
except Exception as e:
print("Erro!")
print(e)

carro1.desligar()
print(carro1)
print('Parar para trocar óleo!!!')

print("Erro")
print(e)