Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please turn the scenario above into coding Assignment Background When prospective home buyers which to purchase a new home, they can take out a loan

image text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedPlease turn the scenario above into coding

Assignment Background When prospective home buyers which to purchase a new home, they can take out a loan from a bank to allow them to buy the home without having the full purchase price. This is called a mortgage. The mortgage loan is paid back to the bank over time with interest. When looking at available homes, it is helpful to understand how various factors impact the mortgage. A buyer must be aware of the principal loan amount, the down payment, the annual percentage rate (APR) of the loan, the length of the loan, the property taxes, the cost of living within a given area, the cost of homeowner's insurance, and realtor costs. We will ignore a few of these factors to simplify the problem space. For this assignment, you will design a program that asks the users to provide some of the following details: the desired location of the house, the desired size of the house in square feet, the desired maximum monthly payment, the expected down payment, and the current APR. Using this information, the program will compute and output either the estimated monthly payment or the maximum square footage that the buyer should consider given the values provided. Assignment Specifications 1. You will develop a Python program which calculates details for a mortgage loan for one or more houses based on the input variables described in detail below. 2. The program will first print a simple welcome message (use the provided strings), and then repeatedly ask if the user wishes to process another mortgage. If the user's response is the letter Y or the letter Y, the program will proceed with the steps to calculate the values associated with a new set of inputs for a mortgage loan. If the user's response is anything else, the program will quit. 3. When the user chooses to process a mortgage loan, the program will prompt the user to enter the desired location of the house, the desired square footage of the house, the user's maximum monthly payment, the user's expected down payment, and the current APR. You should use the prompts provided for each of these inputs in the file "strings.txt". Users will be advised to enter as much information as possible or "NA" if they don't have a value to input. The program will behave in response to which values are present and which are missing. 4. For each of the inputs, handle the input as follows. For location, the user must provide one of the following cities: Seattle, San Francisco, Austin, East Lansing. The starter file contains the corresponding property tax rates and real estate prices per square foot for each of these locations. If the user types any other value, use the average national values for those two metrics and display the unknown location message. For location, the user must provide one of the following cities: Seattle, San Francisco, Austin, East Lansing. The starter file contains the corresponding property tax rates and real estate prices per square foot for each of these locations. If the user types any other value, use the average national values for those two metrics and display the unknown location message. For square footage, you may assume the user has typed a positive value or "NA". If the value is numerical, convert it to a float; otherwise, you will compute a maximum square footage given the values of the other variables (presuming those values are valid). The square footage will be multiplied by the price per square foot based on the location selected. For maximum monthly payment, you may assume the user has typed a positive value or "NA". If the value is numerical, convert it to a float; otherwise, you will compute the details of the mortgage loan given the values of the other variables (presuming those values are valid). For down payment, you may assume the user has typed a positive value or "NA". If the value is numerical, convert it to a float; otherwise, you should assign the variable a value of 0 . You will deduct the down payment from the total cost of the house to get the amount of the mortgage loan. For APR, you may assume the user has typed a positive value between 0 and 100 or "NA". If it is numerical, convert it to a float and store it for use in your calculations (i.e., not as you would display it, nor as the user typed it); otherwise, assign the value stored in the APR_2023 constant that has been provided. Note: if neither desired square footage nor maximum monthly payment have been provided, display the message for not enough information. 5. If the user has provided a square footage, you should estimate the home cost for the given location based on the corresponding values. You will also need to calculate the principal value based on the estimated home cost and the down payment. Mortgage loan information will be displayed containing all the provided information as well as the monthly taxes and the monthly payment. The message should be displayed like the one shown below. In Austin, an average 1000eq. foot house would cost $349000. A 30-year fixed rate mortgage with a dokn payment of 850000 at 4.08 APR results in an expected monthly payment of \$526.11 (taxe8) + \$1427.47 (mortgage payment) - \$1953.88 If the user has provided a maximum monthly payment in addition to the square footage, print a message telling the user whether they can or cannot purchase the home described given their maximum monthly payment amount. An example is shown below. Based an your maximum monchly payment of $2200. D0 you can afford this house. Finally, ask the user if they wish to see the amortization table for the mortgage loan. An amortization table shows how the monthly payment will be allocated each month. Some of the payment is directed to pay off the interest owed on the loan, and the rest goes to reduce the overall balance of the loan. The amount of interest is based on the current balance remaining and the monthly interest rate. Use proper formatting for the amortization table with a header and well-spaced values for month number, interest payment, principal payment, and remaining balance (see examples). 6. If the user has not provided the square footage but has provided the maximum monthly payment, calculate the maximum square footage that their monthly payment can afford in the location specified. Report this as shown below. Hint: use the formula below and solve for the principal first. ageuminy a 30 -year fixed rate nortgage with a 910000 dowa payneat at 6.72 afk. Items 1-7 of the Coding Standard will be enforced for this project. 2. The important information related to the calculation of the mortgage loan appears below. The formula for calculating the monthly payment owed (before considering taxes or other associated costs) is: M=P(I(1+I)N)/((1+I)N1) Where M= the monthly payment; P= the principal amount or current loan balance; I= the interest rate (note the APR is annual and you need a monthly rate for this calculation); N=the number of payments in the loan term. The formula for calculating the cost of a home from the desired square footage and price per square foot for a given location is: cost = square footage price per square foot The formula for determining the amount of the mortgage loan is: loan amount =cost down payment The formula for calculating the monthly property taxes due is: monthly taxes = home price property tax rate /12 When creating the amortization table, you will need to multiply the remaining loan amount by the monthly contribution to the annual percentage rate. Once you have determined the amount of your payment that is used to pay of the loan interest, you can then calculate the amount of your payment that should be deducted from the remaining loan amount. payment to interest = remaining loan amount APR /12 payment to loan = payment payment to interest remaining loan amount = remaining loan amount payment to loan 3. The program will produce reasonable and readable output, with appropriate labels for all values displayed. Dollar amounts should be rounded to two decimal places, and percentages should be shown as a user expects (ex. the APR may be 3.5%, which in your program should be stored as 0.035 ). 4. When asked to format tabular data, you should consider using the string formatting descriptors. These can be found on p. 211-214 of the text. There are four columns, and these should be formatted as shown below. Month: field width 7, centered Interest: field width 9 , two decimals, right-aligned Principal: field width 10 , two decimals, right-aligned Balance: field width 11 , two decimals, right-aligned Between each of the fields there should be a single vertical bar printed. Before each of the monetary calculations there should be a single space followed by a dollar sign. After each monetary calculation there should be a single space (before the vertical bar). Suggested Procedure - Solve the problem using pencil and paper first. You cannot write a program until you have figured out how to solve the problem. This first step can be done collaboratively with another student. However, once the discussion turns to Python specifics and the subsequent writing of Python statements, you must work on your own. - Cycle through the following steps to incrementally develop your program

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Sams Teach Yourself Beginning Databases In 24 Hours

Authors: Ryan Stephens, Ron Plew

1st Edition

067232492X, 978-0672324925

More Books

Students also viewed these Databases questions