Uploaded by syedab4238

Bills Tracker

advertisement
TMF1434 – Data Structure & Algorithms
Assignment – Bills Keeper
Sem 2,2021/2022
1 Introduction
This is a pair assignment and it contributes to 15% of the total grade of this course.
2 Objectives
• To evaluate student’s skills at writing an object-oriented program using C++ programming
language;
• To apply array-based list data structure in solving the problem.
3 Bills Keepers
Lisa is a busy full-time housewife and mother of 4 children. Apart from taking care of her children and
doing housework, she also manages the monthly expenses for her family, such as the expenses for food and
grocery, utility bills, phone bills, children and school costs, online shopping etc. She made the payments
for all the expenses in 4 payment methods which are cash, e-wallet, internet banking and credit card.
In order to ensure she is spending within the budget; she needs your help to create a Bills Tracking system
to keep track of the monthly bill payments. The system should be able to record all the payments made in
different payment methods and calculate the total amounts of expenses by different payment methods.
Different information is needed for the 4 different types of payment methods.
[Note: The bills tracking
system will not keep track of the details of the items purchased in each bill.]
4 Assignment Requirements
Write a program in C++ to design your solutions for the Bills Tracking system. You are encouraged to use
your creativity and logical thinking to design your classes with high cohesion in order to increase the
reusability and maintainability of your system.
Your program should meet all the requirements as below:
a)
Apply the 3 object-oriented programming principles; encapsulation, inheritance and basic
polymorphism in your solution;
b)
Each class should have at least one (1) new attribute, one (1) new method and one (1) constructor;
c)
Each class should contain at least one (1) setter method or getter method to set or to retrieve the
value(s) of class’ attribute(s);
d)
Create array(s) with a maximum size of 10 to keep the details of the bill payment records;
e)
Your system should be able to provide all the functions as listed below continuously based on user
selection. The key functions of your program interface are:
Page 1 of 2
f)
Functions
Descriptions
Menu
- Display main menu options
Add a new bill payment
- Ability to create the details of a bill of any payment method and add
it into an array (bills list).
Delete a bill payment
- Ability to delete an existing bill payment record from the array
(bills list).
View all bill payment
records
- Ability to view all the bill details of each payment method recorded
in the array (bills list).
View a bill payment
- View the details of the selected bill payment record in the bills list.
Exit
- Exit from the program
Your program should operate continuously until the user chooses to terminate the program;
g) The assignment solution should apply Object Oriented Programming concepts and array-based list,
Your solution may use pointer (but not linked list).
h) Create at least 5 pre-set data in your program (e.g. various bills paid with different payment methods).
Your program should be able to view all the information of these pre-set delivery requests through the
“View All” function once your program is executed; and
i)
Submit a report that contains a UML class diagram and screenshots of your program output. Your
report should not exceed 3 pages (not including the front cover).
Report Format: Font Type - Times New Roman; Font Size – 12; Line Spacing- 1.5; and paragraph text
arrangement - justified. The font size captured on the program screenshots and UML diagram should
be similar to Times New Roman, size 12.
5 Submission
• All documents must be submitted via the link provided in eLEAP latest by 4 May 2022
(Wednesday) at 5.00 pm.
Any late submission will get 20% of the assignment mark penalty
deduction per day;
• Submit your assignment in a zipped file containing your report (*.pdf) and working C++ source codes
(*.cpp). Use the following zipped file naming format for submission:
AssignGroup_ListOfMatricNo#.zip
E.g: AssignG01_12345_45625.zip
• Each pair is required to submit only one copy of the group assignment.
• Files submitted with incorrect format will not be entertained.
• Any plagiarism (more than 50% similarity between two files) will be graded as a zero for the two
files.
• Evidence snapshots or files of your team’s online collaborations (eg. social media, email,
collaboration tools, etc.)
Page 2 of 2
Download