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

6 пр-1

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

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

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

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

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

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

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

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

на тему 

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

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

​. 

 

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

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

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

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

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

Вариант 13

#include <iostream>

struct student {

char* name;

int kurs;

float rating;

};

// Функция для освобождения памяти, выделенной для имен студентов

void freeMemory(student * students, int n) {

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

delete[] students[i].name;

}

}

int main() {

setlocale(LC_ALL, "RU");

// Ввод количества студентов

int n;

std::cout << "Введите количество студентов: ";

std::cin >> n;

// Создание динамического массива структур

student* students = new student[n];

// Ввод данных о студентах

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

// Ввод имени

std::cout << "Введите имя студента " << i + 1 << ": ";

char name[100]; // Буфер для временного хранения имени

std::cin >> name;

// Динамическое выделение памяти для имени и копирование данных

students[i].name = new char[strlen(name) + 1];

strcpy_s(students[i].name, strlen(name) + 1, name); // Используем безопасную функцию strcpy_s

// Ввод курса и оценки

std::cout << "Введите курс студента " << i + 1 << ": ";

std::cin >> students[i].kurs;

std::cout << "Введите оценку студента " << i + 1 << ": ";

std::cin >> students[i].rating;

}

// Вывод информации о студентах пятого курса

std::cout << "\nИнформация о студентах пятого курса:\n";

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

if (students[i].kurs == 5) {

std::cout << "Студент " << i + 1 << ":\n";

std::cout << "Имя: " << students[i].name << std::endl;

std::cout << "Курс: " << students[i].kurs << std::endl;

std::cout << "Оценка: " << students[i].rating << std::endl;

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

}

}

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

freeMemory(students, n);

// Освобождение памяти для массива структур

delete[] students;

return 0;

}

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