This file is like.
John Doe 789-89-7897 7.25 45 F
Jane Smith 456-56-4564 8.20 30 P
Luke Warm 123-23-1231 5.26 48 F
I need to read from this file and then output a report with columns and rows.
This is my code so far, but somethings wrong, it keeps crashing.
Code:
# include <iostream>
# include <fstream>
# include <iomanip>
# include <string>
using namespace std;
int main ()
{
const int LENGTH=10;
int num_records=0;
char FName[LENGTH];
char LName[LENGTH];
char ssNum[LENGTH];
float hrWage[LENGTH];
float weekHrs[LENGTH];
char empStatus[LENGTH];
float timePay=0;
float overHrs=0;
float overPay=0;
float overTime=0;
string statDisplay;
float netPay=0;
int unionFee=5;
cout<<"First Name Last Name SSN Wage #Hrs Reg.Pay OT Pay Status NetPay "<<endl;
//open file
ifstream data_file ("F:\\2011 Spring\\C++\\Data Files\\Ch11 Exercise 1\\DataFile.txt");
//check for an open file
if (data_file.is_open())
{
data_file>>FName[num_records]
>>LName [num_records]
>>ssNum [num_records]
>>hrWage [num_records]
>>weekHrs [num_records]
>>empStatus [num_records];
while(!data_file.eof())
{
num_records++;
data_file>>FName[num_records]
>>LName [num_records]
>>ssNum [num_records]
>>hrWage [num_records]
>>weekHrs [num_records]
>>empStatus [num_records];
timePay=hrWage[num_records]*weekHrs[num_records];
if (weekHrs[num_records]>40)
{
overHrs=weekHrs[num_records]-40;
overPay=hrWage[num_records]*1.5;
overTime=overHrs*overPay;
}
else
{
overTime=0;
}
if(empStatus[num_records]=='F')
{
statDisplay = "Fulltime" ;
}
else
{
statDisplay = "Parttime";
}
netPay=(timePay+overTime)-unionFee;
cout<<left<<setw(15)<<FName;
cout<<left<<setw(14)<<LName;
cout<<left<<setw(16)<<ssNum;
cout<<left<<setw(9)<<hrWage;
cout<<left<<setw(6)<<weekHrs;
cout<<left<<setw(9)<<timePay;
cout<<left<<setw(8)<<overTime;
cout<<left<<setw(11)<<statDisplay;
cout<<left<<setw(11)<<netPay<<endl;
}
data_file.close();
}
else
{
cout<<"Error: File is unable to open."<<endl;
}
return(0);
}