0

I am having a little trouble with my program assignment. I don't want the answer I just need pointed in the wrtie direction.
I cannot get my program to loop. The program prompts user to enter hours worked and calculates and displays. The it asks the user to enter y for yes to continue entering more data. I get to there and then it stops. Below is my code that I have written. Can anyone give me suggestions? Thanks

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

void weeklySalary();
    
    double wage;
	int hours = 0;
	double overtime = 10;
	const int per_wk = 40;
	double regpay = 0;
	double doubletime = 0;
	double overtimepay = 0;
	char y;
    char response;

int main()
{	
    weeklySalary();
    
	cout << "\n\nIs there more data to enter? Select y to resume.\n";
    cin >> response;

    if(response == 'y' || response == 'Y')
	{
	cout << weeklySalary << endl;	
	}
	else
	cout << "Ending Program. " << endl;
	
    return 0;
}

void weeklySalary()
{
    	cout << "Enter number of hours worked for the week. \n";
		cin >> hours;
        cout << "Enter hourly wage: \n";
	    cin >> wage;
				
        regpay = per_wk * wage;
        overtime = hours - per_wk;
		
		
   	   if (overtime <=10)
	    {
   		    overtimepay = overtime * 1.5 * 10.00;
	        doubletime = 0;
		}
	   else
	   
		if (overtime >10)
		{
		    overtime = hours - per_wk;
		    overtimepay = 10 * 1.5 * 10.00;
   	        doubletime = overtime - 10;
		    doubletime = doubletime * 2 * 10.00;
	    }
	   else;
	   
		   cout << "\n\nRegular Pay:      $" << regpay << endl;
	       cout << "Time-and-a-half:  $" << overtimepay << endl;
   	       cout << "Double Time:      $" << doubletime << endl;
	       cout << "Total:            $" << regpay + overtimepay + doubletime << endl;
}

<< moderator edit: added code tags: [code][/code] >>

4
Contributors
6
Replies
7
Views
11 Years
Discussion Span
Last Post by varunpuri
0

I only took a quick look, but it sounds like the old newline left over in the input buffer thing: you type Y<cr>; you grab the 'Y' and the next time through you end up getting the '\n', which is not a 'Y'.

0

I took another look but now when I respond with y and enter I get the following instead of looping:
0041C05A
Now what am I doing wrong?

0

Where is your loop?

What is that variable that you are streaming out?

You also have an error in one of your calculations.

I have modified your program and it seems to work now once you figure out the above comments that I made.

Take care,
Bruce

0

The Program is to go through all the steps first. Asking the user to enter the data. When they are finished that is when the prompt to continue begins. I used the weeklySalary to begin the program and then to go to the question of do you want to enter more data. I tried a while loop and then it went crazy and made it an infinite loop.
On my calculations I notice that I need to make the portion where I multiple the overtime * 1.5 * wage not 10.00. And I need to change this in all the areas used.
I need to change my double overtime to int. And I will get rid of the newline.
Am I getting any closer?

0

hi buddy

i suppose that u have not put the piece of code asking for more data in a loop
i think that u'll solve it by doing so

have a nice day

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.