diff --git a/src/frota.py b/src/frota.py index a4b3891..a29535b 100644 --- a/src/frota.py +++ b/src/frota.py @@ -2,26 +2,39 @@ class Carro: modelo : str marca : str cor : str - odometro : 0.0 + tanque = 0.0 + consumo_medio = 0.0 + odometro = 0.0 motor_on : False def __init__(self, modelo : str, marca : str, cor : str, - odometro : float, motor : bool): + tanque: float, consumo_medio: float, odometro: float, motor : bool): self.modelo = modelo self.marca = marca self.cor = cor + self.tanque = tanque + self.consumo_medio = consumo_medio self.odometro = odometro self.motor_on = motor 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 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.tanque >= litros: + self.odometro += km + self.tanque -= litros + else: + km = self.tanque * self.consumo_medio + self.odometro += km + self.tanque = 0 else: raise Exception("Erro: Não é possível acelerar! Motor desligado!") @@ -31,13 +44,19 @@ def desligar(self): else: raise Exception("Erro: Motor já desligado!") + 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'motor {self.motor_on}, ' + f'tanque {self.tanque}, ' + f'consumo_medio {self.consumo_medio}') + return info + + diff --git a/src/main.py b/src/main.py index 49c199e..d077c3a 100644 --- a/src/main.py +++ b/src/main.py @@ -1,36 +1,57 @@ from frota import * +def operar_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) + 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: ') + tanque = float(input("Tanque: ")) + consumo_medio = float(input("Consumo medio do carro: ")) - kms = float(input('Digite com quantos Kms: ')) + carro1 = Carro(nm_modelo, nm_marca, nm_cor, tanque, consumo_medio, 0 , motor = False) + + print('Cadastre o segundo carro') + nm_modelo = input('Digite o modelo: ') + nm_marca = input('Digite a marca: ') + nm_cor = input('Digite a cor: ') + tanque = float(input("Tanque: ")) + consumo_medio = float(input("Consumo medio do carro: ")) #10 km por litros + + carro2 = Carro(nm_modelo, nm_marca, nm_cor, tanque, consumo_medio, 0 , motor = False) - carro1 = Carro(nm_modelo, nm_marca, nm_cor, kms, motor = True) ''' - Controlando o carro até ele atingir 10000 Km + Controlando o carro até ele atingir 600 Km ''' - while carro1.odometro < 10000: + while carro1.odometro < 600 and carro2.odometro < 600 and \ + (carro1.tanque > 0 or carro2.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]: ")) + while op not in (1,2): + op = int(input("Qual carro (1 ou 2)? ")) 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) + operar_carro(carro1) + else: + operar_carro(carro2) print('Infos atuais do carro') print(carro1) @@ -39,6 +60,8 @@ print(e) carro1.desligar() + carro2.desligar() print(carro1) + print(carro2) print('Parar para trocar óleo!!!')