Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote