///P08 File Processing Juan Marquez /* This program allows users to enter and save payroll information to a file. The file can then be read so that the information entered can be displayed. Payroll clerks can choose from the following menu options: A: Create a new file for Payroll Information B: Enter Payroll Information C: Display Payroll Information X: Exit the Payroll Information Module The following items for each employee are saved in the file p08.txt: Employee ID Rate Hours W1,W2,W3,W4 */ #include // file processing #include // cin and cout #include // toupper #include // setw using namespace std; //menu options //Opt A: void createNewFile(); //Opt B: void enterInfo(); //Opt C: void listInfo(); //Supporting functions void displayContinuePrompt(); //Program starts here void main() { //Declare local variable to store menu option selected char choice; //Check to see what the user wants to do do //while (choice != 'X') { cout << "P08 Juan Marquez \n\n"; cout << "Enter the letter of the desired menu option. \n" << "Press the Enter key after entering the letter. \n\n" << " A: Create a new file for Payroll Information \n" << " B: Enter Payroll Information \n" << " C: List Payroll Information \n\n" << " X: Exit the Payroll Information Module \n\n" << "Choice: "; cin >> choice; cout << "\n\n"; choice = toupper(choice); //convert to uppercase switch (choice) { case 'A': createNewFile(); break; case 'B': enterInfo(); break; case 'C': listInfo(); break; case 'X': cout << "Now exiting Payroll Information...please wait.\n\n"; break; default: cout << "\a"; //alert cout << "Invalid Option Entered - Please try again. \n\n"; }//end of switch } while (choice != 'X'); return; }//end of main //Function Definitions void createNewFile() { //Declare local variables char answer; cout << "P08 Juan Marquez Create new file for Payroll Information \n\n"; //Student must remove next line of code and code the rest of the function. //Prompt the user if they want to create a new file cout << "Would you like to create a new file? Type Y or N.\n\n"; cin >> answer; //If Yes, try to create a new file using open function if (toupper (answer) == 'Y') { // Open the file for output ofstream outfile; outfile.open("P08.txt"); // If there are any errors, // display an error message and return. if (outfile.fail()) { cout << "There was an error.\n"; exit(1); } // else // display message that a file was created successfully //else else cout << "New file created successfully!\n"; // display a message that a new file was NOT created if (toupper (answer) == 'N') { cout << "No new file created.\n"; exit(1); } // Close the file outfile.close(); return; //Call displayContinue to pause displayContinuePrompt(); return; } } void enterInfo() { //Declare local variables int employeeId; double rate; int w1Hours, w2Hours, w3Hours, w4Hours; char answer; cout << "P08 Juan Marquez Enter Payroll Information \n\n"; //Student must remove next line of code and code the rest of the function. cout << "Please enter your payroll information."; //Open the file for output (append) ofstream outfile; outfile.open("P08.txt", ios::app); //If there are any errors, // display an error message and return. if (outfile.fail()) { cout << "An error has occured.\n"; exit(1); } //Set output to 2 decimal positions for file outfile.setf(ios::fixed); outfile.setf(ios::showpoint); outfile.precision(2); //Use a do-while loop to get input do // Display prompt and get the data { cout << "P08 Aaron harper enter payrol information.\n\n"; cout << "Enter the Employee Id, rate, w1, w2, w3, w4: \n\n"; cin >> employeeId >> rate >> w1Hours >> w2Hours >> w3Hours >> w4Hours; // Write data to file and format using setw manipulators outfile << employeeId << rate << w1Hours << w2Hours << w3Hours << w4Hours; // Prompt user if they want to add another employee cout << "Would you like to add another employee (Y/N)\n"; cin >> answer; // Do loop again if they don't enter N }while (toupper (answer) == 'Y'); //end do-while loop cout << endl; //Close the file outfile.close(); return; } //Call displayContinue to pause displayContinuePrompt(); return; void listInfo(); { //Declare local variables int employeeId; double rate; int w1Hours, w2Hours, w3Hours, w4Hours; cout << "P08 Juan Marquez List Payroll Information \n\n"; //Open the file for input ofstream infile; infile.open("P08.txt", ios::app); //If there are any errors, // display an error message and return. if (outfile.fail()) { cout << "An error has occured.\n"; exit(1); } //Set output to 2 decimal positions for cout cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); //Display headings cout << "Employee Rate Wk1 Wk2 Wk3 Wk4 \n\n"; //Read the first record. infile >> rate >> wk1 >> wk2 >> wk3 >> wk4; cin >> rate >> wk1 >> wk2 >> wk3 >> wk4; //Use while loop to process file, because // while loops handle empty files. while (! infile.eof() ) { outFile << rate << wk1 << wk2 << wk3 << wk4; // Display record read and format using setw manipulators // Read next record inFile >> rate >> wk1 >> wk2 >> wk3 >> wk4; //end while loop return 0; } //Close the file outfile.close(); return; //Call displayContinue to pause displayContinuePrompt(); return; } void displayContinuePrompt() { //Declare local variables char prompt; cout << "\n\nProcedure completed. Press Enter to continue: "; cin.ignore(); prompt = cin.get(); system("cls"); //clear screen - DOS return; } //End of program