У меня есть код ниже, который читает данные из текстового файла и распечатывает их в табличной форме. Одна вещь, которую мне нужно сделать, это создать массив, который рассчитывает заработную плату. Заработная плата рассчитывается с использованием заявления «если еще», поскольку она должна учитывать сверхурочные. Таблица должна также включать заработную плату, и это было бы легко, но мне нужно выполнить пузырьковую сортировку, которая организует данные в порядке от самой высокой заработной платы до самой низкой заработной платы. Внизу таблицы должна отображаться сумма всех заработных плат.
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
ifstream myFile("Assignment4.txt");
if (!myFile.is_open())
{
cout << "File Failed to Open!" << endl;
return 0;
}
string firstname, lastname;
int id, hours;
double rate, wage;
string myString;
string line;
cout << "First Name |" << " Last Name |" << " Employee ID |" << " Hourly Rate($) |" << " Hours |" <<
" Wage($)" <<endl;
while (getline(myFile, line))
{
stringstream ss(line);
getline(ss, firstname, ':');
getline(ss, lastname, ':');
getline(ss, myString, ':');
rate = stoi(myString);
getline(ss, myString, ':');
id = stoi(myString);
getline(ss, myString, '\n');
hours = stoi(myString);
}
myFile.close();
int array;
const int NUMBER_OF_EMPLOYEES = 100;
array = new int[capacity];
for (int i = 0; i < 4; i++) {
if (hours <= 40)
wage = rate * hours;
else
wage = rate * 40 + ((hours - 40) * rate * 1.5);
cout << setw(10) << firstname << " |" <<
setw(10)
<< lastname << " |" << setw(12)
<< id << " |" << setw(15)
<< rate << " |" << setw(6)
<< hours << " | " << wage << endl;
}
return 0;
}
Выше приведен код, который я пытаюсь использовать для своей неудачной попытки установить массив непосредственно перед заработной платой. логи c. Ниже приведен текстовый файл, из которого я читаю.
Майк: Джонс: 567: 25.75: 67
Сью: Смит: 45: 30.25: 82
Энн: Парикмахер: 2: 15.45: 39
Билли: Симпсон: 1234: 10.15: 65
Барабара: Камень: 75: 45.33: 22 * 1014 *
Алан: Коллинз: 17: 12.75: 73
Синди: Дэвис: 210: 13,67: 45
Эйлин: Фергюсон: 62: 53,36: 17
Гордон: Говард: 981: 9,89: 31
Боб: Джонс: 295: 14.73: 43
(между строками, добавляемыми для разделения, нет пробелов) Код НУЖЕН использовать систему массивов, а также сортировку по пузырькам. Код также предназначен для хранения максимального количества записей в 100, хотя текстовый файл содержит только 10. Мои основные вопросы: как мне настроить функцию заработной платы в виде массива? как выполнить пузырьковую сортировку этого массива от самой высокой до самой низкой зарплаты? И как мне сложить общую сумму заработной платы?