### Programming Challenge

i need to complete to code

This program will compute patient hospital charges.
Enter I for in-patient or O for out-patient: O

Lab fees and other service charges: \$300
Medication charges: \$500

**************************
Hospital Billing Statement
**************************
Lab & Services \$ 300.00
Medication \$ 500.00
Total charges \$ 800.00
**************************

Press any key to continue . . .
This program will compute patient hospital charges.
Enter I for in-patient or O for out-patient: i

Number of days in the hospital: 5
Daily room rate: \$800
Lab fees and other service charges: \$350
Medication charges: \$250

**************************
Hospital Billing Statement
**************************
Room charges \$ 4000.00
Lab & Services \$ 350.00
Medication \$ 250.00
Total charges \$ 4600.00
**************************

Press any key to continue . . .

//Create the functions validateData, patientCharges
//Using the prototypes as reference
//You do not need to modify main
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

// Function prototypes
double validateData(double, string);
double patientCharges(int, double, double, double); // In-patient
double patientCharges(double, double); // Out-patient

int main()
{
char patientType; // I=in-patient, O=out-patient
int days; // Number of days of hospital stay
double roomRate, // Daily room rate
medication, // Total medication charges
services, // Total for tests and other services
totalCharges; // Total of all charges

// Input and validate patient type

cout << "This program will compute patient hospital charges.\n";
cout << "Enter I for in-patient or O for out-patient: ";
cin >> patientType;
if (patientType == 'i') // Make i or o uppercase
patientType = 'I';
else if (patientType == 'o')
patientType = 'O';

while (patientType != 'I' && patientType != 'O')
{
cout << "Please enter I or O: ";
cin >> patientType;
if (patientType == 'i') // Make i or o uppercase
patientType = 'I';
else if (patientType == 'o')
patientType = 'O';
}
cout << endl;

// Input and validate data relevant to in-patients

if (patientType == 'I')
{
cout << "Number of days in the hospital: ";
cin >> days;
days = static_cast<int>(validateData(days, "days in hospital"));

cout << "Daily room rate: \$";
cin >> roomRate;
roomRate = validateData(roomRate, "daily room rate");
}

cout << "Lab fees and other service charges: \$";
cin >> services;
services = validateData(services, "lab fees and other service charges");

cout << "Medication charges: \$";
cin >> medication;
medication = validateData(medication, "medication charges");

if (patientType == 'I')
totalCharges = patientCharges(days, roomRate, medication, services);
else
totalCharges = patientCharges(medication, services);

// Display the billing statment
double patientCharges(double, double)

cout << fixed << showpoint << setprecision(2) << endl;
cout << "************************** \n";
cout << "Hospital Billing Statement \n";
cout << "************************** \n";
if (patientType == 'I')
cout << "Room charges \$" << setw(8) << days * roomRate << endl;
if (services > 0.0)
cout << "Lab & Services \$" << setw(8) << services << endl;
if (medication > 0.0)
cout << "Medication \$" << setw(8) << medication << endl;
cout << "Total charges \$" << setw(8) << totalCharges << endl;
cout << "**************************\n";

cout << endl;
system("pause");
return 0;
}

1.
 Please learn to use code tags, they make reading and commenting on source code MUCH easier. How to use code tags: http://www.cplusplus.com/articles/jEywvCM9/ There are other tags available. How to use tags: http://www.cplusplus.com/articles/z13hAqkS/ HINT: you can edit your post and add code tags. Some formatting & indentation would not hurt either

2.
M'ok, you've given us your assignment, you've written some code. Now what? What are we supposed to do?

Problems you are having with your code, we can help. You have to tell us what the problems are, if any. In detail.

With tags and formatted for better readability:
 ``1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192`` ``````//Create the functions validateData, patientCharges //Using the prototypes as reference //You do not need to modify main #include #include #include using namespace std; // Function prototypes double validateData(double, string); double patientCharges(int, double, double, double); // In-patient double patientCharges(double, double); // Out-patient int main() { char patientType; // I=in-patient, O=out-patient int days; // Number of days of hospital stay double roomRate, // Daily room rate medication, // Total medication charges services, // Total for tests and other services totalCharges; // Total of all charges // Input and validate patient type cout << "This program will compute patient hospital charges.\n"; cout << "Enter I for in-patient or O for out-patient: "; cin >> patientType; if (patientType == 'i') // Make i or o uppercase patientType = 'I'; else if (patientType == 'o') patientType = 'O'; while (patientType != 'I' && patientType != 'O') { cout << "Please enter I or O: "; cin >> patientType; if (patientType == 'i') // Make i or o uppercase patientType = 'I'; else if (patientType == 'o') patientType = 'O'; } cout << endl; // Input and validate data relevant to in-patients if (patientType == 'I') { cout << "Number of days in the hospital: "; cin >> days; days = static_cast(validateData(days, "days in hospital")); cout << "Daily room rate: \$"; cin >> roomRate; roomRate = validateData(roomRate, "daily room rate"); } cout << "Lab fees and other service charges: \$"; cin >> services; services = validateData(services, "lab fees and other service charges"); cout << "Medication charges: \$"; cin >> medication; medication = validateData(medication, "medication charges"); // Call correct patientCharges function to return total charges if (patientType == 'I') totalCharges = patientCharges(days, roomRate, medication, services); else totalCharges = patientCharges(medication, services); // Display the billing statment double patientCharges(double, double) cout << fixed << showpoint << setprecision(2) << endl; cout << "************************** \n"; cout << "Hospital Billing Statement \n"; cout << "************************** \n"; if (patientType == 'I') cout << "Room charges \$" << setw(8) << days * roomRate << endl; if (services > 0.0) cout << "Lab & Services \$" << setw(8) << services << endl; if (medication > 0.0) cout << "Medication \$" << setw(8) << medication << endl; cout << "Total charges \$" << setw(8) << totalCharges << endl; cout << "**************************\n"; cout << endl; system("pause"); return 0; }``````

Trying to define a function inside main (line 74) is NOT allowed. There are functions that can be defined within a block of code, lambdas, but your functions are not lambdas.

Plus you are missing the other two function definitions you declared on lines 10-11.

Using code tags and proper formatting makes potential problems with code stand out and easier to say where the problems are.
Last edited on
As a first refactor, consider which needs ValidateData() function to be completed:

 ``1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192`` ``````#include #include #include double validateData(double, const std::string&); double patientCharges(int, double, double, double); double patientCharges(double, double); int main() { char patientType {}; int days {}; double roomRate {}, medication {}, services {}, totalCharges {}; std::cout << "This program will compute patient hospital charges.\n"; std::cout << "Enter I for in-patient or O for out-patient: "; std::cin >> patientType; if (patientType == 'i') patientType = 'I'; else if (patientType == 'o') patientType = 'O'; while (patientType != 'I' && patientType != 'O') { std::cout << "Please enter I or O: "; std::cin >> patientType; if (patientType == 'i') patientType = 'I'; else if (patientType == 'o') patientType = 'O'; } std::cout << '\n'; if (patientType == 'I') { std::cout << "Number of days in the hospital: "; std::cin >> days; days = static_cast(validateData(days, "days in hospital")); std::cout << "Daily room rate: \$"; std::cin >> roomRate; roomRate = validateData(roomRate, "daily room rate"); } std::cout << "Lab fees and other service charges: \$"; std::cin >> services; services = validateData(services, "lab fees and other service charges"); std::cout << "Medication charges: \$"; std::cin >> medication; medication = validateData(medication, "medication charges"); if (patientType == 'I') totalCharges = patientCharges(days, roomRate, medication, services); else totalCharges = patientCharges(medication, services); std::cout << std::fixed << std::showpoint << std::setprecision(2) << '\n'; std::cout << "************************** \n"; std::cout << "Hospital Billing Statement \n"; std::cout << "************************** \n"; if (patientType == 'I') std::cout << std::setw(15) << std::left << "Room charges " << "\$" << std::right << std::setw(8) << days * roomRate << '\n'; if (services > 0.0) std::cout << std::setw(15) << std::left << "Lab & Services " << "\$" << std::right << std::setw(8) << services << '\n'; if (medication > 0.0) std::cout << std::setw(15) << std::left << "Medication " << "\$" << std::right << std::setw(8) << medication << '\n'; std::cout << std::setw(15) << std::left << "Total charges " << "\$" << std::right << std::setw(8) << totalCharges << '\n'; std::cout << "**************************\n\n"; } // This needs to be completed double validateData(double data, const std::string& str) { return data; } double patientCharges(int d, double r, double m, double s) { return r * d + m + s; } double patientCharges(double med, double serv) { return med + serv; }``````

 ``` This program will compute patient hospital charges. Enter I for in-patient or O for out-patient: i Number of days in the hospital: 4 Daily room rate: \$400 Lab fees and other service charges: \$56 Medication charges: \$87 ************************** Hospital Billing Statement ************************** Room charges \$ 1600.00 Lab & Services \$ 56.00 Medication \$ 87.00 Total charges \$ 1743.00 ************************** ```

Thank you