Laba_4
.docxФГБОУ ВО
Уфимский государственный авиационный технический университет
Кафедра ТК
ОТЧЕТ
по лабораторной работе № 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;
}
Схема алгоритма работы программы:
Тестовый пример:
Вывод: В ходе выполнения работы получены навыки работы со структурами, структурными данными и массивами структур в С++.