Question: can you simplify this code and change sort from high to low to total expenses. Cannot use vector.h : #include #include using namespace std; class
can you simplify this code and change "sort from high to low" to "total expenses".
Cannot use vector.h :
#include
#include
using namespace std;
class Expense
public:
Expensedouble amount const string& category : amountamount categorycategory
void setAmountdouble amount
thisamount amount;
double getAmount const
return amount;
void setCategoryconst string& category
thiscategory category;
const string& getCategory const
return category;
private:
double amount;
string category;;
class FinanceTracker
public:
FinanceTracker : expensesnullptr count capacity
expenses new Expensecapacity;
~FinanceTracker
delete expenses;
void addExpenseconst Expense& expense
if count capacity
resize;
expensescount expense;
void displayExpenses const
if count
cout No expenses found." endl;
return;
cout "Expenses:";
for int i ; i count; i
cout "Amount: $ expensesigetAmount Category: expensesigetCategory endl;
Expense searchByCategoryconst string& category, int& resultsCount const
resultsCount ;
for int i ; i count; i
if expensesigetCategory category
resultsCount;
if resultsCount return nullptr;
Expense results new ExpenseresultsCount;
int index ;
for int i ; i count; i
if expensesigetCategory category
resultsindex expensesi;
return results;
void sortByAmountbool ascending true
for int i ; i count ; i
for int j ; j count i ; j
if ascending && expensesjgetAmount expensesj getAmount
ascending && expensesjgetAmount expensesj getAmount
swapexpensesj expensesj ;
private:
Expense expenses;
int count; int capacity;
void resize capacity ;
Expense newExpenses new Expensecapacity;
for int i ; i count; i
newExpensesi expensesi;
delete expenses;
expenses newExpenses;
void swapExpense& a Expense& b
Expense temp a;
a b; b temp;
;
int main
FinanceTracker tracker;
int choice;
double amount;
string category;
do
cout "Personal Finance Tracker
; cout Add Expense
; cout Display Expenses
; cout Search by Category
; cout Sort Expenses Low to High
; cout Sort Expenses High to Low
; cout Exit
; cout "Enter your choice: ;
while cin choice
cout "Invalid input. Please enter a number: ;
cin.clear;
cin.ignorenumericlimits::max;
cin.ignorenumericlimits::max
; clear the buffer
switch choice case :
cout "Enter amount: ;
while cin amount
cout "Invalid input. Please enter a number: ;
cin.clear;
cin.ignorenumericlimits::max;
cin.ignorenumericlimits::max
; clear the buffer
cout "Enter category: ;
getlinecin category;
tracker.addExpenseExpenseamount category; break;
case :
tracker.displayExpenses; break;
case :
cout "Enter category to search: ;
getlinecin category;
int resultsCount;
Expense results tracker.searchByCategorycategory resultsCount;
if results nullptr
cout No expenses found for that category." endl;
else
cout "Search Results:
; for int i ; i resultsCount; i
cout "Amount: $ resultsigetAmount Category: resultsigetCategory endl;
delete results;
break;
case :
tracker.sortByAmount;
cout "Expenses sorted from low to high." endl;case :
tracker.sortByAmountfalse;
cout "Expenses sorted from high to low." endl; break;
case :cout "Exiting..." endl;
break;
default:
cout "Invalid choice. Please try again." endl;
while choice ;
return ;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
