
С++ Завдання Напишіть інформаційну систему «Співробітники». Програма має забезпечувати введення
даних, редагування даних співробітника, видалення співробітника, пошук співробітника за прізвищем, вивід інформації про всіх співробітників зазначеного віку, або прізвище яких починається на зазначену літеру. Організуйте можливість збереження знайденої інформації у файл. Також весь список співробітників зберігається у файл (при виході з програми — автоматично, у процесі виконання програми — за командою користувача). При старті програми відбувається завантаження списку співробітників із зазначеного користувачем файлу.

Ответы на вопрос

Відповідь:
якщо правильно все зрозумів то так:
Пояснення:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
// Клас, що представляє співробітника
class Employee {
public:
string surname;
string name;
int age;
Employee(const string& surname, const string& name, int age)
: surname(surname), name(name), age(age) {}
};
// Клас, що представляє базу даних співробітників
class EmployeeDatabase {
private:
vector<Employee> employees;
string filename;
public:
EmployeeDatabase(const string& filename)
: filename(filename) {}
// Додавання співробітника до бази даних
void addEmployee(const Employee& employee) {
employees.push_back(employee);
}
// Видалення співробітника з бази даних за прізвищем
void removeEmployee(const string& surname) {
employees.erase(remove_if(employees.begin(), employees.end(),
[&](const Employee& employee) { return employee.surname == surname; }), employees.end());
}
// Пошук співробітників за прізвищем
vector<Employee> searchBySurname(const string& surname) const {
vector<Employee> result;
for (const Employee& employee : employees) {
if (employee.surname == surname) {
result.push_back(employee);
}
}
return result;
}
// Пошук співробітників за віком
vector<Employee> searchByAge(int age) const {
vector<Employee> result;
for (const Employee& employee : employees) {
if (employee.age == age) {
result.push_back(employee);
}
}
return result;
}
// Пошук співробітників за першою літерою прізвища
vector<Employee> searchByFirstLetter(char letter) const {
vector<Employee> result;
for (const Employee& employee : employees) {
if (employee.surname[0] == letter) {
result.push_back(employee);
}
}
return result;
}
// Завантаження списку співробітників з файлу
void loadFromFile() {
ifstream file(filename);
if (file.is_open()) {
employees.clear();
string surname, name;
int age;
while (file >> surname >> name >> age) {
employees.emplace_back(surname, name, age);
}
file.close();
}
}
// Збереження списку співробітників у файл
void saveToFile() const {
ofstream file(filename);
if (file.is_open()) {
for (const Employee& employee : employees) {
file << employee.surname << " " << employee.name << " " << employee.age << endl;
}
file.close();
}
}
};
int main() {
string filename = "employees.txt";
EmployeeDatabase database(filename);
// Завантаження списку співробітників з файлу
database.loadFromFile();
int choice;
do {
cout << "=== ІНФОРМАЦІЙНА СИСТЕМА \"СПІВРОБІТНИКИ\" ===" << endl;
cout << "1. Додати співробітника" << endl;
cout << "2. Видалити співробітника" << endl;
cout << "3. Пошук за прізвищем" << endl;
cout << "4. Пошук за віком" << endl;
cout << "5. Пошук за першою літерою прізвища" << endl;
cout << "6. Зберегти список співробітників у файл" << endl;
cout << "0. Вихід" << endl;
cout << "Ваш вибір: ";
cin >> choice;
switch (choice) {
case 1: {
string surname, name;
int age;
cout << "Введіть прізвище: ";
cin >> surname;
cout << "Введіть ім'я: ";
cin >> name;
cout << "Введіть вік: ";
cin >> age;
database.addEmployee(Employee(surname, name, age));
cout << "Співробітник успішно доданий!" << endl;
break;
}
case 2: {
string surname;
cout << "Введіть прізвище співробітника, якого бажаєте видалити: ";
cin >> surname;
database.removeEmployee(surname);
cout << "Співробітник успішно видалений!" << endl;
break;
}
case 3: {
string surname;
cout << "Введіть прізвище для пошуку: ";
cin >> surname;
vector<Employee> result = database.searchBySurname(surname);
if (result.empty()) {
cout << "Співробітників з таким прізвищем не знайдено." << endl;
} else {
cout << "Результати пошуку:" << endl;
for (const Employee& employee : result) {
cout << "Прізвище: " << employee.surname << ", Ім'я: " << employee.name << ", Вік: " << employee.age << endl;
}
}
break;
}
case 4: {
int age;
cout << "Введіть вік для пошуку: ";
cin >> age;
vector<Employee> result = database.searchByAge(age);
if (result.empty()) {
cout << "Співробітників з таким віком не знайдено." << endl;
} else {
cout << "Результати пошуку:" << endl;
for (const Employee& employee : result) {
cout << "Прізвище: " << employee.surname << ", Ім'я: " << employee.name << ", Вік: " << employee.age << endl;
}
}
break;
}
case 5: {
char letter;
cout << "Введіть літеру для пошуку: ";
cin >> letter;
vector<Employee> result = database.searchByFirstLetter(letter);
if (result.empty()) {
cout << "Співробітників з прізвищами, що починаються на задану літеру, не знайдено." << endl;
} else {
cout << "Результати пошуку:" << endl;
for (const Employee& employee : result) {
cout << "Прізвище: " << employee.surname << ", Ім'я: " << employee.name << ", Вік: " << employee.age << endl;
}
}
break;
}
case 6: {
database.saveToFile();
cout << "Список співробітників успішно збережений у файл!" << endl;
break;
}
case 0:
break;
default:
cout << "Невірний вибір. Спробуйте ще раз." << endl;
break;
}
cout << endl;
} while (choice != 0);
return 0;
}



Ваша програма на C++ для інформаційної системи "Співробітники" може виглядати приблизно так:
cpp#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct Employee {
string lastName;
string firstName;
int age;
};
// Функція для збереження списку співробітників у файл
void saveEmployeesToFile(const vector<Employee>& employees, const string& filename) {
ofstream file(filename);
if (file.is_open()) {
for (const Employee& emp : employees) {
file << emp.lastName << " " << emp.firstName << " " << emp.age << endl;
}
file.close();
} else {
cout << "Не вдалося відкрити файл для збереження." << endl;
}
}
// Функція для завантаження списку співробітників з файлу
void loadEmployeesFromFile(vector<Employee>& employees, const string& filename) {
ifstream file(filename);
if (file.is_open()) {
Employee emp;
while (file >> emp.lastName >> emp.firstName >> emp.age) {
employees.push_back(emp);
}
file.close();
} else {
cout << "Не вдалося відкрити файл для завантаження." << endl;
}
}
int main() {
vector<Employee> employees;
string filename = "employees.txt"; // Ім'я файлу для збереження списку співробітників
// Завантаження списку співробітників з файлу при запуску програми
loadEmployeesFromFile(employees, filename);
while (true) {
cout << "Меню:" << endl;
cout << "1. Додати співробітника" << endl;
cout << "2. Редагувати співробітника" << endl;
cout << "3. Видалити співробітника" << endl;
cout << "4. Пошук за прізвищем" << endl;
cout << "5. Пошук за віком" << endl;
cout << "6. Пошук за літерою" << endl;
cout << "7. Зберегти та вийти" << endl;
int choice;
cin >> choice;
if (choice == 1) {
Employee emp;
cout << "Прізвище: ";
cin >> emp.lastName;
cout << "Ім'я: ";
cin >> emp.firstName;
cout << "Вік: ";
cin >> emp.age;
employees.push_back(emp);
} else if (choice == 2) {
// Редагування співробітника
// Реалізуйте цю частину коду самостійно
} else if (choice == 3) {
// Видалення співробітника
// Реалізуйте цю частину коду самостійно
} else if (choice == 4) {
string searchLastName;
cout << "Введіть прізвище для пошуку: ";
cin >> searchLastName;
// Пошук за прізвищем і виведення результатів
for (const Employee& emp : employees) {
if (emp.lastName == searchLastName) {
cout << emp.lastName << " " << emp.firstName << " " << emp.age << endl;
}
}
} else if (choice == 5) {
int searchAge;
cout << "Введіть вік для пошуку: ";
cin >> searchAge;
// Пошук за віком і виведення результатів
for (const Employee& emp : employees) {
if (emp.age == searchAge) {
cout << emp.lastName << " " << emp.firstName << " " << emp.age << endl;
}
}
} else if (choice == 6) {
char searchLetter;
cout << "Введіть літеру для пошуку: ";
cin >> searchLetter;
// Пошук за літерою і виведення результатів
for (const Employee& emp : employees) {
if (emp.lastName[0] == searchLetter) {
cout << emp.lastName << " " << emp.firstName << " " << emp.age << endl;
}
}
} else if (choice == 7) {
// Збереження списку співробітників у файл і вихід з програми
saveEmployeesToFile(employees, filename);
break;
} else {
cout << "Неправильний вибір. Будь ласка, спробуйте ще раз." << endl;
}
}
return 0;
}
Це базова структура програми, яка враховує ваші вимоги. Вам може знадобитися додаткова робота над редагуванням і видаленням співробітників відповідно до вашого бажання.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili