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