Change of program

S

SK

Hi
I am trying a simpler version of a program I was trying to write. The
idea is to have someone enter the information and then at the end of
the program display all of the info. in a table. I have a feeling the
errors I am making are probably stupid but I would appreciate any
imput.

//Specs to be added later

//C Libraries
#include <stdio.h>
#include <math.h>
#include <string.h>

//Global Variable Declaratives
FILE*inp;

char Fname[10];
char Lname[10];
char department[20];
char again;
char FULLNAME[30];

int count_EMP;
int number_EMP;

float wage;
float OTwage;
float hours;
float RegHr;
float RegHrPay;
float OTHrPay;
float OTHr;
float GrossPay;



//Function Prototypes
void GetInfo(void);
void Process(void);
void Report(void);

int main(void)
{

GetInfo();

system("pause");

return 0;
}


void GetInfo(void)
{


do{


printf("\nPlease enter the first and last name of the
employee:");
scanf("%s %s", &Fname, &Lname);

printf("\nPlease enter the hourly wage for the employee: ");
scanf("%f", &wage);

printf("\nPlease enter the number of hours worked this week:
");
scanf("%f", &hours);


printf("\nDo you want to enter another employee into the
payroll for"
"week?");
scanf("%s", &again);


}while(again == 'Y' || again == 'y');




if (RegHr > 40)
{
OTHr = hours - 40;
OTHrPay = 1.5 * OTHr * wage;
RegHrPay = 40.0 * wage;
}

else
{
RegHrPay = hours * wage;
OTHrPay = 0.0;

}

GrossPay = RegHrPay + OTHrPay;





if(count_EMP>=1);

for (count_EMP = 0;
count_EMP < number_EMP;
count_EMP++);

strcpy(FULLNAME, Fname);
strcat(FULLNAME, Lname);



scanf("%s%f%f%f\n\n", &FULLNAME, &RegHr, &OTHr, &GrossPay);


if(again != 'Y' && again !='y');
printf("End of processing\n\n\n");

printf("\n\nMountain Pacific Corporation\n");
printf("Department Salary Program\n\n");
printf("Department: %s\n\n", department);

printf("Employee Reg Hrs "
"Overtime Hrs Gross\n");
printf("-----------------------------------------"
"-------------------------\n\n");

printf("%-20s%11.2f%11.2f%11.2f", FULLNAME, RegHr, OTHr,
GrossPay);





}
 
B

Barry Schwarz

Hi
I am trying a simpler version of a program I was trying to write. The
idea is to have someone enter the information and then at the end of
the program display all of the info. in a table. I have a feeling the
errors I am making are probably stupid but I would appreciate any
imput.

//Specs to be added later

//C Libraries
#include <stdio.h>
#include <math.h>
#include <string.h>

//Global Variable Declaratives
FILE*inp;

char Fname[10];
char Lname[10];
char department[20];
char again;
char FULLNAME[30];

int count_EMP;
int number_EMP;

float wage;
float OTwage;
float hours;
float RegHr;
float RegHrPay;
float OTHrPay;
float OTHr;
float GrossPay;



//Function Prototypes
void GetInfo(void);
void Process(void);
void Report(void);

int main(void)
{

GetInfo();

system("pause");

return 0;
}


void GetInfo(void)
{


do{


printf("\nPlease enter the first and last name of the
employee:");
scanf("%s %s", &Fname, &Lname);

The %s formats require the corresponding arguments to be pointers to
char. The arguments you provide are pointers to array of char. On
most systems this difference is probably irrelevant but it pays to do
it right. Remove the &s.
printf("\nPlease enter the hourly wage for the employee: ");

Output that does not end with a \n may not be visible when the system
waits for user input. If you want the input on the same line as the
prompt, use fflush to flush the output stream.
scanf("%f", &wage);

printf("\nPlease enter the number of hours worked this week:
");
scanf("%f", &hours);


printf("\nDo you want to enter another employee into the
payroll for"
"week?");
scanf("%s", &again);


}while(again == 'Y' || again == 'y');

If the user answers yes, the new input will replace all the previous
input which will never be processed.
if (RegHr > 40)
{
OTHr = hours - 40;
OTHrPay = 1.5 * OTHr * wage;
RegHrPay = 40.0 * wage;

You are very inconsistent with your constants. Here you use 40 and
40.0. Not a technical problem but when you come back to the program
after several months it will be just another confusion factor.
}

else
{
RegHrPay = hours * wage;
OTHrPay = 0.0;

}

GrossPay = RegHrPay + OTHrPay;

Is there some reason for all this wasted vertical space? It only
serves to disrupt the visual flow of the program.
if(count_EMP>=1);

for (count_EMP = 0;
count_EMP < number_EMP;
count_EMP++);

Where do any of these get incremented?
strcpy(FULLNAME, Fname);
strcat(FULLNAME, Lname);

Do you really want DoeJohn as the result?
scanf("%s%f%f%f\n\n", &FULLNAME, &RegHr, &OTHr, &GrossPay);

Did you mean printf here? If so, remove all the &s. Why would you
print here and then again below? What was your real intent?
if(again != 'Y' && again !='y');

Based on the do while above, again cannot be 'Y' or 'y'.
printf("End of processing\n\n\n");

printf("\n\nMountain Pacific Corporation\n");
printf("Department Salary Program\n\n");
printf("Department: %s\n\n", department);

printf("Employee Reg Hrs "
"Overtime Hrs Gross\n");
printf("-----------------------------------------"
"-------------------------\n\n");

printf("%-20s%11.2f%11.2f%11.2f", FULLNAME, RegHr, OTHr,
GrossPay);

You probably want a \n at the end of the format string.


<<Remove the del for email>>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top