diff --git a/src/frota.py b/src/frota.py index a4b3891..3479c71 100644 --- a/src/frota.py +++ b/src/frota.py @@ -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 diff --git a/src/main.py b/src/main.py index 49c199e..70b3fa1 100644 --- a/src/main.py +++ b/src/main.py @@ -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) \ No newline at end of file