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

Laba_4

.docx
Скачиваний:
2
Добавлен:
07.01.2022
Размер:
111.37 Кб
Скачать

ФГБОУ ВО

Уфимский государственный авиационный технический университет

Кафедра ТК

ОТЧЕТ

по лабораторной работе № 4

по дисциплине «Программирование»

Вариант №18

Выполнил: студент гр. ИВТ-114

Балыбердин Н. А.

Проверил: доцент каф. ТК

Федорова Н.И.

Уфа 2017

Тема работы: Структуры. Массивы структур.

Цель работы: Навыки работы со структурами, структурными данными и массивами структур в С++

Задачи работы:

  • написание программы на языке С++ с использованием структурных данных и массивов структур.

  • тестирование работоспособности программы для различных исходных данных.

Вариант № 18

Задание: Дан массив записей, содержащий сведения о студентах группы: Фамилия и инициалы студента; дата рождения. Упорядочить, вывести на экран список студентов и найти самого молодого студента из списка.

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

#include <iostream>

#include <cstring>

#include <conio.h>

#include <windows.h>

#include <iomanip>

#include <locale.h>

#include <clocale>

using namespace std;

const int L = 31, M = 11;

struct date

{

int d;

int m;

int y;

};

struct student

{

char name[L];

char group[M];

date dr;

};

int main()

{

setlocale(LC_ALL, "Russian");

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

const int N = 100;

int m, l, month[12];

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

month[i] = 0;

student a[N];

student sort[N];

cout << "\tСтруктуры. Массивы структур.\n";

cout << "\nВведите количество студентов m\n\m = ";

cin >> m;

cout << "\nВведите массив студентов\n\n";

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

{

char inic[5];

cout << "Фамилия: ";

cin >> a[i].name;

cout << "Инициалы: ";

cin >> inic;

strcat(a[i].name, " ");

strcat(a[i].name, inic);

cout << "Группа: ";

cin >> a[i].group;

cout << "Дата Рождения: ";

cin >> a[i].dr.d >> a[i].dr.m >> a[i].dr.y;

cout << endl;

}

for (int i = 0; i < m - 1; i++)

{

for (int g = i + 1; g < m; g++)

{

if (a[i].dr.y<a[g].dr.y ||

a[i].dr.y == a[g].dr.y &&

a[i].dr.m<a[g].dr.m ||

a[i].dr.y == a[g].dr.y &&

a[i].dr.m == a[g].dr.m &&

a[i].dr.d<a[g].dr.d)

{

sort[1] = a[i];

a[i] = a[g];

a[g] = sort[1];

}

}

}

cout << "Упорядоченный массив студентов: \n";

cout << " _____________________________________________________________\n | Фамилия и инициалы | Группа | Дата рождения |\n |______________________________|____________|_______________|" << endl;

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

{

cout << left << " | " << setw(29) << a[i].name << "|" << setw(12) << a[i].group << "| " << right << setw(2) << a[i].dr.d << "." << setw(2) << a[i].dr.m << "." << left << setw(8) << a[i].dr.y << "|\n";

}

cout << " |______________________________|____________|_______________|" << endl;

cout << "\nСтуденты, родившиеся весной: \n";

for (int N = 0; N < m; N++) {

if (a[N].dr.m == 3 || a[N].dr.m == 4 || a[N].dr.m == 5)

cout << a[N].name <<"\n";

}

cout << "\nСамый молодой студент:\n"<< a[0].name;

for (int N = 1; N < m; N++) {

if (a[0].dr.y == a[N].dr.y &&

a[0].dr.m == a[N].dr.m &&

a[0].dr.d==a[N].dr.d)

cout <<"\n"<< a[N].name;}

cout << "\nВывод завершен";

getch();

return 0;

}

Схема алгоритма работы программы:

Тестовый пример:

Вывод: В ходе выполнения работы получены навыки работы со структурами, структурными данными и массивами структур в С++.

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