Block of Code

Practical Examples for Programmers

  • Home
  • C++
  • Java
  • Visual Basic
  • Discrete Math
  • Ask a Question

Pay Increase

Three employees in a company are up for a special pay increase. You are given a file, say Ch3_Ex6Data.txt, with the following data:

Miller Andrew 65789.87 5
Green Sheila 75892.56 6
Sethi Amit 74900.50 6.1

Each input line consists of employee’s last name, first name, current salary, and percent pay increase. For example, in the first input line, the last name of the employee is Miller, the first name is Andrew, the current salary is 65789.87, and pay increase is 5%. Write a program that reads data from the specified file and stores the output in the file CH3_Ex6Output.dat. For each employee, the data must be output in the following form: firstName lastName updatedSalary. Format the output of decimal numbers to two decimal places.

Write the Code:

/*
Project: Pay Increase
Description: This program reads data from a text file which contains
employee names and salaries. It calculates a pay increase and
stores the output in a new file.
*/

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;

int main()
{
   // Declare Variables
   ifstream inData; // input variable for file
   ofstream outData; // output variable for file
   string lastName = "";
   string firstName = "";
   double salary = 0;
   double raisePercentage = 0;
   double newSalary = 0;

   // Format precision to two decimal places
   cout << fixed << setprecision(2);
   outData << fixed << setprecision(2);

   cout << "This program reads data from a text file which contains employee names ";
   cout << "\nand salaries. It calculates a pay increase and stores the output in a new file.\n\n";

   inData.open("Ch3_Ex6Data.txt"); // opens input file
   outData.open("Ch3_Ex6Output.txt"); // creates and/or opens output file

   // Process first employee
   cout << "Reading data from old file...\n\n";
   inData >> lastName >> firstName >> salary >> raisePercentage;
   newSalary = salary * ((1 + raisePercentage) / 100) + salary;
   cout << endl << firstName << " " << lastName << " has a new salary of $" << newSalary;
   outData << firstName << " " << lastName << " " << newSalary;

   // Process second employee
   inData >> lastName >> firstName >> salary >> raisePercentage;
   newSalary = salary * ((1 + raisePercentage) / 100) + salary;
   cout << endl << firstName << " " << lastName << " has a new salary of $" << newSalary;
   outData << firstName << " " << lastName << " " << newSalary;

   // Process third employee
   inData >> lastName >> firstName >> salary >> raisePercentage;
   newSalary = salary * ((1 + raisePercentage) / 100) + salary;
   cout << endl << firstName << " " << lastName << " has a new salary of $" << newSalary;
   cout << "\n\nWriting data to new file..." << endl << endl;
   outData << firstName << " " << lastName << " " << newSalary;

   inData.close(); // closes input file
   outData.close(); // closes output file

   return 0;
}

Secondary Sidebar

This is the secondary sidebar

Copyright © 2025 · Metro Pro Theme on Genesis Framework · WordPress · Log in