Usage: mortgagepmt [-s] -r rate [-d downpayment] price In this assignment, you are asked to do a mortgage payment calculation. All information needed for this will be passed to the program on the command line. There will be no user input during the execution of the program. You will need a few pieces of information. The price of the home and the amount of the down payment. You will also need to know the interest rate and the term of the mortgage. To figure your mortgage payment, start by converting your annual interest rate to a monthly interest rate by dividing by 12. Next, add 1 to the monthly rate. Third, multiply the number of years in the term of the mortgage by 12 to calculate the number of monthly payments you’ll make. Fourth, raise the result of 1 plus the monthly rate to the negative power of the number of monthly payments you’ll make. Fifth, subtract that result from 1. Sixth, divide the monthly rate by the result. Last, multiply the result by the amount you want to borrow. To figure your mortgage payment follow these steps: 1. Start by converting your annual interest rate to a monthly interest rate by dividing by 12. 2. Next, add 1 to the monthly rate. 3. Multiply the number of years in the term of the mortgage by 12 to calculate the number of monthly payments you’ll make. 4. Raise the result of step 2 to the negative power of the number of monthly payments you’ll make. 5. Subtract that result from 1. 6. Divide the monthly rate by the result from step 5. 7. Multiply the result by the amount you want to borrow. In addition, you will add on PMI of 1% of the amount borrowed/12 if the down payment is less than 20% of the price of the home. This will stay the same for the life of the loan. To give a sample for you to test your program, a mortgage of 100,000 at an interest rate of 5% with no down payment, the payment would be 536.82 plus PMI. 1. 0.004166667 2. 1.004166667 3. 360 4. 0.2238265956 5. 0.7762 6. 0.00536822 7. 536.82 Add PMI since there is no down payment: 1. 1% * 100000 = 1000 2. 1000 / 12 = 83.33 3. 536.82 + 83.33 =  620.15 Options: -s is optional and means that the mortgage will be a 15 year mortgage instead of the standard 30 year mortgage you would use as a default. -r is required and the argument is the yearly interest rate for the loan. The interest rate should be between 3% and 10% inclusive. -d is optional and the argument is the downpayment that will be made on the loan. It cannot be larger than the price of the home. You will print out the resulting payment amount as follows. Use rounding to keep money to two decimals and percentages to three decimals. "The payment on a loan of $###,###.## with an interest rate of #.###% for a term of ## years will be $##,###.##" There should be no other output at all to the screen. I attached an image.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Usage: mortgagepmt [-s] -r rate [-d downpayment] price

In this assignment, you are asked to do a mortgage payment calculation. All information needed for this will be passed to the program on the command line. There will be no user input during the execution of the program.

You will need a few pieces of information. The price of the home and the amount of the down payment. You will also need to know the interest rate and the term of the mortgage. To figure your mortgage payment, start by converting your annual interest rate to a monthly interest rate by dividing by 12. Next, add 1 to the monthly rate. Third, multiply the number of years in the term of the mortgage by 12 to calculate the number of monthly payments you’ll make. Fourth, raise the result of 1 plus the monthly rate to the negative power of the number of monthly payments you’ll make. Fifth, subtract that result from 1. Sixth, divide the monthly rate by the result. Last, multiply the result by the amount you want to borrow.

To figure your mortgage payment follow these steps:

1. Start by converting your annual interest rate to a monthly interest rate by dividing by 12.

2. Next, add 1 to the monthly rate.

3. Multiply the number of years in the term of the mortgage by 12 to calculate the number of monthly payments you’ll make.

4. Raise the result of step 2 to the negative power of the number of monthly payments you’ll make.

5. Subtract that result from 1.

6. Divide the monthly rate by the result from step 5.

7. Multiply the result by the amount you want to borrow.

In addition, you will add on PMI of 1% of the amount borrowed/12 if the down payment is less than 20% of the price of the home. This will stay the same for the life of the loan.

To give a sample for you to test your program, a mortgage of 100,000 at an interest rate of 5% with no down payment, the payment would be 536.82 plus PMI.

1. 0.004166667

2. 1.004166667

3. 360

4. 0.2238265956

5. 0.7762

6. 0.00536822

7. 536.82

Add PMI since there is no down payment:

1. 1% * 100000 = 1000

2. 1000 / 12 = 83.33

3. 536.82 + 83.33 =  620.15

Options:

-s is optional and means that the mortgage will be a 15 year mortgage instead of the standard 30 year mortgage you would use as a default.

-r is required and the argument is the yearly interest rate for the loan. The interest rate should be between 3% and 10% inclusive.

-d is optional and the argument is the downpayment that will be made on the loan. It cannot be larger than the price of the home.

You will print out the resulting payment amount as follows. Use rounding to keep money to two decimals and percentages to three decimals.

"The payment on a loan of $###,###.## with an interest rate of #.###% for a term of ## years will be $##,###.##"

There should be no other output at all to the screen.

I attached an image.

int main (int argc, char **argv)
{
}
extern char *optarg;
extern int optind;
int c, err = 0;
int sflag=0, rflag = 0, dflag=0;
char *rate, downpayment;
static char usage [] "usage: %s mortgagepmt [-s] -r rate [-d downpayment] price\n";
while ((c = getopt (argc, argv, "srid:")) != -1)
switch (c) {
case 's':
case
sflag = 1;
break;
rflag = 1;
rate = optarg;
break;
if (rflag == 0) {
else
case 'd':
}
dflag = 1;
downpayment = optind;
break;
fprintf(stderr,
fprintf(stderr, usage, argv[0]);
exit (1);
} else if ((optind+1) > argc) {
exit(0);
printf("optind = %d, argc=%d\n", optind, argc);
fprintf(stderr, "%s: missing name\n", argv[0]);
fprintf(stderr, usage, argv[0]);
exit (1);
} else if (err) {
/* -r was mandatory */
"%s: missing -r option\n", argv[0]);
need at least one argument (change +1 to +2 for two, etc. as needeed) */
}
/* see what we have */
printf("rate = %d\n", rate);
if (optind < argc)
fprintf(stderr, usage, argv[0]);
exit (1);
/* these are the arguments after the command-line options */
for (; optind < argc; optind++)
printf("argument: \"%s\"\n", argv[optind]);
printf("no arguments left to process\n");
Transcribed Image Text:int main (int argc, char **argv) { } extern char *optarg; extern int optind; int c, err = 0; int sflag=0, rflag = 0, dflag=0; char *rate, downpayment; static char usage [] "usage: %s mortgagepmt [-s] -r rate [-d downpayment] price\n"; while ((c = getopt (argc, argv, "srid:")) != -1) switch (c) { case 's': case sflag = 1; break; rflag = 1; rate = optarg; break; if (rflag == 0) { else case 'd': } dflag = 1; downpayment = optind; break; fprintf(stderr, fprintf(stderr, usage, argv[0]); exit (1); } else if ((optind+1) > argc) { exit(0); printf("optind = %d, argc=%d\n", optind, argc); fprintf(stderr, "%s: missing name\n", argv[0]); fprintf(stderr, usage, argv[0]); exit (1); } else if (err) { /* -r was mandatory */ "%s: missing -r option\n", argv[0]); need at least one argument (change +1 to +2 for two, etc. as needeed) */ } /* see what we have */ printf("rate = %d\n", rate); if (optind < argc) fprintf(stderr, usage, argv[0]); exit (1); /* these are the arguments after the command-line options */ for (; optind < argc; optind++) printf("argument: \"%s\"\n", argv[optind]); printf("no arguments left to process\n");
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY