Server IP : 172.16.15.8 / Your IP : 18.217.118.7 Web Server : Apache System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.2.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0705) : /home/pswoodson/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
//*************************************** // Programming Assognment 3 * // * // * // * // Written By Paula S. Woodson * // October 22, 2008 * //*************************************** // Preprocessor directives #include <iostream> #include <iomanip> #include <fstream> using namespace std; // Main function int main() { // --- Declare variables here int amtordered, distance, concretecount = 0, rockcount = 0, sandcount = 0, topsoilcount = 0, totalcount =0, rejectedcount = 0; float unitcost, mincharge, maxcharge, totalcharge =0, costofmaterials, costofdelivery, salestax, total; char productch, dummych, classch; bool errorincodes; // false if codes okay, true if either code invalid // --- Output report headings here cout << "\n VWC Stone Mart, Inc. "; cout << "\n Order Summary "; cout << "\n Cost of Cost of "; cout << "\n Product Class Amount Distance Materials Delivery Sales Tax Total "; // --- Set numeric formatting for detail lines cout << fixed << setprecision(2); // --- Initialize counters, summary variables here mincharge = 1e29; maxcharge = 0; // --- Prime loop with first input value cin >> productch; // --- Processing loop - stops when product code is sentinel 'Z' while (productch != 'Z') { cin.get(dummych); // skip blank in column 2 cin.get(classch); // get char in column 3, even if blank cin >> amtordered >> distance; // remainder of input in normal fashion errorincodes = false; // set flag - no error found yet! totalcount ++; // --- switch statements to validate codes, set unit cost and count product types go here switch (productch) { case 'C': switch (classch) { case ' ': unitcost = 52.60; concretecount ++; break; default: errorincodes = true; rejectedcount ++; } break; case 'R': switch (classch) { case 'C': unitcost = 22.25; rockcount ++; break; case 'G': unitcost = 16.50; rockcount ++; break; case 'D': unitcost = 35.00; rockcount ++; break; default: errorincodes = true; rejectedcount ++; } break; case 'S': switch (classch) { case ' ': unitcost = 4.35; sandcount ++; break; default: errorincodes = true; rejectedcount ++; } break; case 'T': switch (classch) { case 'A': unitcost = 8.25; topsoilcount ++; break; case 'B': unitcost = 6.50; topsoilcount ++; break; case 'C': unitcost = 5.40; topsoilcount ++; break; default: errorincodes = true; rejectedcount ++; } break; default: errorincodes = true; rejectedcount ++; break; } // --- now handle detail line if (errorincodes) // codes invalid - no calcs necessary - detail line with error mesg { cout <<"\n" << productch << setw(12) << classch << setw(12) << amtordered << setw(12) << distance<< setw(12); cout <<" ***************** Error****************"; } else // codes valid - calcs, collect summary data, normal detail line { cout<< fixed << setprecision(2); costofmaterials = unitcost * amtordered; if (distance <5) costofdelivery = .015 * costofmaterials; else if ((distance >= 5)&&(distance <15)) costofdelivery = .02 * costofmaterials; else if (distance >=15) costofdelivery = .025 * costofmaterials; salestax = .05 * costofmaterials; costofmaterials = static_cast<int>(costofmaterials * 100 + .5)/100.0; costofdelivery = static_cast<int>(costofdelivery * 100 + .5)/100.0; salestax = static_cast<int>(salestax * 100 + .5)/100.0; total = costofmaterials + costofdelivery + salestax; if (total > maxcharge) maxcharge = total; if (total < mincharge) mincharge = total; totalcharge += total; cout <<"\n" << productch << setw(12) << classch << setw(12) << amtordered << setw(12) << distance << setw(12); cout << costofmaterials << setw(12) << costofdelivery << setw(12) << salestax << setw(12) << total; } // end of else cin >> productch; // get next product code } // end of processing while loop // --- Now display summary statistics cout <<"\n\n Summary " ; cout <<"\nTotal number of orders:" << totalcount <<"\n"; cout <<"\nReady-mix concrete: " << concretecount <<"\n"; cout <<"\nRock and gravel: " << rockcount <<"\n"; cout <<"\nSand: " << sandcount <<"\n"; cout <<"\nTopsoil: " << topsoilcount <<"\n"; cout <<"\nRejected: " << rejectedcount <<"\n"; cout <<"\n\nTotal charges: $" << totalcharge << setw(4)<<"\n"; cout <<"\nMinimum charges: $" << mincharge << setw(4)<<"\n"; cout <<"\nMaximum charges: $" << maxcharge << setw(4)<<"\n"; return 0; }