Please help me spot errors

Mar 26, 2013 at 9:13pm

#include <iostream>
using namespace std;

void dimensionCheck (double, char); // Function prototype - dimensions.
void holesCheck (int, char); // Function prototype - holes.
double volRec (double, double, double); // Function prototype - volume of a rectangle.
double volSph (double); // Function prototype - volume of a sphere.
double volCyl (double, double); // Function prototype - volume of a cylinder.
double volumeT (double, double, double, int, double, int, double, double); // Function prototype - final volume.

const double PI = 3.14159; // Global constant pi = 3.14...

int main ()
{
double length, width, height; // Rectangle dimension for block.
double radCyl, radSph, heightCyl; // Circular member dimensions.
double volume; // Final Volume.
int numSph, numCyl; // Number of cylinders & spheres.

cout << "Input the height, length, and width of the cheese block: ";
cin >> height >> length >> width;

dimensionCheck (height, 'ht');
dimensionCheck (length, 'lg');
dimensionCheck (width, 'wd');

cout << "How many spherical bubbles are present?";
cin >> numSph;
cout << "Enter the radius of the spherical bubbles in centimeters: ";
cin >> radSph;

holesCheck (numSph, 'sph');
dimensionCheck (radSph, 'rs');

cout << "How many cylindrical holes are present?";
cin >> numCyl;
cout << "Enter the radius and height of the cylidrical holes in centimeters: ";
cin >> radCyl, heightCyl;

holesCheck (numCyl, 'cyl');
dimensionCheck (radCyl, 'rc');
dimensionCheck (heightCyl, 'hc');

volume = volumeT(height, length, width, numSph, radSph, numCyl, radCyl, heightCyl);

cout << "The total volume of cheese present is " << volume
<< " cubic centimeters." << endl;

return 0;
}

// *********** FUNCTION DEFINITIONS ****************


// Make sure all dimension are valid - greater than zero.
void dimensionCheck (double &dimension, char which[2])
{
if (which == "ht")
{
if (dimension <= 0)
{
cout << "The height of the cheese must be greater than zero."
<< "Please re-enter the height of the cheese: ";
cin >> dimension;
dimensionCheck(dimension, 'ht');
}
}else if(which == "lg")
{
if (dimension <= 0)
{
cout << "The length of the cheese must be greater than zero."
<< "Please re-enter the length of the cheese: ";
cin >> dimension;
dimensionCheck(dimension, 'lg');
}
}else if(which == "wd")
{
if (dimension <= 0)
{
cout << "The width of the cheese must be greater than zero."
<< "Please re-enter the width of the cheese: ";
cin >> dimension;
dimensionCheck(dimension, 'wd');
}
}else if(which == "rs")
{
if (dimension <= 0)
{
cout << "The radius of the sphere(s) hole must be greater than zero."
<< "Please re-enter the radius of the sphere(s): ";
cin >> dimension;
dimensionCheck(dimension, 'rs');
}
}else if(which == "rc")
{
if (dimension <= 0)
{
cout << "The radius of the cylinder(s) hole must be greater than zero."
<< "Please re-enter the radius of the cylinder(s): ";
cin >> dimension;
dimensionCheck(dimension, 'rc');
}
}else if(which == "hc")
{
if (dimension <= 0)
{
cout << "The height of the cylinder(s) be greater than zero."
<< "Please re-enter the height of the cylinder(s): ";
cin >> dimension;
dimensionCheck(dimension, 'hc');
}
}
}

// Make sure number of holes (cyl. & spheres) are valid - greater than zero.
void holesCheck (int &howmany, char which[2])
{
if (which == "sph")
{
if (howmany <= 0)
{
cout << "The number of spheres must be greater than zero."
<< "Please enter the number of spherical holes: ";
cin >> howmany;
holesCheck(howmany, 'cyl');
}
}else if (which == "cyl")
{
if (howmany <= 0)
{
cout << "The number of cylinders must be greater than zero."
<< "Please enter the number of spherical holes: ";
cin >> howmany;
holesCheck(howmany, 'cyl');
}
}
}

// Calculates the volume of the rectangle.
double volRec (double hgt, double lgt, double wdt)
{
double R; // Volume of a rectangle.
R = (hgt*lgt*wdt);
return R;
}

// Calculates the volume of the sphere(s).
double volSph (double rad)
{
double S; // Volume of a sphere.
S = ((4.0/3.0)*PI*rad*rad*rad);
return S;
}

// Calculates the volume of the cylinder(s).
double volCyl (double rad, double hgt)
{
double C; // Volume of a cylinder.
C = (PI*rad*rad*hgt);
return C;
}

// Calculates the final volume of the block of cheese.
double volumeT (double hgt, double lgt, double wdt, int sph, double spR, int cyl, double cyR, double cyH)
{
double T; // Total volume (final volume);
T = (volRec(hgt,lgt,wdt) - ((sph * volSph(spR)) - (cyl*volCyl(cyR,cyH))));
return T;
}
Last edited on Mar 27, 2013 at 3:52pm
Mar 27, 2013 at 11:10am
Firstly, please enclose your code in code tags so that it's more readable.

Secondly - can you tell us what problem you're having with your code? What is it that you want us to help you with?
Mar 27, 2013 at 11:17am
1) Prototype for dimensionCheck is void dimensionCheck (double, char);. You are calling it as dimensionCheck (height, 'ht');: 'ht' is not a char (well, actually it is, but is is not that you would expect). And finally function definition is void dimensionCheck (double &dimension, char which[2]) which equals to void dimensionCheck (double &dimension, char* which)
2) Exact problem with holesCheck
3) cin >> radCyl, heightCyl; should be cin >> radCyl >> heightCyl;
4) (which == "ht"): you cannot compare c-strings like that
=== Build finished: 14 errors, 42 warnings ===
Last edited on Mar 27, 2013 at 11:18am
Topic archived. No new replies allowed.