Need this written in C and to be as simple as you can The Su
Need this written in C++. and to be as simple as you can
The Sun Furnace Company provides furnace repair service to residential customers. It has asked you to develop a program that calculates and outputs a customer\'s bill. The company offers 2 types of service: Standard and Deluxe. Its rates vary, depending on the type of service. Rates are computed as follows :
Standard service : $100.00 plus first 30 free service minutes. Charges for over 30 service minutes are $0.75 per minute. If the furnace is not fueled by natural gas, there is an additional $25 charge.
Deluxe service : $25.00 plus :
a. For service starting between 8:00 a.m. and 4:00 p.m. the first 25 service minutes are free; charges for more than 25 minutes are $0.40 per minute.
b. For service starting between 4:01 p.m. and 7:59 a.m. the first 15 service minutes are free; charges for more than 15 minutes are $0.60 per minute.
c. If the furnace is not fueled by natural gas, there is an additional $15 charge.
The program MUST use 4 functions :
- A void function which outputs the following :
Welcome to Sun Furnace Bill calculator
You will be asked for the following information :
* Service Type (S,s,D,d)
* Furnace Type (G,g for gas, O,o for non gas)
* Service Minutes
* Service Shift (D,d indicates service started between 8 a.m. and 4 p.m. N, n indicates service started between 4:01 p.m. and 7:59 a.m. This is only asked if the service type is Deluxe.
- A value returning function which calculates and returns the billing amount for standard service.
- A value returning function which calculates and returns the billing amount for Deluxe service.
- A void function which outputs the bill. For example :
Customer Bill
Service Type : Deluxe Furnace Type : Gas
Service Shift : Day Minutes : 80
Bill Amount : $ 55.00
Verify the follwing test cases:
| Service Type | Minutes | Furnace Type | Shift | Bill Amount | 
| S | 25 | G | $100.00 | |
| S | 50 | G | $114.25 | |
| S | 25 | N | $125.00 | |
| S | 50 | N | $139.25 | |
| D | 20 | G | Day | $25.00 | 
| D | 50 | G | Day | $34.60 | 
| D | 20 | N | Day | $40.00 | 
| D | 50 | N | Day | $49.60 | 
| D | 10 | G | Night | $25.00 | 
| D | 30 | G | Night | $33.40 | 
| D | 10 | N | Night | $40.00 | 
| D | 30 | N | Night | $48.40 | 
Solution
Given sample examples seem to be wrong when compared to the problem statement.
Following is the code according to the given problem statement:
#include <iostream>
 #include <iomanip>
 #include <cstdio>
 using namespace std;
void printWelcomeMessage(){
    cout << \"Welcome to Sun Furnace Bill calculator\" << endl;
    cout << \"You will be asked for the following information :\" << endl;
    cout << \"* Service Type (S,s,D,d)\" << endl;
    cout << \"* Furnace Type (G,g for gas, O,o for non gas)\" << endl;
    cout << \"* Service Minutes\" << endl;
    cout << \"* Service Shift (D,d indicates service started between 8 a.m. and 4 p.m. N, n indicates service started between 4:01 p.m. and 7:59 a.m. This is only asked if the service type is Deluxe.\" << endl;
    cout << endl;
    return;
 }
double billingAmountForStandardService( char furnaceType, int servicesMinutes ){
    double result = 100;
    if( servicesMinutes > 30 ){
        result += (servicesMinutes- 30)*0.75;
    }
    if( furnaceType == \'O\' || furnaceType == \'o\' ){
        result += 25;
    }
    return result;
 }
double billingAmountForDeluxeService( char furnaceType, int servicesMinutes, char serviceShift ){
    double result = 25;
    if( serviceShift == \'D\' || serviceShift == \'d\' ){
        if( servicesMinutes > 25 ){
            result += ( servicesMinutes - 25 )*0.40;
        }
    }
    if( serviceShift == \'N\' || serviceShift == \'n\' ){
        if( servicesMinutes > 15 ){
            result += ( servicesMinutes - 15 )*0.60;
        }
    }
    if( furnaceType == \'O\' || furnaceType == \'o\' ){
        result += 15;
    }
    return result;
 }
void printBill( char serviceType, char furnaceType, char serviceShift, int servicesMinutes,
        double billAmount )
 {
    cout << serviceType << \" \" << furnaceType << \" \" << serviceShift << \" \" << servicesMinutes << endl;
    cout << \"Customer Bill\" << endl;
    cout << \"Service Type : \";
    if( serviceType == \'D\' || serviceType == \'d\' ){ cout << \"Deluxe \"; }
    if( serviceType == \'S\' || serviceType == \'s\' ){ cout << \"Standard \"; }
    cout << \"Furnace Type : \";
    if( furnaceType == \'G\' || furnaceType == \'g\' ){ cout << \"Gas\" << endl; }
    if( furnaceType == \'O\' || furnaceType == \'o\' ){ cout << \"Non Gas\" << endl; }
    cout << \"Service Shift : \";
    if( serviceShift == \'D\' || serviceShift == \'d\' ){ cout << \"Day \"; }
    if( serviceShift == \'N\' || serviceShift == \'n\' ){ cout << \"Night \"; }
    cout << \"Minutes : \" << servicesMinutes << endl;
    cout << \"Bill Amount : $ \";
   cout << fixed << setprecision(2);
    cout << billAmount << endl;
 }
int main(){
    printWelcomeMessage();
    char serviceType, furnaceType;
    int servicesMinutes;
    char serviceShift;
   cout << \"Enter service type (S,s,D,d) : \";
    cin >> serviceType;
    cout << \"Enter furnace type (G,g for gas, O,o for non gas) : \";
    cin >> furnaceType;
    cout << \"Enter service minutes : \";
    cin >> servicesMinutes;
    if( serviceType == \'D\' || serviceType == \'d\' ){
        cout << \"Enter service shift: (D,d,N,n) : \";
        cin >> serviceShift;
    }
   double billAmount = 0;
    if( serviceType == \'S\' || serviceType == \'s\' ){
        billAmount = billingAmountForStandardService( furnaceType, servicesMinutes );
    }
    if( serviceType == \'D\' || serviceType == \'d\' ){
        billAmount = billingAmountForDeluxeService( furnaceType, servicesMinutes , serviceShift );
    }
    printBill( serviceType, furnaceType, serviceShift, servicesMinutes, billAmount );
   return 0;
 }



