Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- from datetime import datetime
- import os
- class FuelLog:
- def __init__(self, filename='fuel_logs.json'):
- self.filename = filename
- self.logs = self.load_logs()
- def load_logs(self):
- """Load logs from the JSON file."""
- if os.path.exists(self.filename):
- with open(self.filename, 'r') as file:
- return json.load(file)
- return []
- def save_logs(self):
- """Save logs to the JSON file."""
- with open(self.filename, 'w') as file:
- json.dump(self.logs, file, indent=4)
- def add_log(self, date_time, odometer_reading, liters_filled, total_amount):
- self.logs.append({
- 'date_time': date_time,
- 'odometer_reading': odometer_reading,
- 'liters_filled': liters_filled,
- 'total_amount': total_amount
- })
- self.save_logs() # Save logs after adding
- def get_logs(self):
- return self.logs
- def calculate_average_consumption(self):
- if not self.logs:
- return 0
- total_liters = sum(log['liters_filled'] for log in self.logs)
- total_distance = sum(log['odometer_reading'] for log in self.logs)
- if total_distance == 0:
- return 0
- return total_liters / total_distance * 100 # L/100 km
- def display_menu():
- print("\nFuel Management Application")
- print("1. Add Fuel Log")
- print("2. View Fuel Logs")
- print("3. Calculate Average Consumption")
- print("4. Exit")
- def main():
- fuel_log = FuelLog()
- while True:
- display_menu()
- choice = input("Choose an option (1-4): ")
- if choice == '1':
- date_time = input("Enter Date and Time (YYYY-MM-DD HH:MM): ")
- # Validate the date and time format
- try:
- datetime.strptime(date_time, '%Y-%m-%d %H:%M')
- except ValueError:
- print("Invalid date and time format. Please use YYYY-MM-DD HH:MM.")
- continue
- odometer_reading = float(input("Enter Odometer Reading (in km): "))
- liters_filled = float(input("Enter Fuel Filled (in liters): "))
- total_amount = float(input("Enter Total Amount (in currency): "))
- fuel_log.add_log(date_time, odometer_reading, liters_filled, total_amount)
- print("Fuel log added successfully.")
- elif choice == '2':
- logs = fuel_log.get_logs()
- if not logs:
- print("No fuel logs available.")
- else:
- print("\nFuel Logs:")
- for i, log in enumerate(logs, start=1):
- print(f"• {i}. Date & Time: {log['date_time']}, Odometer: {log['odometer_reading']} km, "
- f"Liters: {log['liters_filled']}, Total Amount: {log['total_amount']}\n")
- elif choice == '3':
- average_consumption = fuel_log.calculate_average_consumption()
- print(f"Average Fuel Consumption: {average_consumption:.2f} L/100 km\n")
- elif choice == '4':
- print("Exiting the application.")
- break
- else:
- print("Invalid option. Please try again.")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement