/* Course Number : ISYS 116 Student Name : Jason Gradziel Student Number : 826-135-535 Professors Name : Gene Rychlewski Class Name : Thursday Lab Title : PAYROL3 */ #include #include #include #include float hours, rate_per_hour, gross_pay, taxrate, Tax, RESP, EI, CPP, Total, net_pay; int dependents, counter; int setup(char IDcode[6],char fname[16],char lname[21], int cntr,int employees); int process(); int wrapup(char IDcode[6],char fname[16],char lname[21]); int data_item(); int tax_rate(); int tax_deduction(); int print_headers(); int print_details(); void main(void) { char IDcode[6], fname[16], lname[21], *num; int employees, flag=1, cntr=0; while(flag==1) { clrscr(); gotoxy(20,10); printf("Enter in a number :"); gotoxy(25,11); printf("1. Run Pay Roll Program"); gotoxy(25,12); printf("2. Exit"); gotoxy(40,10); *num = getch(); *num = atoi(num); if (*num == 1) { gotoxy(10,15); printf("How many times do you want to run the program ? : "); scanf("%d",&employees); fflush(stdin); for(cntr=1; cntr<=employees; cntr++) { setup(IDcode,fname,lname,cntr,employees); process(); wrapup(IDcode,fname,lname); } } else flag = 0; } } int setup(char IDcode[6],char fname[16], char lname[21],int cntr,int employees) { clrscr(); /* 1.1 initial counter to 0.*/ counter=0; /* 1.2 get & count input data. */ gotoxy(35,2); printf("PAY ROLL"); gotoxy(70,2); printf("%d of %d",cntr,employees); gotoxy(4,7); printf("Please enter in the following"); data_item(); gotoxy(16,8); printf("Employee ID code (A-001) : "); gets(IDcode); data_item(); gotoxy(21,9); printf("First name (max 15) : "); gets(fname); data_item(); gotoxy(22,10); printf("Last name (max 20) : "); gets(lname); data_item(); gotoxy(16,11); printf("The number of dependents : "); scanf("%d",&dependents); fflush(stdin); data_item(); gotoxy(9,12); printf("Number of hours worked (week) ? : "); scanf("%f",&hours); data_item(); gotoxy(25,13); printf("Rate per hour ? : "); scanf("%f",&rate_per_hour); data_item(); gotoxy(25,14); printf("Scanning"); for (int a=0; a<10; a++) { delay(200); printf("."); } gotoxy(25,14); printf(" "); return 0; } int process() { /* 2.1.1 Calculate gross pay */ gross_pay = hours * rate_per_hour; /* 2.1.2 Function tax rate */ tax_rate(); /* 2.2 Calculations */ /* 2.2.2 call tax decduction */ tax_deduction(); /* 2.2.3 */ net_pay = gross_pay - Total; return 0; } int wrapup(char IDcode[6], char fname[16], char lname[21]) { /* 3.1 print headers */ print_headers(); /* 3.2 print details */ print_details(); gotoxy(50,25); printf("PROGRAM COMPLETE"); /* clean up */ getch(); fflush(stdin); clrscr(); return 0; } int data_item() { /* increase counter by 1 */ gotoxy(1,25); printf("Data item # %d",counter); counter++; return 0; } tax_rate() { /* 2.1 check tax rate */ if (dependents<3) { if (gross_pay<300) taxrate=0.2; else if (gross_pay>800) taxrate=0.4; else taxrate=0.3; } else { if (gross_pay<300) taxrate=0.15; else if (gross_pay > 800) taxrate=0.35; else taxrate=0.25; } return 0; } int tax_deduction() { /* 2.2.2 */ Tax = gross_pay * taxrate; RESP = dependents * 25; EI = gross_pay * 0.005; CPP = gross_pay * 0.01; Total = Tax + RESP + EI + CPP; return 0; } int print_headers() { /* 3.1 */ gotoxy(2,20); printf("Gross Pay"); gotoxy(2,21); printf("---------"); gotoxy(14,20); printf("Tax Rate"); gotoxy(14,21); printf("--------"); gotoxy(26,20); printf("Deduction for Tax Purposes"); gotoxy(26,21); printf("--------------------------"); gotoxy(25,22); printf("Tax"); gotoxy(32,22); printf("RESP"); gotoxy(39,22); printf("EI"); gotoxy(45,22); printf("CPP"); gotoxy(52,22); printf("Total"); gotoxy(64,20); printf("Net Pay"); gotoxy(64,21); printf("-------"); return 0; } int print_details() { /* 3.2 */ gotoxy(3,23); printf("%.2f",gross_pay); gotoxy(15,23); printf("%.2f",taxrate); gotoxy(24,23); printf("%.2f",Tax); gotoxy(32,23); printf("%.2f",RESP); gotoxy(39,23); printf("%.2f",EI); gotoxy(45,23); printf("%.2f",CPP); gotoxy(52,23); printf("%.2f",Total); gotoxy(64,23); printf("%.2f",net_pay); return 0; }