Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 25 additions & 6 deletions src/frota.py
Original file line number Diff line number Diff line change
Expand Up @@ -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!")

Expand All @@ -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







59 changes: 41 additions & 18 deletions src/main.py
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -39,6 +60,8 @@
print(e)

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