Posts

PRF192

#include <stdio.h> #include <stdlib.h> #include <string.h> // Structure to represent an expense struct Expense { char category[50]; float amount; char date[11]; // Assuming the date format is YYYY-MM-DD }; // Function to enter expenses void enterExpenses(struct Expense *expenses, int *numExpenses) { printf("Enter Expenses:\n"); printf("Enter expense category (food, transportation, housing, entertainment): "); scanf("%s", expenses[*numExpenses].category); printf("Enter expense amount: "); scanf("%f", &expenses[*numExpenses].amount); printf("Enter expense date (YYYY-MM-DD): "); scanf("%s", expenses[*numExpenses].date); (*numExpenses)++; printf("Expense added successfully!\n\n"); } // Function to list expenses for a given period void listExpenses(struct Expense *expenses, int numExpenses, char startDate[11], char endDate[11]) { printf("List of Expenses from %s to %s:\n", startDate, endDate); float totalExpenses = 0; for (int i = 0; i < numExpenses; i++) { if (strcmp(expenses[i].date, startDate) >= 0 && strcmp(expenses[i].date, endDate) <= 0) { printf("%s - %s: $%.2f\n", expenses[i].date, expenses[i].category, expenses[i].amount); totalExpenses += expenses[i].amount; } } printf("\nTotal Expenses: $%.2f\n\n", totalExpenses); } // Function to calculate and display total expenses by month in a year void statisticTotalExpensesByMonth(struct Expense *expenses, int numExpenses, char year[5]) { printf("Total Expenses by Month in %s:\n", year); float monthlyTotals[12] = {0}; for (int i = 0; i < numExpenses; i++) { if (strncmp(expenses[i].date, year, 4) == 0) { int month = atoi(expenses[i].date + 5); // Extracting month from the date monthlyTotals[month - 1] += expenses[i].amount; } } for (int i = 0; i < 12; i++) { printf("Month %d: $%.2f\n", i + 1, monthlyTotals[i]); } } int main() { struct Expense expenses[100]; // Assuming a maximum of 100 expenses int numExpenses = 0; while (1) { printf("Personal Finance Management Program:\n"); printf("1. Enter Expenses\n"); printf("2. List Expenses for a Given Period\n"); printf("3. Statistic Total Expenses by Month in a Year\n"); printf("4. Exit\n"); int choice; printf("Enter your choice (1-4): "); scanf("%d", &choice); switch (choice) { case 1: enterExpenses(expenses, &numExpenses); break; case 2: { char startDate[11], endDate[11]; printf("Enter start date (YYYY-MM-DD): "); scanf("%s", startDate); printf("Enter end date (YYYY-MM-DD): "); scanf("%s", endDate); listExpenses(expenses, numExpenses, startDate, endDate); break; } case 3: { char year[5]; printf("Enter the year: "); scanf("%s", year); statisticTotalExpensesByMonth(expenses, numExpenses, year); break; } case 4: printf("Exiting the program. Goodbye!\n"); exit(0); default: printf("Invalid choice. Please enter a number between 1 and 4.\n\n"); } } return 0; }

Post a Comment