Quantcast
Channel: CodeGuru Forums - Visual C++ Programming
Viewing all articles
Browse latest Browse all 3021

need help with calculations but it wont complie and giving me errors

$
0
0
ok i have correct and update my code and it does work with no errors expect it doesnt do calculations and bubblesort with employees last name
// here is the txt file//
Code:

40.0  10.00 A1234 Jane Adams
50.0  10.00 L8765 Mary Lincoln
25.5  10.85 W7654 Martha Washington
52.0  15.75 A9876 John Adams
45.0  25.00 W1235 George Washington
40.25  55.00 L9087 Abraham Lincoln
30.0    9.75 T9876 William Tell
42.5  12.50 M7654 Missy Muffett
30.0  10.00 P8765 Peter Piper

//heres my code//
Code:

#include <iostream>
#include <cstdio>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
const int SZ = 55;
void tellUser();
int readData( string [], string [], string [], double [], double []);
int bubbleSort();
int outputScr();
void regular();
void overtime();
void grossPay();
int main()
{
      string firstname[SZ], lastname[SZ];
      string empids[SZ];
      double hours[SZ];
      double rates[SZ];
      ofstream outputFile;
      bool swapmade = false;
      bool screenonly = false;
      char yesno;
      int  i, numemp, lastpos; 
      tellUser();                                            // tells the user about the program
      bubbleSort();                                          // sorts the employees from their last , first name
      outputScr();                                          // display employee payroll information to screen and txt file
      return 0;
}  //end main
/* tellUser()
 * tells about the program to the user
 */
void tellUser()  // tellUser Function
{
  cout <<"\nThis program reads a file called employees.txt,\n";
  cout <<"and it calculates the regular pay, overtime pay\n";
  cout <<"and grosspay and total for grosspay for each employee and\n";
  cout <<"sorts the from last name and output is written to the screen. \n\n"; //tell user what program does
}  //end tellUser Function
/*
 * readData
 * firstname , lastname, empID, hours, rate of pay
 */
int readData(string firstn[], string lastn[], string empID[], double hrs[], double rate[])    //readData Function

    int numemp;
    ifstream inputFile;
    int i = 0;
    // tellUser(); 
    // open file and read inputs from employees.txt
    inputFile.open("employees.txt");    //open employees.txt file
    if (inputFile.fail())                // employee.txt fails to open
    {
        cout << "Error opening file employees.txt \n\n";
        cout << "end of program\n\n";
    }
    else
    {
        while ((inputFile >> hrs[i]) && (i < SZ))
        {
          inputFile >> rate[i];
          inputFile >> empID[i];
          inputFile >> firstn[i];
          inputFile >> lastn[i];
          i++;
        } //end while
      // cout << "There were " << i << " employess\n\n";
      // numemp = i;
        inputFile.close();
        //************* close input file ****************//
    }
}    //en dof readData Function
/* bubbleSort()
 * sorts employees with theor last name snd displays in
 * screen and txt file
 */
int bubbleSort()      //bubbleSort Function
{
      string firstn[SZ], lastn[SZ];
      string empID[SZ];
      double hrs[SZ];
      double rate[SZ];
      int  i, numemp, lastpos;
      bool screenonly = false;
      ofstream outputFile;
      bool swapmade = false;
   
      lastpos = numemp;
      do
      {
        lastpos--;
        swapmade = false;
        for ( i = 0; i < lastpos; i++)
        {
            swap(firstn[i], firstn[i+1]);
            swap(lastn[i], lastn[i+1]);
          // swap(empID[i], empID[i+1]);
          // swap(hrs[i], hrs[i+1]);
          // swap(rate[i], rate[i+1]);
            swapmade - true;
        }
      } while(swapmade);
}    //end of bubbleSort Function
/* regular()
 * calculates employees regular pay
 */
void regular()
{
  double grossPay;
  double hours, rates;
  if(hours <= 40)
    grossPay = hours * rates;
}
/* overtime()
 * calculates employees overtime pay
 */
void overtime()
{
  double hours, rate, overtime;
  if (hours >= 40)
      overtime = (hours - 40) * rate * 1.5;
}
/* grossPay()
 * calculates employees regular + overtime pay
 */
void grossPay()
{
  double  hours, rate, grossPay;
  if (hours <= 40)
      grossPay = (hours * rate);
  else
      grossPay = ((hours - 40) * rate * 1.5);
}
/* outputScr()
 * displays the employee payroll function to the screen and txt file
 */
int outputScr()

      string firstname[SZ], lastname[SZ];
      string empids[SZ];
      double hours[SZ];
      double rates[SZ];
      int  i, numemp, lastpos;
      bool screenonly = false;
      ofstream outputFile;
      cout << "Payroll being written to file payroll.txt\n\n"; //output function
      outputFile.open("payroll.txt"); // output file
      if (outputFile.fail())
      {
          screenonly = true;
          cout <<" output file did not open\n";
          cout <<" output file will only be sent to the screen\n";
      }
      cout <<"  First      Last    Employee      Hours      Rate      Regular  Overtime    Gross\n";
      cout <<"  Name        Name    Number        Worked      of Pay    Pay      Pay        Pay\n";
      cout <<"============================================================================================\n";
               
      numemp = readData(firstname, lastname, empids, hours, rates);
      for (i = 0; i < numemp; i++)
      {
          cout << setw(7) << firstname[i] << setw(12) << lastname[i];
          cout << setw(11) << empids[i] << " " << setw(12) << fixed << setprecision(2) << hours[i] << " ";
          cout << setw(11) << rates[i] << " " << setw(7) << fixed << setprecision(2) << regular << " ";
          cout << setw(9) << overtime << " " << setw(12) << fixed << setprecision(2) << grossPay << " " << endl;
     
          if (!screenonly)
          {
                outputFile << setw(7) << left << firstname[i] << " ";
                outputFile << setw(12) << left << lastname[i] << " ";
                outputFile << setw(11) << fixed << right << empids << " ";
                outputFile << setw(12) << fixed << right << hours[i] << " ";
                outputFile << setw(11) << fixed << right << rates[i] << " \n";
          }
      }

    cout <<"============================================================================================\n";
    cout <<"\t\t\tTotal Gross Pay      \t\t\t\t\t" << fixed << setprecision(2) << grossPay << " \n";
      if (!screenonly)
      {
        outputFile.close();
        cout << "inpur file closed\n\n";}
} // end main

//results i get after compiling the program *** CALCULATIONS AND BUBVLE SORT (arrange from from employees last name***//
Code:

First          Last      Employee    Hours        Rate  Regular    Overtime    Gross
Name          Name        Number      Worked      of Pay    Pay        Pay        Pay
======================================================
Jane          Adams      A1234      40.00        10.00      1          1        1
Mary          Lincoln    L8765      50.00        10.00      1          1        1
Martha        Washington  W7654      25.50        10.85      1          1        1
John          Adams      A9876      52.00        15.75      1          1        1
George        Washington  W1235      45.00        25.00      1          1        1
Abraham        Lincoln    L9087      40.25        55.00      1          1        1
William        Tell        T9876      30.00        9.75      1          1        1
Missy          Muffett    M7654      42.50        12.50      1          1        1
Peter          Piper      P8765      30.00        10.00      1          1        1

===================================================
                        Total Gross Pay                                              1


Viewing all articles
Browse latest Browse all 3021