From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../1_ch09/fig09_22_24/CylinderTest/circle4.cpp | 74 ++++++++++++++++++++++ .../1_ch09/fig09_22_24/CylinderTest/circle4.h | 44 +++++++++++++ .../1_ch09/fig09_22_24/CylinderTest/cylinder.cpp | 68 ++++++++++++++++++++ .../1_ch09/fig09_22_24/CylinderTest/cylinder.h | 42 ++++++++++++ .../fig09_22_24/CylinderTest/cylindertest.cpp | 70 ++++++++++++++++++++ .../1_ch09/fig09_22_24/CylinderTest/point3.cpp | 65 +++++++++++++++++++ .../1_ch09/fig09_22_24/CylinderTest/point3.h | 40 ++++++++++++ 7 files changed, 403 insertions(+) create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.h create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.h create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylindertest.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.h (limited to 'Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest') diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.cpp new file mode 100644 index 0000000..3e043c3 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.cpp @@ -0,0 +1,74 @@ +// Fig. 9.20: circle4.cpp +// Circle4 class member-function definitions. +#include + +using std::cout; + +#include "circle4.h" // Circle4 class definition + +// default constructor +Circle4::Circle4( int xValue, int yValue, double radiusValue ) + : Point3( xValue, yValue ) // call base-class constructor +{ + setRadius( radiusValue ); + +} // end Circle4 constructor + +// set radius +void Circle4::setRadius( double radiusValue ) +{ + radius = ( radiusValue < 0.0 ? 0.0 : radiusValue ); + +} // end function setRadius + +// return radius +double Circle4::getRadius() const +{ + return radius; + +} // end function getRadius + +// calculate and return diameter +double Circle4::getDiameter() const +{ + return 2 * getRadius(); + +} // end function getDiameter + +// calculate and return circumference +double Circle4::getCircumference() const +{ + return 3.14159 * getDiameter(); + +} // end function getCircumference + +// calculate and return area +double Circle4::getArea() const +{ + return 3.14159 * getRadius() * getRadius(); + +} // end function getArea + +// output Circle4 object +void Circle4::print() const +{ + cout << "Center = "; + Point3::print(); // invoke Point3's print function + cout << "; Radius = " << getRadius(); + +} // end function print + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ \ No newline at end of file diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.h b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.h new file mode 100644 index 0000000..46f0f58 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/circle4.h @@ -0,0 +1,44 @@ +// Fig. 9.19: circle4.h +// Circle4 class contains x-y coordinate pair and radius. +#ifndef CIRCLE4_H +#define CIRCLE4_H + +#include "point3.h" // Point3 class definition + +class Circle4 : public Point3 { + +public: + + // default constructor + Circle4( int = 0, int = 0, double = 0.0 ); + + void setRadius( double ); // set radius + double getRadius() const; // return radius + + double getDiameter() const; // return diameter + double getCircumference() const; // return circumference + double getArea() const; // return area + + void print() const; // output Circle4 object + +private: + double radius; // Circle4's radius + +}; // end class Circle4 + +#endif + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ \ No newline at end of file diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.cpp new file mode 100644 index 0000000..d0047db --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.cpp @@ -0,0 +1,68 @@ +// Fig. 9.23: cylinder.cpp +// Cylinder class inherits from class Circle4. +#include + +using std::cout; + +#include "cylinder.h" // Cylinder class definition + +// default constructor +Cylinder::Cylinder( int xValue, int yValue, double radiusValue, + double heightValue ) + : Circle4( xValue, yValue, radiusValue ) +{ + setHeight( heightValue ); + +} // end Cylinder constructor + +// set Cylinder's height +void Cylinder::setHeight( double heightValue ) +{ + height = ( heightValue < 0.0 ? 0.0 : heightValue ); + +} // end function setHeight + +// get Cylinder's height +double Cylinder::getHeight() const +{ + return height; + +} // end function getHeight + +// redefine Circle4 function getArea to calculate Cylinder area +double Cylinder::getArea() const +{ + return 2 * Circle4::getArea() + + getCircumference() * getHeight(); + +} // end function getArea + +// calculate Cylinder volume +double Cylinder::getVolume() const +{ + return Circle4::getArea() * getHeight(); + +} // end function getVolume + +// output Cylinder object +void Cylinder::print() const +{ + Circle4::print(); + cout << "; Height = " << getHeight(); + +} // end function print + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.h b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.h new file mode 100644 index 0000000..461feb8 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylinder.h @@ -0,0 +1,42 @@ +// Fig. 9.22: cylinder.h +// Cylinder class inherits from class Circle4. +#ifndef CYLINDER_H +#define CYLINDER_H + +#include "circle4.h" // Circle4 class definition + +class Cylinder : public Circle4 { + +public: + + // default constructor + Cylinder( int = 0, int = 0, double = 0.0, double = 0.0 ); + + void setHeight( double ); // set Cylinder's height + double getHeight() const; // return Cylinder's height + + double getArea() const; // return Cylinder's area + double getVolume() const; // return Cylinder's volume + void print() const; // output Cylinder + +private: + double height; // Cylinder's height + +}; // end class Cylinder + +#endif + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ \ No newline at end of file diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylindertest.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylindertest.cpp new file mode 100644 index 0000000..8fb49b9 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/cylindertest.cpp @@ -0,0 +1,70 @@ +// Fig. 9.24: cylindertest.cpp +// Testing class Cylinder. +#include + +using std::cout; +using std::endl; +using std::fixed; + +#include + +using std::setprecision; + +#include "cylinder.h" // Cylinder class definition + +int main() +{ + // instantiate Cylinder object + Cylinder cylinder( 12, 23, 2.5, 5.7 ); + + // display point coordinates + cout << "X coordinate is " << cylinder.getX() + << "\nY coordinate is " << cylinder.getY() + << "\nRadius is " << cylinder.getRadius() + << "\nHeight is " << cylinder.getHeight(); + + cylinder.setX( 2 ); // set new x-coordinate + cylinder.setY( 2 ); // set new y-coordinate + cylinder.setRadius( 4.25 ); // set new radius + cylinder.setHeight( 10 ); // set new height + + // display new cylinder value + cout << "\n\nThe new location and radius of circle are\n"; + cylinder.print(); + + // display floating-point values with 2 digits of precision + cout << fixed << setprecision( 2 ); + + // display cylinder's diameter + cout << "\n\nDiameter is " << cylinder.getDiameter(); + + // display cylinder's circumference + cout << "\nCircumference is " + << cylinder.getCircumference(); + + // display cylinder's area + cout << "\nArea is " << cylinder.getArea(); + + // display cylinder's volume + cout << "\nVolume is " << cylinder.getVolume(); + + cout << endl; + + return 0; // indicates successful termination + +} // end main + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.cpp new file mode 100644 index 0000000..70af44a --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.cpp @@ -0,0 +1,65 @@ +// Fig. 9.18: point3.cpp +// Point3 class member-function definitions. +#include + +using std::cout; + +#include "point3.h" // Point3 class definition + +// default constructor +Point3::Point3( int xValue, int yValue ) + : x( xValue ), y( yValue ) +{ + // empty body + +} // end Point3 constructor + +// set x in coordinate pair +void Point3::setX( int xValue ) +{ + x = xValue; // no need for validation + +} // end function setX + +// return x from coordinate pair +int Point3::getX() const +{ + return x; + +} // end function getX + +// set y in coordinate pair +void Point3::setY( int yValue ) +{ + y = yValue; // no need for validation + +} // end function setY + +// return y from coordinate pair +int Point3::getY() const +{ + return y; + +} // end function getY + +// output Point3 object +void Point3::print() const +{ + cout << '[' << getX() << ", " << getY() << ']'; + +} // end function print + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.h b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.h new file mode 100644 index 0000000..028f105 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/fig09_22_24/CylinderTest/point3.h @@ -0,0 +1,40 @@ +// Fig. 9.17: point3.h +// Point3 class definition represents an x-y coordinate pair. +#ifndef POINT3_H +#define POINT3_H + +class Point3 { + +public: + Point3( int = 0, int = 0 ); // default constructor + + void setX( int ); // set x in coordinate pair + int getX() const; // return x from coordinate pair + + void setY( int ); // set y in coordinate pair + int getY() const; // return y from coordinate pair + + void print() const; // output Point3 object + +private: + int x; // x part of coordinate pair + int y; // y part of coordinate pair + +}; // end class Point3 + +#endif + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ \ No newline at end of file -- cgit v1.2.3