Untitled
unknown
plain_text
10 months ago
6.3 kB
10
Indexable
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
#include <cstring>
using namespace std;
// Structure for MPG Calculation
struct MPG {
char carName[50];
char tripName[50];
double milesDriven;
double gasUsed;
double mpg;
};
// Structure for Simple Pay Calculation
struct Pay {
char employeeName[50];
double hoursWorked;
double hourlyRate;
double totalPay;
};
// Vectors to store calculations
vector<MPG> mpgRecords;
vector<Pay> payRecords;
// Function to calculate MPG
void calculateMPG() {
MPG mpgEntry;
cout << "Enter car name: ";
cin.ignore();
cin.getline(mpgEntry.carName, 50);
cout << "Enter trip name: ";
cin.getline(mpgEntry.tripName, 50);
cout << "Enter miles driven: ";
cin >> mpgEntry.milesDriven;
cout << "Enter gallons of gas used: ";
cin >> mpgEntry.gasUsed;
if (mpgEntry.gasUsed == 0) {
cout << "Error: Gas used cannot be zero!" << endl;
return;
}
mpgEntry.mpg = mpgEntry.milesDriven / mpgEntry.gasUsed;
mpgRecords.push_back(mpgEntry);
cout << "\nMPG Calculation Saved:\n";
cout << mpgEntry.carName << " - " << mpgEntry.tripName
<< " Miles = " << mpgEntry.milesDriven
<< " Gallons = " << mpgEntry.gasUsed
<< " MPG = " << fixed << setprecision(2) << mpgEntry.mpg << endl;
}
// Function to calculate Pay
void calculatePay() {
Pay payEntry;
cout << "Enter employee name: ";
cin.ignore();
cin.getline(payEntry.employeeName, 50);
cout << "Enter hours worked: ";
cin >> payEntry.hoursWorked;
cout << "Enter hourly rate: ";
cin >> payEntry.hourlyRate;
payEntry.totalPay = payEntry.hoursWorked * payEntry.hourlyRate;
payRecords.push_back(payEntry);
cout << "\nPay Calculation Saved:\n";
cout << payEntry.employeeName << " - Hours Worked: " << payEntry.hoursWorked
<< " @ $" << fixed << setprecision(2) << payEntry.hourlyRate
<< " = $" << payEntry.totalPay << endl;
}
// Function to display MPG records
void viewMPGCalculations() {
if (mpgRecords.empty()) {
cout << "No MPG records found.\n";
return;
}
cout << "\nMPG Calculations:\n";
for (const auto &mpg : mpgRecords) {
cout << mpg.carName << " - " << mpg.tripName
<< " Miles = " << mpg.milesDriven
<< " Gallons = " << mpg.gasUsed
<< " MPG = " << fixed << setprecision(2) << mpg.mpg << endl;
}
}
// Function to display Pay records
void viewPayCalculations() {
if (payRecords.empty()) {
cout << "No Pay records found.\n";
return;
}
cout << "\nPay Calculations:\n";
for (const auto &pay : payRecords) {
cout << pay.employeeName << " - Hours Worked: " << pay.hoursWorked
<< " @ $" << fixed << setprecision(2) << pay.hourlyRate
<< " = $" << pay.totalPay << endl;
}
}
// Function to save MPG records to a file
void saveMPGToFile() {
char filename[50];
cout << "Enter filename to save MPG records: ";
cin.ignore();
cin.getline(filename, 50);
ofstream file(filename);
if (!file) {
cout << "Error opening file!\n";
return;
}
for (const auto &mpg : mpgRecords) {
file << mpg.carName << "," << mpg.tripName << ","
<< mpg.milesDriven << "," << mpg.gasUsed << "," << mpg.mpg << endl;
}
file.close();
cout << "MPG records saved to " << filename << endl;
}
// Function to save Pay records to a file
void savePayToFile() {
char filename[50];
cout << "Enter filename to save Pay records: ";
cin.ignore();
cin.getline(filename, 50);
ofstream file(filename);
if (!file) {
cout << "Error opening file!\n";
return;
}
for (const auto &pay : payRecords) {
file << pay.employeeName << "," << pay.hoursWorked << ","
<< pay.hourlyRate << "," << pay.totalPay << endl;
}
file.close();
cout << "Pay records saved to " << filename << endl;
}
// Function to view MPG records from a file
void viewMPGFile() {
char filename[50];
cout << "Enter MPG filename to view: ";
cin.ignore();
cin.getline(filename, 50);
ifstream file(filename);
if (!file) {
cout << "Error opening file!\n";
return;
}
cout << "\nMPG Records from File:\n";
string line;
while (getline(file, line)) {
cout << line << endl;
}
file.close();
}
// Function to view Pay records from a file
void viewPayFile() {
char filename[50];
cout << "Enter Pay filename to view: ";
cin.ignore();
cin.getline(filename, 50);
ifstream file(filename);
if (!file) {
cout << "Error opening file!\n";
return;
}
cout << "\nPay Records from File:\n";
string line;
while (getline(file, line)) {
cout << line << endl;
}
file.close();
}
// Main menu
void menu() {
int choice;
do {
cout << "\n===== Menu =====\n";
cout << "1. Calculate MPG\n";
cout << "2. Calculate Simple Pay\n";
cout << "3. View MPG Calculations\n";
cout << "4. View Pay Calculations\n";
cout << "5. Save MPG to File\n";
cout << "6. Save Pay Calculations to File\n";
cout << "7. View MPG File\n";
cout << "8. View Pay File\n";
cout << "9. Exit\n";
cout << "Enter choice: ";
cin >> choice;
switch (choice) {
case 1: calculateMPG(); break;
case 2: calculatePay(); break;
case 3: viewMPGCalculations(); break;
case 4: viewPayCalculations(); break;
case 5: saveMPGToFile(); break;
case 6: savePayToFile(); break;
case 7: viewMPGFile(); break;
case 8: viewPayFile(); break;
case 9: cout << "Exiting...\n"; break;
default: cout << "Invalid choice, try again.\n";
}
} while (choice != 9);
}
// Main function
int main() {
menu();
return 0;
}Editor is loading...
Leave a Comment