Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
15.12.2020
Размер:
469.42 Кб
Скачать

3. Набор тестовых данных. Ожидаемые результаты

Сведения о сотрудниках института следующие:

- Фамилия,

- Год рождения,

- Стаж работы,

- Должность,

- Оклад.

Предположительные результаты программы:

Сведения о сотрудниках института следующие:

(всего на фирме работает 3 сотрудника)

предположительные результаты о сотруднике под №1

- Фамилия : Семин

- Год рождения: 1955

- Стаж работы: 30

- Должность: Инженер

- Оклад: 55000

Содержание меню:

Вывод фамилии и стажа работы [1]

Вычислить средний стаж работы [2]

Вывод фамилий инженеров [3]

Вывод фамилий, начинающихся с заданной буквы [4]

Вывод фамилий, у которых оклад больше заданного [5]

Поменять фамилию у одного из сотрудников [6]

Вывести на экран список всех сотрудников [7]

Выход [8]

4. Метод решения задачи, основные формулы

В данной разработке используется формула для расчета среднего стажа работы:

avg_exp += employees[i].experience;

5. Текст программы

#include "Func.h"

// Функция вывода меню

void Menu()

{

cout << "Меню: " << endl << endl;

cout << "Вывод фамилий и стажа работы [1]" << endl;

cout << "Вычислить средний стаж работы [2]" << endl;

cout << "Вывод фамилий инженеров [3]" << endl;

cout << "Вывод фамилий, начинающихся с заданной буквы [4]" << endl;

cout << "Вывод фамилий, у которых оклад больше заданного [5]" << endl;

cout << "Поменять фамилию у одного из сотрудников [6]" << endl;

cout << "Вывести на экран список всех сотрудников [7]" << endl;

cout << "Выход [8]" << endl << endl;

cout << "Какое действие вы хотите совершить?: " << endl;

}

int main()

{

// Руссификатор для всего проекта

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

char c; // переменная для символа

int number; // переменная для числа

string name; // переменная для фамилии

int _stateMenu = -1; // переменная для меню

int n; // Размер массива

cout << "Введите количество работников: ";

cin >> n;

cout << endl;

while (cin.fail() || n <= 0)

{

cin.clear();

cin.ignore(cin.rdbuf()->in_avail());

cout << "Некорректный ввод\nВведите количество работников: ";

cin >> n;

}

cin.clear();

cin.ignore(cin.rdbuf()->in_avail());

Employee* employees = new Employee[n]; // Объявление одномерного динамического массива

ofstream file("Employees.txt"); // Создание файла и запись в него

for (int i = 0; i < n; i++)

{

cout << "\nВвод информации о сотруднике " << i + 1 << endl;

cout << endl;

employees[i].DataEntry();

employees[i].AddData(file);

}

cout << "\nДанные записаны!" << endl << endl;

file.close(); // Закрываем файл

read(employees, n); // Функция чтения данных из файла

while (_stateMenu != 0)

{

Menu(); // Функция вызова меню

cin >> _stateMenu;

cout << endl;

if (_stateMenu == 8) // Выход из программы

{

return 0;

}

while (cin.fail() || _stateMenu < 0 || _stateMenu > 7)

{

cin.clear();

cin.ignore(cin.rdbuf()->in_avail());

cout << "Некорректный ввод\nНомер команды меню: ";

cin >> _stateMenu;

}

cin.clear();

cin.ignore(cin.rdbuf()->in_avail());

switch (_stateMenu)

{

case 1:

print_experience(employees, n); // Функция вывода фамилий и стажа работы для всех работников института

break;

case 2:

average_exp(employees, n); // Функция которая вычисляет средний стаж работы в институте

break;

case 3:

engineers(employees, n); // Функция вывода на экран фамилий работников, работающих в должности инженера

break;

case 4:

cout << "Введите букву: ";

cin >> c;

cout << "Фамилии начинающиеся с буквы \"" << c << "\": " << endl;

worker_letter(employees, n, c); // Функция вывод на экран фамилий работников, начинающихся с заданной пользователем буквы

cout << endl;

break;

case 5:

cout << "Введите оклад: ";

cin >> number;

cout << "Фамилии сотрудников с окладом > " << number << ": " << endl;

best_salary(employees, n, number); // Функция вывода на экран фамилий работников, у которых оклад > заданного пользователем числа

cout << endl;

break;

case 6:

change_surname(employees, n); // Функция которая производит замену фамилии у одного из сотрудников

write(employees, n); // Функция записи новой фамилии

cout << endl;

break;

case 7:

read(employees, n); // Функция чтения файла

print_all(employees, n); // Функция вывода всех сотрудников

break;

default:

break;

}

}

delete[] employees; // очистка массива

return 0;

}

Соседние файлы в папке лабы вариант 4