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 --- .../Prog1/examples/ch06/Fig06_09_11/Fig06_11.cpp | 32 ++++++++ .../Prog1/examples/ch06/Fig06_09_11/Salesp.cpp | 86 ++++++++++++++++++++++ Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.h | 36 +++++++++ 3 files changed, 154 insertions(+) create mode 100644 Bachelor/Prog1/examples/ch06/Fig06_09_11/Fig06_11.cpp create mode 100644 Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.cpp create mode 100644 Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.h (limited to 'Bachelor/Prog1/examples/ch06/Fig06_09_11') diff --git a/Bachelor/Prog1/examples/ch06/Fig06_09_11/Fig06_11.cpp b/Bachelor/Prog1/examples/ch06/Fig06_09_11/Fig06_11.cpp new file mode 100644 index 0000000..82787f6 --- /dev/null +++ b/Bachelor/Prog1/examples/ch06/Fig06_09_11/Fig06_11.cpp @@ -0,0 +1,32 @@ +// Fig. 6.11: fig06_11.cpp +// Demonstrating a utility function. +// Compile this program with salesp.cpp + +// include SalesPerson class definition from salesp.h +#include "salesp.h" + +int main() +{ + SalesPerson s; // create SalesPerson object s + + s.getSalesFromUser(); // note simple sequential code; no + s.printAnnualSales(); // control structures in main + + return 0; + +} // end main + +/************************************************************************** + * (C) Copyright 1992-2002 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/Prog1/examples/ch06/Fig06_09_11/Salesp.cpp b/Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.cpp new file mode 100644 index 0000000..4c05a6d --- /dev/null +++ b/Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.cpp @@ -0,0 +1,86 @@ +// Fig. 6.10: salesp.cpp +// Member functions for class SalesPerson. +#include + +using std::cout; +using std::cin; +using std::endl; +using std::fixed; + +#include + +using std::setprecision; + +// include SalesPerson class definition from salesp.h +#include "salesp.h" + +// initialize elements of array sales to 0.0 +SalesPerson::SalesPerson() +{ + for ( int i = 0; i < 12; i++ ) + sales[ i ] = 0.0; + +} // end SalesPerson constructor + +// get 12 sales figures from the user at the keyboard +void SalesPerson::getSalesFromUser() +{ + double salesFigure; + + for ( int i = 1; i <= 12; i++ ) { + cout << "Enter sales amount for month " << i << ": "; + cin >> salesFigure; + setSales( i, salesFigure ); + + } // end for + +} // end function getSalesFromUser + +// set one of the 12 monthly sales figures; function subtracts +// one from month value for proper subscript in sales array +void SalesPerson::setSales( int month, double amount ) +{ + // test for valid month and amount values + if ( month >= 1 && month <= 12 && amount > 0 ) + sales[ month - 1 ] = amount; // adjust for subscripts 0-11 + + else // invalid month or amount value + cout << "Invalid month or sales figure" << endl; + +} // end function setSales + +// print total annual sales (with the help of utility function) +void SalesPerson::printAnnualSales() +{ + cout << setprecision( 2 ) << fixed + << "\nThe total annual sales are: $" + << totalAnnualSales() << endl; // call utility function + +} // end function printAnnualSales + +// private utility function to total annual sales +double SalesPerson::totalAnnualSales() +{ + double total = 0.0; // initialize total + + for ( int i = 0; i < 12; i++ ) // summarize sales results + total += sales[ i ]; + + return total; + +} // end function totalAnnualSales + +/************************************************************************** + * (C) Copyright 1992-2002 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/Prog1/examples/ch06/Fig06_09_11/Salesp.h b/Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.h new file mode 100644 index 0000000..240e3e7 --- /dev/null +++ b/Bachelor/Prog1/examples/ch06/Fig06_09_11/Salesp.h @@ -0,0 +1,36 @@ +// Fig. 6.9: salesp.h +// SalesPerson class definition. +// Member functions defined in salesp.cpp. +#ifndef SALESP_H +#define SALESP_H + +class SalesPerson { + +public: + SalesPerson(); // constructor + void getSalesFromUser(); // input sales from keyboard + void setSales( int, double ); // set sales for a month + void printAnnualSales(); // summarize and print sales + +private: + double totalAnnualSales(); // utility function + double sales[ 12 ]; // 12 monthly sales figures + +}; // end class SalesPerson + +#endif + +/************************************************************************** + * (C) Copyright 1992-2002 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