Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Track Expenses Using Object-Oriented Programming

Objectives:

.     Design C++ class

.     Build an application that has multiple files.

.     Understand how to call methods defined in C++ class

.     Handle input errors and invalid values

Description:

Write a menu-driven program that provides the following options:

1. Show All

2. Spend

3. Search expenses containing this string

4. Search expenses with greater than or equal to this amount 5. Exit

It allows the user to select a menu option to display all expenses, add new entry, search for a substring and find the list of entries greater a given amount.

Requirements:

1.   Create multiple C++ files (put them in the same directory/folder):

a.   Create a header file called “expense.h”.  This header file contains your

Expense class data definitions and method prototypes.  (Hint: Look at

BankAccount.h in week 6 examples).  All data members must be declared as “private” and provide getter/setter methods to access them.

b.   Create a new CCP file called “expense.cpp” to implement methods defined your header file.

c.   Create a main program called “main-expense.cpp” that displays the menu and utilize your Expense (Expense must implement these methods) class to:

i.   Display description and amount

ii.   Determine if a substring is part of the description and return true or false

2.   The program must produce the same output as provided. The output should be formatted nicely as given.

3.   The program must use array of Expense class.  Hint: you must define a default constructor in Expense.h to allow array declarations.

4.   The program must not use global variables. In another words, it must use local variables and pass-by-value or pass-by-reference parameters.

5.   The program must define the maximum number of entries such as 100 and keeps track   of the actual count of the current number of expenses entered by the user.  You can also utilize vector class to keep track of your expense objects.

6.   You should use data file to save or read from. At the beginning of your program, it reads   data from a data file named “expenses.txt” and initialize your object array with this data. Your program must check to see if the file exists or has data to read.  Before your

program exits, it must save all expenses amount and descriptions into the data file.

7.   You must write at least 2 functions in main-expense.cpp.

8.   You need to submit all header files, CPP files and data file “expenses.txt”

Required error handling:

The program MUST perform the following checks:

1.   Check for invalid amount (negative or 0 number)

2.   Description cannot be empty.

3.   Search is case-insensitive (ignore case, but the user may type in any case).

Sample run:

D:\>TrackExpensesUsingArray.exe

Welcome to my expense tracker.

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 1

There is no expense entry available.

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Monthly telephone and Internet services

Please enter the amount: 45.25

AMOUNT(45.25) DESC(Monthly telephone and Internet services)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Monthly electric, water and gas

Please enter the amount: 200.20

AMOUNT(200.2) DESC(Monthly electric, water and gas)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Rent

Please enter the amount: 1200

AMOUNT(1200) DESC(Rent)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Netflix membership Please enter the amount: 12.90

AMOUNT(12.9) DESC(Netflix membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Amazon membership Please enter the amount: 99

AMOUNT(99) DESC(Amazon membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Monthly gym membership Please enter the amount: 50

AMOUNT(50) DESC(Monthly gym membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 1

Expenses:

AMOUNT(45.25) DESC(Monthly telephone and Internet services) AMOUNT(200.2) DESC(Monthly electric, water and gas)

AMOUNT(1200) DESC(Rent)

AMOUNT(12.9) DESC(Netflix membership)

AMOUNT(99) DESC(Amazon membership)

AMOUNT(50) DESC(Monthly gym membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 3

Please enter the search string: membership

AMOUNT(12.9) DESC(Netflix membership)

AMOUNT(99) DESC(Amazon membership)

AMOUNT(50) DESC(Monthly gym membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 3

Please enter the search string: MEMBERSHIP

AMOUNT(12.9) DESC(Netflix membership)

AMOUNT(99) DESC(Amazon membership)

AMOUNT(50) DESC(Monthly gym membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 4

Please enter the amount: 50

AMOUNT(200.2) DESC(Monthly electric, water and gas)

AMOUNT(1200) DESC(Rent)

AMOUNT(99) DESC(Amazon membership)

AMOUNT(50) DESC(Monthly gym membership)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 4

Please enter the amount: 200

AMOUNT(200.2) DESC(Monthly electric, water and gas)

AMOUNT(1200) DESC(Rent)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 4

Please enter the amount: 1000

AMOUNT(1200) DESC(Rent)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 2

Please enter the description for the expense: Home repair and improvement

Please enter the amount: -1

Invalid amount. Amount cannot be negative or string. Please try it again .

Please enter the amount: -100

Invalid amount. Amount cannot be negative or string . Please try it again .

Please enter the amount: -1000

Invalid amount. Amount cannot be negative or string . Please try it again .

Please enter the amount: 175.75

AMOUNT(175.75) DESC(Home repair and improvement)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 1

Expenses:

AMOUNT(45.25) DESC(Monthly telephone and Internet services) AMOUNT(200.2) DESC(Monthly electric, water and gas)

AMOUNT(1200) DESC(Rent)

AMOUNT(12.9) DESC(Netflix membership)

AMOUNT(99) DESC(Amazon membership)

AMOUNT(50) DESC(Monthly gym membership)

AMOUNT(175.75) DESC(Home repair and improvement)

Expense Tracking Menu:

1. show all

2. spend

3. search expenses containing this string

4. search expenses with greater than or equal to this amount 5. exit

Enter your option: 5

D:\>