IHYPRESS PROGRAMMING
Tutorials and C programs with code and output for beginners
c programming
HOME | ASP | C | CSS | GNUPLOT | HTML | JAVASCRIPT | PERL | PHP | PYTHON | RUBY | SVG
CSelection Structures : Water Bill Calculator I
<03.07>
/* Program for Water Bill Problem */ /* * Computes and prints a water bill given an unpaid balance and previous and * current meter readings. Bill includes a demand charge of $35.00, a use * charge of $1.10 per thousand gallons, and a surcharge of $2.00 if there is * an unpaid balance. */ #include <stdio.h> #define DEMAND_CHG 35.00 /* basic water demand charge */ #define PER_1000_CHG 1.10 /* charge per thousand gallons used */ #define LATE_CHG 2.00 /* surcharge assessed on unpaid balance */ /* * Displays user instructions */ void instruct_water(void) { printf("This program figures a water bill "); printf("based on the demand charge\n"); printf("($%.2lf) and a $%.2lf per 1000 ", DEMAND_CHG, PER_1000_CHG); printf("gallons use charge.\n\n"); printf("A $%.2lf surcharge is added to ", LATE_CHG); printf("accounts with an unpaid balance.\n"); printf("\nEnter unpaid balance, previous "); printf("and current meter readings\n"); printf("on separate lines after the prompts.\n"); printf("Press or after "); printf("typing each number.\n\n"); } /* * Computes use charge * Pre: previous and current are defined. */ double comp_use_charge(int previous, int current) { int used; /* gallons of water used (in thousands) */ double use_charge; /* charge for actual water use */ used = current - previous; use_charge = used * PER_1000_CHG; return (use_charge); } /* * Computes late charge. * Pre : unpaid is defined. */ double comp_late_charge(double unpaid) { double late_charge; /* charge for nonpayment of part of previous balance */ if (unpaid > 0) late_charge = LATE_CHG; /* Assess late charge on unpaid balance. */ else late_charge = 0.0; return (late_charge); } /* * Displays late charge if any and bill. * Pre : late_charge, bill, and unpaid are defined. */ void display_bill(double late_charge, double bill, double unpaid) { if (late_charge > 0.0) { printf("\nBill includes $%.2lf late charge", late_charge); printf(" on unpaid balance of $%.2lf\n", unpaid); } printf("\nTotal due = $%.2lf\n", bill); } int main(void) { int previous; /* input - meter reading from previous quarter in thousands of gallons */ int current; /* input - meter reading from current quarter */ double unpaid; /* input - unpaid balance of previous bill */ double bill; /* output - water bill */ int used; /* thousands of gallons used this quarter */ double use_charge; /* charge for actual water use */ double late_charge; /* charge for nonpayment of part of previous balance */ /* Display user instructions. */ instruct_water(); /* Get data: unpaid balance, previous and current meter readings. */ printf("Enter unpaid balance > $"); scanf("%lf", &unpaid); printf("Enter previous meter reading > "); scanf("%d", &previous); printf("Enter current meter reading > "); scanf("%d", &current); /* Compute use charge. */ use_charge = comp_use_charge(previous, current); /* Determine applicable late charge */ late_charge = comp_late_charge(unpaid); /* Figure bill. */ bill = DEMAND_CHG + use_charge + unpaid + late_charge; /* Print bill. */ display_bill(late_charge, bill, unpaid); return (0); }
Hergestellt in Deutschland / Made in Germany
This program figures a water bill based on the demand charge ($35.00) and a $1.10 per 1000 gallons use charge. A $2.00 surcharge is added to accounts with an unpaid balance. Enter unpaid balance, previous and current meter readings on separate lines after the prompts. Press or after typing each number. Enter unpaid balance > $300 Enter previous meter reading > 1000 Enter current meter reading > 4000 Bill includes $2.00 late charge on unpaid balance of $300.00 Total due = $3637.00
COPYRIGHT © 2015-2024 IHY PRESS Frankfurt am Main 60329 Deutschland