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

6 пр

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

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

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

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

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

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

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

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

на тему 

«Массивы структур и массивы строк»

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

​. 

 

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

1. Цель работы:

1. Получить практические навыки работы с динамическими строковыми данными.

2. Получить практические навыки работы со структурами.

3. Получить практические навыки организации динамических массивов с элементами сложной структуры

Вариант 8

#include <iostream>

#include <vector>

#include <string>

#include <algorithm>

// Структура для представления студента

struct Student {

std::string name;

int kurs;

float rating;

};

// Функция для печати матрицы студентов

void printStudentMatrix(const std::vector<std::vector<Student>>& matrix) {

for (const auto& row : matrix) {

for (const auto& student : row) {

std::cout << "Name: " << student.name << ", Kurs: " << student.kurs << ", Rating: " << student.rating << "\t";

}

std::cout << std::endl;

}

}

// Функция для удаления K строк из конца матрицы

void deleteRowsFromEnd(std::vector<std::vector<Student>>& matrix, int K) {

// Убеждаемся, что K не превышает текущее количество строк

K = (matrix.size() < K) ? matrix.size() : K;

// Уменьшаем количество строк

matrix.erase(matrix.end() - K, matrix.end());

}

int main() {

// Пример создания матрицы студентов

std::vector<std::vector<Student>> studentMatrix = {

{{"Alice", 1, 4.5}, {"Bob", 2, 3.0}, {"Charlie", 3, 2.5}},

{{"David", 1, 4.0}, {"Eva", 2, 3.8}, {"Frank", 3, 2.0}},

{{"Grace", 1, 3.2}, {"Henry", 2, 2.7}, {"Ivy", 3, 4.1}}

};

// Печать исходной матрицы

std::cout << "Original Student Matrix:\n";

printStudentMatrix(studentMatrix);

// Условие для удаления студентов с рейтингом < 3.0

auto condition = [](const Student& student) { return student.rating < 3.0; };

// Удаление элементов, соответствующих условию

for (auto& row : studentMatrix) {

row.erase(std::remove_if(row.begin(), row.end(), condition), row.end());

}

// Печать матрицы после удаления

std::cout << "\nStudent Matrix after removing students with rating < 3.0:\n";

printStudentMatrix(studentMatrix);

// Удаление K строк из конца матрицы

int K = 1;

deleteRowsFromEnd(studentMatrix, K);

// Печать матрицы после удаления K строк из конца

std::cout << "\nStudent Matrix after deleting " << K << " rows from the end:\n";

printStudentMatrix(studentMatrix);

return 0;

}

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