Task 1 Using C# and Visual Studio, design and implement a standalone command line application that fulfils the following requirements: 1. The user shall be able to enter the following values: a. Gross...



Task 1


Using C# and Visual Studio, design and implement a standalone command line application that

fulfils the following requirements:
1. The user shall be able to enter the following values:
a. Gross monthly income (before deductions).
b. Estimated monthly tax deducted.
c. Estimated monthly expenditures in each of the following categories:
i. Groceries
ii. Water and lights
iii. Travel costs (including petrol)
iv. Cell phone and telephone


2. The user shall be able to choose between renting accommodation or buying a property.
3. If the user selects to rent, the user shall be able to enter the monthly rental amount.
4. If the user selects to buy a property, the user shall be required to enter the following

values for a home loan:
a. Purchase price of property
b. Total deposit
c. Interest rate (percentage)
d. Number of months to repay (between 240 and 360)
5. The software shall calculate the monthly home loan repayment for buying a property

based on the values that the user entered. (See

https://www.siyavula.com/read/maths/grade-10/finance-and-growth/09-finance-andgrowth-03 for more information on how to calculate this).
6. If the monthly home loan repayment is more than a third of the user’s gross monthly

income, the software shall alert the user that approval of the home loan is unlikely.
7. The software shall calculate the available monthly money after all the specified deductions

have been made.
8. The software shall not persist the user data between runs. The data shall only be stored in

memory while the software is running.
Non-functional requirements:
1. You are required to use internationally acceptable coding standards. Include

comprehensive comments explaining variable names, methods, and the logic of

programming code.
2. You are required to use classes and inheritance. Create an abstract class Expense, from

which HomeLoan, etc., can be derived.

3. Store the expenses in an array.



Task 2


The application must still perform all the functions from Task 1, with the following features added:
1. The user shall be able to choose whether to buy a vehicle.
2. If the user selects to buy a vehicle, the user shall be required to enter the following values

for vehicle financing:
a. Model and make.
b. Purchase price.
c. Total deposit.
d. Interest rate (percentage).
e. Estimated insurance premium.
3. The software shall calculate the total monthly cost of buying the car (insurance plus loan

repayment). Assume that all cars will be repaid over a period of five years.
4. The software shall notify the user when the total expenses, including loan repayments,

exceed 75% of their income.
5. Display the expenses to the user in descending order by value.
Non-functional requirements:
1. You are required to use internationally acceptable coding standards. Include

comprehensive comments explaining variable names, methods, and the logic of

programming code.
2. You are required to use classes and inheritance.
3. You are required to use a generic collection to store the expenses, and no longer an array.
4. You are required to use a delegate to notify the user when expenses exceed 75% of their

income



Task 3



For this task, you are required to update your application to have a graphical user interface (GUI)

built using  Windows Presentation Foundation (WPF)


All the same functionality must be available in the new user interface that was in the command

line application from Task 2 (just presented in a more user-friendly way), with  one of the following features added:


1. The user shall be able to choose to save up a specified amount by a certain date for a

specified reason, e.g. save R100 000 for an honours degree over five years. Given the

interest rate that will be earned on the savings, calculate how much the monthly saving

should be to reach the goal.




NB: Do Task 3 only


Jun 09, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here