import 'dart:io'; void main() { List> incomeList = []; List> expenseList = []; print('Welcome to the Budget Management Application!'); print('Please choose an option:'); print('1. Add income'); print('2. Add expense'); print('3. View summary'); print('4. Exit\n'); bool running = true; while (running) { stdout.write('Enter your choice: '); String? choice = stdin.readLineSync(); if (choice == '1') { stdout.write('Enter income description: '); String? description = stdin.readLineSync(); if (description == null || description.trim().isEmpty) { print('Invalid description!\n'); } else { stdout.write('Enter income amount: '); String? amountInput = stdin.readLineSync(); if (amountInput != null && amountInput.trim().isNotEmpty) { try { double amount = double.parse(amountInput.trim()); if (amount < 0) { print('Amount cannot be negative!\n'); } else { incomeList.add({ 'description': description.trim(), 'amount': amount, }); print('Income added!\n'); } } catch (e) { print('Invalid amount!\n'); } } else { print('Invalid amount!\n'); } } } else if (choice == '2') { stdout.write('Enter expense description: '); String? description = stdin.readLineSync(); if (description == null || description.trim().isEmpty) { print('Invalid description!\n'); } else { stdout.write('Enter expense amount: '); String? amountInput = stdin.readLineSync(); if (amountInput != null && amountInput.trim().isNotEmpty) { try { double amount = double.parse(amountInput.trim()); if (amount < 0) { print('Amount cannot be negative!\n'); } else { expenseList.add({ 'description': description.trim(), 'amount': amount, }); print('Expense added!\n'); } } catch (e) { print('Invalid amount!\n'); } } else { print('Invalid amount!\n'); } } } else if (choice == '3') { print('Summary:'); double totalIncome = 0.0; for (var income in incomeList) { totalIncome += income['amount']; } double totalExpenses = 0.0; for (var expense in expenseList) { totalExpenses += expense['amount']; } print('Total income: \$${totalIncome.toStringAsFixed(0)}'); print('Total expenses: \$${totalExpenses.toStringAsFixed(0)}'); double netAmount = totalIncome - totalExpenses; if (netAmount > 0) { print('Net profit: \$${netAmount.toStringAsFixed(0)}'); double tax = netAmount * 0.15; print('Tax to be paid: \$${tax.toStringAsFixed(0)}\n'); } else if (netAmount < 0) { print('Net loss: \$${(-netAmount).toStringAsFixed(0)}\n'); } else { print('Net profit: \$0\n'); } } else if (choice == '4') { print('Exiting the application. Goodbye!'); running = false; } else { print('Invalid choice.\n'); } } }