First, you don't need the function prototypes. As long as a function or its prototype appears before it is used you are OK.
Second, you can lose the function OverTime entirely and for two reasons : it is not called and it does not do what its name implies.
Third, I would rewrite your calcGross function to make it simpler.
double calcGross( int hours, double rate )
{
int straight = hours;
if( straight > 40 )
straight = 40;
double stamount = straight * rate;
int over = hours - 40;
if( over < 0 )
over = 0;
double otamount = rate * 1.5 * over;
return otamount + stamount;
}
There is a little more code there but it is all very simple and it is much easier to see what's going on the debugger which is the highest priority for me.
-edit-
The prototypes are supposed to be in a separate header file to satisfy the requirement. The compiler does not require that as I noted.