4.01) Keith\'s Sheet Music needs a program to implement its music teacher\'s dis
ID: 3668577 • Letter: 4
Question
4.01) Keith's Sheet Music needs a program to implement its music teacher's discount policy. The program is to prompt the user to enter the purchase total and to indicate whether the purchaser is a teacher. The store plans to give each customer a printed receipt, so your program is to create a nicely formatted file called .stdout. Music teachers receive a 10% discount on their sheet music purchases unless the purchase total is $100 or higher. In that case, the discount is 12%. The discount calculation occurs before addition of the 5% sales tax.
Note: To display a % sign, use %%. All numbers in your output should have 2 places of precision but %, which should have 0 places of precision . Your output MUST be to a file names .stdout (C language coding)
Explanation / Answer
main.c
#include "teacher.h"
int main (void)
{
FILE *receipt = NULL;
double purchases = 0.0;
int is_teacher = 0;
receipt = fopen ("receipt.txt", "w");
printf ("Total Purchase Price? ");
purchases = double_input ();
is_teacher = teacher_input ();
if (is_teacher == 0)
{
normal_main (purchases, receipt);
}
else
{
teacher_main (purchases, receipt);
}
fclose (receipt);
return 0;
}
teacher.h
#include <stdio.h>
#include <math.h>
int teacher_main (double purchases, FILE *outfile);
int normal_main (double purchases, FILE *outfile);
double int_input (void);
double double_input (void);
double purchases_input (void);
int teacher_input (void);
double determine_discount (double cost);
double calculate_discount (double purchases, double discount);
double calculate_discount_total (double purchases, double discount);
double calculate_sales_tax (double purchases);
double calculate_total (double purchases, double sales_tax);
void print_receipt (FILE *outfile, char header[], double number);
functions.c
#include "teacher.h"
int teacher_main (double purchases, FILE *outfile)
{
double discount_percent = 0.1, discount_money = 0.0, discount_total = 0.0, sales_tax = 0.0, total = 0.0;
print_receipt (outfile, "Total Purchases = ", purchases);
// look at discount
discount_percent = determine_discount (purchases);
discount_money = calculate_discount (purchases, discount_percent);
discount_total = calculate_discount_total (purchases, discount_money);
// Print discount to receipt
if (discount_percent == 0.1)
{
print_receipt (outfile, "Teachers Discount (10%) = ", discount_money);
print_receipt (outfile, "Discounted Total = ", discount_total);
}
else
{
print_receipt (outfile, "Teachers Discount (12%) = ", discount_money);
print_receipt (outfile, "Discounted Total = ", discount_total);
}
// calculate sales tax and print to receipt
sales_tax = calculate_sales_tax (discount_total);
print_receipt (outfile, "Sales Tax (5%) = ", sales_tax);
// calculate total and print to receipt
total = calculate_total (discount_total, sales_tax);
print_receipt (outfile, "Total = ", total);
// teacher receipt created!
return 0;
}
int normal_main (double purchases, FILE *outfile)
{
double sales_tax = 0.0, total = 0.0;
print_receipt (outfile, "Total Purchases = ", purchases);
// calculate sales tax and print to receipt
sales_tax = calculate_sales_tax (purchases);
print_receipt (outfile, "Sales Tax (5%) = ", sales_tax);
// calculate total and print to receipt
total = calculate_total (purchases, sales_tax);
print_receipt (outfile, "Total = ", total);
// Normal receipt created!
return 0;
}
double int_input (void)
{
int temp_value = 0;
scanf(" %d", &temp_value);
return temp_value;
}
double double_input (void)
{
double temp_value = 0.0;
scanf(" %lf", &temp_value);
return temp_value;
}
double purchases_input (void)
{
double purchases = 0.0;
printf ("Total Purchase Price? ");
purchases = double_input ();
return purchases;
}
int teacher_input (void)
{
int teacher = 0;
printf ("Is Teacher (1 = Teacher, 0 = Not Teacher)?");
teacher = int_input();
return teacher;
}
double determine_discount (double cost)
{
double discount = 0.1;
if (cost >= 100)
{
discount = 0.12;
}
return discount;
}
double calculate_discount (double purchases, double discount)
{
double discount_money = purchases * discount;
return discount_money;
}
double calculate_discount_total (double purchases, double discount)
{
double discount_total = purchases - discount;
return discount_total;
}
double calculate_sales_tax (double purchases)
{
double sales_tax = purchases * 0.05;
return sales_tax;
}
double calculate_total (double purchases, double sales_tax)
{
double total = purchases + sales_tax;
return total;
}
void print_receipt (FILE *outfile, char header[], double number)
{
fprintf (outfile, "%s%.2lf ", header, number);
return;
}
receipt.txt
Total Purchases = 24.90
Sales Tax (5%) = 1.25
Total = 26.15
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.