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

9 пр-1

.docx
Скачиваний:
1
Добавлен:
22.01.2024
Размер:
91.58 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

ИМ. А.А. УГАРОВА

(филиал) федерального государственного автономного образовательного

учреждения высшего образования

«Национальный исследовательский технологический университет «МИСиС»

​Лабораторная работа № 9 

на тему 

«Хранение данных на внешних носителях»

​Выполнил: Студент группы № АТ 22-2з 

 

​Старый Оскол, 2024

Цель работы:

1. Получение практических навыков записи структурированной информа-ции в файлы в стиле С;

2. Получение практических навыков записи структурированной информа-ции в файлы в стиле С++;

Вариант 13

1. Используя ввод-вывод в стиле С ++ создать файл и записать в него структурированные данные.

2. Вывести созданный файл на экран.

3. Удалить из файла данные в соответствии с вариантом.

4. Добавить в файл данные в соответствии с вариантом.

5. Вывести измененный файл на экран.

#include <iostream>

#include <fstream>

#include <string>

#include <vector>

#include <algorithm>

struct SportsTeam {

std::string name;

std::string city;

int playersCount;

int pointsScored;

};

// Функция для записи данных в файл

void writeDataToFile(const std::vector<SportsTeam>& teams) {

// Открытие файла для записи

std::ofstream outputFile("sports_team_data.txt");

// Проверка, удалось ли открыть файл

if (!outputFile.is_open()) {

std::cerr << "Ошибка открытия файла для записи.\n";

return;

}

// Запись данных в файл

for (const SportsTeam& team : teams) {

outputFile << team.name << ' ' << team.city << ' ' << team.playersCount << ' ' << team.pointsScored << '\n';

}

// Закрытие файла

outputFile.close();

std::cout << "Данные успешно записаны в файл.\n";

}

// Функция для чтения данных из файла

std::vector<SportsTeam> readDataFromFile() {

// Открытие файла для чтения

std::ifstream inputFile("sports_team_data.txt");

// Проверка, удалось ли открыть файл

if (!inputFile.is_open()) {

std::cerr << "Ошибка открытия файла для чтения.\n";

return {};

}

// Считывание данных из файла

std::vector<SportsTeam> teams;

SportsTeam team;

while (inputFile >> team.name >> team.city >> team.playersCount >> team.pointsScored) {

teams.push_back(team);

}

// Закрытие файла

inputFile.close();

return teams;

}

int main() {

setlocale(LC_ALL, "RU");

// Вызов функции для чтения данных из файла

std::vector<SportsTeam> teams = readDataFromFile();

// Вывод информации о командах

std::cout << "Информация о командах:\n";

for (const SportsTeam& team : teams) {

std::cout << "Название команды: " << team.name << std::endl;

std::cout << "Город: " << team.city << std::endl;

std::cout << "Количество игроков: " << team.playersCount << std::endl;

std::cout << "Количество набранных очков: " << team.pointsScored << std::endl;

std::cout << "-----------------\n";

}

// Добавление новых команд

int newTeamsCount;

std::cout << "Введите количество новых команд для добавления: ";

std::cin >> newTeamsCount;

for (int i = 0; i < newTeamsCount; ++i) {

SportsTeam newTeam;

std::cout << "Введите данные для новой команды:\n";

std::cout << "Название команды: ";

std::cin >> newTeam.name;

std::cout << "Город: ";

std::cin >> newTeam.city;

std::cout << "Количество игроков: ";

std::cin >> newTeam.playersCount;

std::cout << "Количество набранных очков: ";

std::cin >> newTeam.pointsScored;

// Добавление новой команды в вектор

teams.push_back(newTeam);

}

// Ввод порогового значения количества очков

int thresholdPoints;

std::cout << "Введите пороговое значение количества очков для удаления команд: ";

std::cin >> thresholdPoints;

// Удаление команд с количеством очков меньше порогового значения

teams.erase(std::remove_if(teams.begin(), teams.end(),

[thresholdPoints](const SportsTeam& team) {

return team.pointsScored < thresholdPoints;

}),

teams.end());

// Вызов функции для записи обновленных данных в файл

writeDataToFile(teams);

return 0;

}

Соседние файлы в предмете Основы программирования