need this done pls in a very simple format
Name:_______________________ ITSS / OPRE 3312 – Object-Oriented Programming Instructor – Professor Khan Project: Project 1 – Retirement Planning Total Points Possible: 50 pts Exercise Overview Implement a Java program that provides a retirement plan. The user inputs key assumptions that can be varied to yield different scenarios. The output of the system is 2 key values. First is the projected future value of the retirement account at the time retirement starts. Second is the annual retirement payout. Functional Requirements (how the code will work from the user perspective) · System displays a description of the system. · User is prompted for and enters several different necessary values for variables. · Inflation rate · Investment growth rate · Year for investing activity to commence · Year for investing activity to stop and retirement to commence · Amount to be invested into the retirement fund · Number of years planned to live in retirement · System displays a rehash of the key variable values and the calculated values. Technical Requirements (how you must code it) The system should include the following Java components: · System consists of 4 phases. 1. Entering of the variable values. 2. Calculation of the discount factor because of the delay in starting investment. 3. Calculation of the future value of the retirement fund when investing period stops and retirement period begins. 4. Calculation of the annual payment during retirement. · Name of your source code main class as follows: YourName_Section000_Project1.java · Variables (other than local vars) should be declared at the beginning of the main method. · Printf method (System.out.printf();) for printing of the values that require decimals. Hints and suggestions. · Use comments to label the different sections (and subsections) of your code. · While writing code, print variable values to console frequently. · Use simple input values to facilitate checking of math. Students to complete the following sections: Student Name: Prof. Khan Class and Section: ITSS 3312, Section 501 or 002 Example output (copy and paste from the Eclipse console) Welcome to the Retirement Planning System! We are going to ask you some questions about your retirement plans... And then tell you how much you can plan to receive per year in retirement. Let's start by entering some key assumptions. What is the assumed rate of inflation? E.g., enter 0.02 for 2%: 0.02 What is the assumed rate of growth of our investment? E.g., enter 0.10 for 10%: 0.1 Now let's think about timing and the amount of your planned investment. When do you want to start saving for retirement? Enter a year, e.g., 2026: 2026 How much do you plan to invest per year? 12000 When do you want to stop saving and begin retirement? Enter a year, e.g., 2050: 2056 How many years do you expect to live in retirement? Enter number of years, e.g., 20: 30 Here are the results of our analysis... Investment Growth Rate: 10.00% Inflation Rate: 2.00% Real Growth Rate: 8.00% Current Year: 2021 Investment Start Year: 2026 Years until starting of investment: 5 Annual Investment Amount: 12000.0 Discount factor from Current Year to Inv Start Year: 0.906 Future Value of Investment in 2056: 1231249.13 Annual Retirement Payout from 2056 to 2086: 30350.20 Research and Analysis. Describe the problem including input, processing, primary calculations, and output in your own words (10 pts). Type response here. In essence, a retirement system is a combination of the accumulation of payments into a fund throughout the investment period to achieve a future value, and then the payout of the future value as an annuity throughout the retirement years. There are multiple complex equations for calculating the time value of money, including discount factors, future values, and annuity payouts. I consulted the website, http://www.tvmcalcs.com/index.php/tvm/formulas/regular_annuity_formulas , to help in the implementation of the calculations. Discount Factor calculation discToCurrentYear = 1 / (Math.pow((1 + inflRate), (startInvYear - currentYear))); Future Value calculation futureValue = discToCurrentYear * invPerYear * (((Math.pow(1 + realGrowthRate, endInvYear - startInvYear) - 1) / realGrowthRate)); Annuity Payout calculation retPayment = futureValue / ((Math.pow(1 + inflRate, retYears ) - 1) / inflRate) ; I used the method, Math.pow(arg1, arg2), several times since many of the calculations require raising factors to powers for the number of years. The inclusion of a delay period before the start of the investment period added an extra step to calculate the loss of value from the delay. This is the discToCurrentYear factor, which is based on the inflation rate. I wanted to get the current year from a Java class, so I consulted the website: https://www.java67.com/2016/12/how-to-get-current-day-month-year-from-date-in-java8.html , which provided the syntax for the classes Date and Calendar. Date and Calendar classes Date today = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(today); currentYear = cal.get(Calendar.YEAR); Design. Describe the major steps for solving the problem (10 pts). Type response here. I divided my program into 3 main sections with subsections and denoted these using comments as follows: · Variables declaration · Gathering of inputs · Calculations · Discount factor for delay until investment starts. · Future value of the retirement fund when investment ends and retirement payouts begin. · Retirement payout amount. Coding. Source code and output (25 pts). Submit your source code, your .java file, as a second file when you submit your project. Testing. Describe how you tested this program (5 pts). Include descriptions of testing for specific calculations and/or algorithms, methods, and logic. I started implementing the most basic portions of the code first, using simple inputs, such as 10% for investment rate, 2% for inflation rate, and 1 or 2 years for the periods, so I could ensure the results were intuitively correct. I compared the results from my simple coded calculations to those on an Excel spreadsheet to ensure the calculations were correct. I started with the inside of the calculations, such as “ 1 + realGrowthRate “ and printed the results to the console. I added variables one at a time and checked to ensure the math in my code was correct as I did so. Again, I used simple input variables to make it easier to do the math checking. I printed many interim values and factors as I added complexity to the code set. Submission Instructions Submission. Submit 2 files in eLearning. First, after writing/pasting responses above, save this Word document on your computer, and upload this document to your submission in elearning. When you save this document, save it with the final name as follows: [your name]_Project 1.doc or .docx. It must be a Word document. Google docs are not accepted in eLearning. Second, export your .java file to your computer and submit it as a second file in eLearning. The TA will download, review, and execute the code in this .java file as part of the grading. To export a .java file to your computer: In Eclipse on the Package Explorer, click on the .java file you want to send. Then click on File > Export > General / File System > Folder and file name for the file you are sending. Browse for the folder you want to copy it to, such as: C:\Users\[your_name]\Documents\[folder for ITSS 3312]. Then click Finish. Then you can upload and submit it in eLearning from your Documents file. Rubric Research and Analysis (10 pts). Key computations are listed and well-explained. Special Classes/methods used are identified and described on why they were used. Design (10 pts). Design is logical, well-organized, and easy to follow. Design should be evident in the code as comments are used to identify sections and sub-sections. Design write-up above describes the thinking and process for developing the code. Coding (25 pts). System fulfills the functional requirements (10 pts). System fulfills the technical requirements (10 pts). Other coding metrics (5 pts). Code is clear and well organized, follows the design described above, includes comments in the code. Code uses Java conventions for identifiers (var and method names), adding to the ease of following and understanding. Code use Java conventions for indention and spacing, making code easy to read. Code is efficient and uses the appropriate Java tools and statements. System is user-friendly and logical; in other words, it is intuitive for the user. Testing (5 pts). Testing is comprehensive, covering important functions and components, and addresses key use cases. PAGE 2