Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This assignment focuses on the design, implementation and testing of a Python program to calculate values related to the purchase of a home using a

This assignment focuses on the design, implementation and testing of a Python program to calculate values related to the purchase of a home using a traditional mortgage loan system (see below). It is worth 20 points (4% of course grade) and must be completed no later than 11:59 PM on Monday, January 30, 2023. After the due date, your score will be deducted by 1pt for every 2 hours late. Assignment Deliverable The deliverable for this assignment is the following file: proj03.py the source code for your Python program Be sure to use the specified file name and to submit it for grading via the Coding Rooms system before the project deadline. 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 homeowners 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 users 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 users 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 users maximum monthly payment, the users 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 dont 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 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 1000 sq. foot house would cost $349000. A 30-year fixed rate mortgage with a down payment of $50000 at 4.0% APR results in an expected monthly payment of $526.41 (taxes) + $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 on your maximum monthly payment of $2200.00 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.



Use These Strings

" MORTGAGE PLANNING CALCULATOR ============================ "

" Enter a value for each of the following items or type 'NA' if unknown "

" Where is the house you are considering (Seattle, San Francisco, Austin, East Lansing)? "

" What is the maximum square footage you are considering? "

" What is the maximum monthly payment you can afford? "

" How much money can you put down as a down payment? "

" What is the current annual percentage rate? "

" Would you like to print the monthly payment schedule (Y or N)? "

" Unknown location. Using national averages for price per square foot and tax rate."

" You must either supply a desired square footage or a maximum monthly payment. Please try again."

" Would you like to make another attempt (Y or N)? "



Use these constants

NUMBER_OF_PAYMENTS = 360 # 30-year fixed rate mortgage, 30 years * 12 monthly payments

SEATTLE_PROPERTY_TAX_RATE = 0.0092

SAN_FRANCISCO_PROPERTY_TAX_RATE = 0.0074

AUSTIN_PROPERTY_TAX_RATE = 0.0181

EAST_LANSING_PROPERTY_TAX_RATE = 0.0162

AVERAGE_NATIONAL_PROPERTY_TAX_RATE = 0.011

SEATTLE_PRICE_PER_SQ_FOOT = 499.0

SAN_FRANCISCO_PRICE_PER_SQ_FOOT = 1000.0

AUSTIN_PRICE_PER_SQ_FOOT = 349.0

EAST_LANSING_PRICE_PER_SQ_FOOT = 170.0

AVERAGE_NATIONAL_PRICE_PER_SQ_FOOT = 244.0

APR_2023 = 0.0668



Dont use DEF functions!!!

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered 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

Students also viewed these Databases questions

Question

How flying airoplane?

Answered: 1 week ago