Question

Please help! In this lab, you will use what you have learned about accumulating totals in...

Please help!

In this lab, you will use what you have learned about accumulating totals in a single-level control break program to complete a Python program.

The program should produce a report for a supermarket manager to help her keep track of hours worked by her part-time employees. The report should include the day of the week and the number of hours worked for each employee for each day of the week and the total hours for the day of the week.

The student file provided for this lab includes the necessary variable declarations and input and output statements. You need to implement the code that recognizes when a control break should occur. You also need to complete the control break code. Be sure to accumulate the daily totals for all days in the week.

Comments in the code tell you where to write your code.

Instructions

  1. Study the prewritten code to understand what has already been done.
  2. Write the control break code
  3. Execute the program using the following input values:
    Monday
    6
    Tuesday
    2
    Tuesday
    3
    Wednesday
    5
    Wednesday
    3
    Thursday
    6
    Friday
    3
    Friday
    5
    Saturday
    7
    Saturday
    7
    Saturday
    7
    Sunday
    0
    done

Here is an example of what the program output should look like:

    WEEKLY HOURS WORKED

Enter day of week or done to quit: Thursday
Enter hours worked: 6
Enter a day of week or done to quit: done
    Day Total 6

The Code,

# SuperMarket.py - This program creates a report that lists weekly hours worked
# by employees of a supermarket. The report lists total hours for
# each day of one week.
# Input: Interactive
# Output: Report.

# Declare variables.
HEAD1 = "WEEKLY HOURS WORKED"
DAY_FOOTER = "Day Total "
SENTINEL = "done" # Named constant for sentinel value
hoursWorked = 0 # Current record hours
hoursTotal = 0 # Hours total for a day
prevDay = "" # Previous day of week
notDone = True # loop control

# Print two blank lines.
print("\n\n")
# Print heading.
print("\t" + HEAD1)
# Print two blank lines.
print("\n\n")

# Read first record
dayOfWeek = input("Enter day of week or done to quit: ")
if dayOfWeek == SENTINEL:
notDone = False
else:
hoursWorked = input("Enter hours worked: ")
prevDay = dayOfWeek

while notDone == True:
# Implement control break logic here
# Include work done in the dayChange() function
  
print("\t" + DAY_FOOTER + str(hoursTotal))

Thanks!

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Answer :

#include <iostream>

#include <string>

using namespace std;

//Implement the dayChange function

bool dayChange(string &dayOfWeek, string &prevDay)

{

return dayOfWeek != prevDay;

}

//main function definition

int main()

{

//Declare variables.

const string HEAD1 = "WEEKLY HOURS WORKED";

// Leading spaces are intentional.

const string DAY_FOOTER = " Day Total ";

// Named constant for sentinel value.

const string SENTINEL = "done";

// Current record hours.

double hoursWorked = 0;

// Current record day of week.

string dayOfWeek;

// Hours total for a day.

double hoursTotal = 0;

// Previous day of week.

string prevDay = "";

// loop control

bool notDone = false;

// Print two blank lines.

cout << endl << endl;

// Print heading.

cout << "\t\t\t" << HEAD1<<endl;

// Read first record

cout << "Enter day of week or done to quit: ";

cin >> dayOfWeek;

//If both are equal then set boolean variable done to true

if (dayOfWeek.compare(SENTINEL) == 0)

notDone = true;

//If both are not equal

else

{

//Prompt and read the number of hours

cout << "Enter hours worked: ";

cin >> hoursWorked;

//Store the dayOfWeek to the previous day

prevDay = dayOfWeek;

}//End of else

//Loops till done is equals to false

while (notDone == false)

{

//Checks if the current day of the week is equal to old day

if (dayChange(dayOfWeek,prevDay) == 1)

{

//Display the day total with the previous day

cout << endl<<prevDay << DAY_FOOTER << hoursTotal << endl;

//Re-set the total hours

hoursTotal = 0;

//Updates prevDay to the current day of the week entered by the user

prevDay = dayOfWeek;

//Set the done value to false

notDone = false;

}//End of if

//Display the day of the week and number of hours worked

cout << endl<<dayOfWeek << " " << hoursWorked << endl;

//Calculates the total hours for respective day

hoursTotal += hoursWorked;

// Read the next record

cout << "Enter day of week or done to quit: ";

cin >> dayOfWeek;

//If both are equal then set boolean variable done to true

if (dayOfWeek.compare(SENTINEL) == 0)

notDone = true;

//Otherwise if user has not entered string "done"

else

{

//Read hours worked by the user per day

cout << "Enter hours worked: ";

cin >> hoursWorked;

//Set the done value to false

notDone = false;

}//End of if

}//End of while loop

//Displays the day total

cout << "\t\t" << DAY_FOOTER << hoursTotal << endl;

} // End of main() function

Add a comment
Know the answer?
Add Answer to:
Please help! In this lab, you will use what you have learned about accumulating totals in...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT