import pandas as pd
import matplotlib.pyplot as plt
# تعریف DataFrame برای ذخیره اطلاعات مالی
data = {
'Category': [],
'Type': [], # Income or Expense
'Amount': [],
'Date': []
}
df = pd.DataFrame(data)
def add_transaction(category, t_type, amount, date):
global df
new_transaction = {'Category': category, 'Type': t_type, 'Amount': amount, 'Date': date}
df = pd.concat([df, pd.DataFrame([new_transaction])], ignore_index=True)
print("Transaction added successfully!")
def view_summary():
if df.empty:
print("No transactions recorded.")
return
print("\nSummary of Transactions:")
print(df)
def generate_report():
if df.empty:
print("No transactions recorded to generate a report.")
return
# گروهبندی دادهها بر اساس نوع (درآمد و هزینه)
summary = df.groupby('Type')['Amount'].sum()
# رسم نمودار دایرهای
plt.figure(figsize=(6, 6))
summary.plot(kind='pie', autopct='%1.1f%%', startangle=90, labels=summary.index, colors=['#8BC34A', '#F44336'])
plt.title('Income vs Expense')
plt.ylabel('')
plt.show()
# منوی اصلی
while True:
print("\nPersonal Finance Manager")
print("1. Add Transaction")
print("2. View Transactions")
print("3. Generate Report")
print("4. Exit")
choice = input("Choose an option: ")
if choice == "1":
category = input("Enter category (e.g., Food, Salary, Rent): ")
t_type = input("Enter type (Income/Expense): ")
amount = float(input("Enter amount: "))
date = input("Enter date (YYYY-MM-DD): ")
add_transaction(category, t_type, amount, date)
elif choice == "2":
view_summary()
elif choice == "3":
generate_report()
elif choice == "4":
print("Exiting program. Have a great day!")
break
else:
print("Invalid choice. Please try again.")