#include #include #include #include using namespace std; int main () { ////////////////////////////// // Set up variables to count // the number of cupcakes and sprinkles per day int MondayCupcakes = 0, MondaySprinkles = 0, Mondays = 0, TuesdayCupcakes = 0, TuesdaySprinkles = 0, Tuesdays = 0, WednesdayCupcakes = 0, WednesdaySprinkles = 0, Wednesdays = 0, ThursdayCupcakes = 0, ThursdaySprinkles = 0, Thursdays = 0, FridayCupcakes = 0, FridaySprinkles = 0, Fridays = 0, SaturdayCupcakes = 0, SaturdaySprinkles = 0, Saturdays = 0, SundayCupcakes = 0, SundaySprinkles = 0, Sundays = 0, TotalCupcakes = 0, TotalSprinkles = 0, TotalDays = 0; // Variables for computations int MondayAvgSprink = 0, MondayAvgCups = 0, TuesdayAvgSprink = 0, TuesdayAvgCups = 0, WednesdayAvgSprink = 0, WednesdayAvgCups = 0, ThursdayAvgSprink = 0, ThursdayAvgCups = 0, FridayAvgSprink = 0, FridayAvgCups = 0, SaturdayAvgSprink = 0, SaturdayAvgCups = 0, SundayAvgSprink = 0, SundayAvgCups = 0, TotalAvgSprink = 0, TotalAvgCups = 0; // string for the input file name we will be using string input_file_name; ifstream datafile; // variables to hold input string date; char day_code; int cupcakes_sold, sprinkles_sold; ////////////////////////////// // Explain what the program does cout << endl << endl; cout << "Welcome to the Clyde's Carryout Cupcakes Cupcake Counter." << endl; cout << "This program will calculate the number of cupcakes sold in a month" << endl; cout << "given the file provided as input." << endl << endl; ////////////////////////////// // Get file name cout << "Please enter the name of the cupcake file to use: "; getline(cin,input_file_name); // open file if it is there datafile.open(input_file_name.c_str()); if (!datafile) { cerr << "Could not open file: "<< input_file_name << " for reading." << endl; exit(1); } ////////////////////////////// // If we made it this far, we have an open file // process lines from file // read the data from each line line) datafile >> date >> day_code >> cupcakes_sold >> sprinkles_sold; // depending on which day we have, update the correct variables while(datafile){ switch (day_code){ case 'M': MondayCupcakes += cupcakes_sold; MondaySprinkles += sprinkles_sold; Mondays++; break; case 'T': TuesdayCupcakes += cupcakes_sold; TuesdaySprinkles += sprinkles_sold; Tuesdays++; break; case 'W': WednesdayCupcakes += cupcakes_sold; WednesdaySprinkles += sprinkles_sold; Wednesdays++; break; case 'R': ThursdayCupcakes += cupcakes_sold; ThursdaySprinkles += sprinkles_sold; Thursdays++; break; case 'F': FridayCupcakes += cupcakes_sold; FridaySprinkles += sprinkles_sold; Fridays++; break; case 'S': SaturdayCupcakes += cupcakes_sold; SaturdaySprinkles += sprinkles_sold; Saturdays++; break; case 'U': SundayCupcakes += cupcakes_sold; SundaySprinkles += sprinkles_sold; Sundays++; break; default: cout << "Bad day code read. Quitting" << endl; exit(1); } // Add to the totals TotalCupcakes += cupcakes_sold; TotalSprinkles += sprinkles_sold; TotalDays++; // read the next line of the file datafile >> date >> day_code >> cupcakes_sold >> sprinkles_sold; } // When we reach this point, the while loop must have stopped, so the // variables should hold what we need // Figure out averages // All int division, since we don't care about fractional cupcakes so much if (Mondays !=0){ MondayAvgCups = MondayCupcakes/Mondays; MondayAvgSprink = MondaySprinkles/Mondays; } if (Tuesdays !=0){ TuesdayAvgCups = TuesdayCupcakes/Tuesdays; TuesdayAvgSprink = TuesdaySprinkles/Tuesdays; } if (Wednesdays !=0){ WednesdayAvgCups = WednesdayCupcakes/Wednesdays; WednesdayAvgSprink = WednesdaySprinkles/Wednesdays; } if (Thursdays !=0){ ThursdayAvgCups = ThursdayCupcakes/Thursdays; ThursdayAvgSprink = ThursdaySprinkles/Thursdays; } if (Fridays !=0){ FridayAvgCups = FridayCupcakes/Fridays; FridayAvgSprink = FridaySprinkles/Fridays; } if (Saturdays !=0){ SaturdayAvgCups = SaturdayCupcakes/Saturdays; SaturdayAvgSprink = SaturdaySprinkles/Saturdays; } if (Sundays !=0){ SundayAvgCups = SundayCupcakes/Sundays; SundayAvgSprink = SundaySprinkles/Sundays; } if (TotalDays !=0){ TotalAvgCups = TotalCupcakes/TotalDays; TotalAvgSprink = TotalSprinkles/TotalDays; } // Now do the output neatly, with lots of cut-and-pasting cout << "Sales results:" << endl; cout << left; // Monday output cout << setw(20) << "Monday -- Cups: " << setw(6) << MondayCupcakes << setw(8) << "Sprinks: " << setw(6) << MondaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << MondayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << MondayAvgSprink << endl; // Tuesday output cout << setw(20) << "Tuesday -- Cups: " << setw(6) << TuesdayCupcakes << setw(8) << "Sprinks: " << setw(6) << TuesdaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << TuesdayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << TuesdayAvgSprink << endl; // Wednesday Output cout << setw(20) << "Wednesday -- Cups: " << setw(6) << WednesdayCupcakes << setw(8) << "Sprinks: " << setw(6) << WednesdaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << WednesdayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << WednesdayAvgSprink << endl; // Thursday output cout << setw(20) << "Thursday -- Cups: " << setw(6) << ThursdayCupcakes << setw(8) << "Sprinks: " << setw(6) << ThursdaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << ThursdayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << ThursdayAvgSprink << endl; // Friday output cout << setw(20) << "Friday -- Cups: " << setw(6) << FridayCupcakes << setw(8) << "Sprinks: " << setw(6) << FridaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << FridayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << FridayAvgSprink << endl; // Saturday output cout << setw(20) << "Saturday -- Cups: " << setw(6) << SaturdayCupcakes << setw(8) << "Sprinks: " << setw(6) << SaturdaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << SaturdayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << SaturdayAvgSprink << endl; // Sunday output cout << setw(20) << "Sunday -- Cups: " << setw(6) << SundayCupcakes << setw(8) << "Sprinks: " << setw(6) << SundaySprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << SundayAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << SundayAvgSprink << endl; // Total output cout << setw(20) << "Total -- Cups: " << setw(6) << TotalCupcakes << setw(8) << "Sprinks: " << setw(6) << TotalSprinkles; cout << setw(12) << "Avg. cups: " << setw(6) << TotalAvgCups << setw(16) << "Avg Sprinks: " << setw(6) << TotalAvgSprink << endl; cout << endl << endl; return 0; }