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

Sharipov_IVT-114_Laba_5

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

ФГБОУ ВО

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

Кафедра ТК

ОТЧЕТ

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

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

Вариант №19

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

Шарипов И.Р.

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

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

Уфа 2017

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

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

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

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

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

Вариант № 19

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

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

#include <iostream>  #include <cstring>  #include <conio.h>  #include <windows.h>  #include <iomanip>  #include <fstream>  using namespace std;  const int L=31,M=11;  struct date  { int d, m, y; };  struct student  { char name[L];  char group[M] ; date dr; };  struct month  { int a[12]; };  void outputMasStud (student *x, int n)  { cout«" _____________________________________________________________\n | Фамилия и инициалы | Группа | Дата рождения |\n |______________________________|____________|_______________|"«endl;  for (int i=0;i<n;i++) { cout«left«" | "«setw(29)« x[i].name«"|"«setw(12)«x[i].group«"| "«setfill('0')«right«setw(2)« [i].dr.d«"."«setw(2)«x[i].dr.m«"."«left«setw(8)«setfill(' ')«x[i].dr.y«"|"«endl;  } 

cout«" |______________________________|____________|_______________|\n"; }  void outputMasStudFile (student *x, int n)  {  char file[L];  ofstream fout;  cout«"\nВведите имя выходного файла для Массива студентов: ";  cin»file;  strcat(file,".txt");  fout.open(file); 

if (fout.fail())  { cout«" \n Файл "«file«" не может быть открыт\nНажмите любую клавишу, чтобы выйти из программы ";  getch();  system ("pause");  }  else cout«"Файл вывода был создан успешно\n\n";  fout«"Исходный массив студентов\n";  fout«" _____________________________________________________________\n | Фамилия и инициалы | Группа | Дата рождения |\n |______________________________|____________|_______________|"«endl;  for (int i=0;i<n;i++)  {  fout«left«" | "«setw(29)« x[i].name«"|"«setw(12)«x[i].group«"| "«setfill('0')«right«setw(2)« x[i].dr.d«"."«setw(2)«x[i].dr.m«"."«left«setw(8)«setfill(' ')«x[i].dr.y«"|"«endl;  }  fout«" |______________________________|____________|_______________|\n";  fout.close();  }  void inputMasStudFile(student *x, int n, month &z)  {  char inic[5];  ifstream fin;  cout«"\nВведите имя входного файла: ";  char filename[L];  cin»filename;  strcat(filename,".txt");  fin.open(filename);  if (fin.fail())  {  cout«"\n_______________________________________________\nОшибка\n Файл "«filename«" не может быть открыт\nНажмите любую клавишу, чтобы выйти из программы\n_______________________________________________\n";  getch();  system ("exit");  }  else cout«"Файл ввода успешно открыт\n";  for (int i=0;i<n;i++)  {  fin»x[i].name;  fin»inic;  strcat(x[i].name," ");  strcat(x[i].name,inic);  fin»x[i].group;  fin»x[i].dr.d»x[i].dr.m»x[i].dr.y;  switch (x[i].dr.m)  {  case 1:z.a[0]++;break; case 2:z.a[1]++;break; case 3:z.a[2]++;break; case 4:z.a[3]++;break; case 5:z.a[4]++;break; case 6:z.a[5]++;break; 

case 7:z.a[6]++; break; case 8:z.a[7]++;break; case 9:z.a[8]++;break; case 10:z.a[9]++;break; case 11:z.a[10]++;break; case 12:z.a[11]++;break; } }  fin.close();  }  void outputMonth (month x)  {  cout«"Количество студентов, родившихся в каждом месяце года"«endl;  cout«" ____________________\n | Месяц | Кол-во |\n |_________|________|\n | Январь | "«x.a[0]«" |\n | Февраль | "«x.a[1]«" |\n | Март | "«x.a[2]«" |\n | Апрель | "«x.a[3]«" |\n | Май | "«x.a[4]«" |\n | Июнь | "«x.a[5]«" |\n | Июль | "«x.a[6]«" |\n | Август | ";  cout«x.a[7]«" |\n | Сентябрь| "«x.a[8]«" |\n | Октябрь | "«x.a[9]«" |\n | Ноябрь | "«x.a[10]«" |\n | Декабрь | "«x.a[11]«" |\n";  cout«" |_________|________|\n";  }  void outputMonthFile (month x)  {  char file[L];  ofstream fout;  cout«"\nВведите имя выходного файла Количества студентов, родившихся в каждом месяце года: ";  cin»file;  strcat(file,".txt");  fout.open(file);  if (fout.fail())  { cout«"\nОшибка\n Файл "«file«" не может быть открыт\nНажмите любую клавишу, чтобы выйти из программы\n";  getch();  system pause");  }  else cout«"Файл вывода был создан успешно\n\n";  fout«"Количество студентов, родившихся в каждом месяце года"«endl;  fout«" ____________________\n | Месяц | Кол-во |\n |_________|________|\n | Январь | "«x.a[0]«" |\n | Февраль | "«x.a[1]«" |\n | Март | "«x.a[2]«" |\n | Апрель | "«x.a[3]«" |\n | Май | "«x.a[4]«" |\n | Июнь | "«x.a[5]«" |\n | Июль | "«x.a[6]«" |\n | Август | ";  fout«x.a[7]«" |\n | Сентябрь| "«x.a[8]«" |\n | Октябрь | "«x.a[9]«" |\n | Ноябрь | "«x.a[10]«" |\n | Декабрь | "«x.a[11]«" |\n";  fout«" |_________|________|\n"; }  int main()  {  SetConsoleCP(1251);  SetConsoleOutputCP(1251);  const int N=100;  setlocale (LC_ALL,"Russian");  int m; student a[N]; 

month b;  for (int i=0;i<12;i++)  b.a[i]=0;  cout«"Поиск количества студентов, родившихся в каждом месяце года\n\nВведите количество студентов m\nm = "; cin»m;  inputMasStudFile(a,m,b);  outputMasStud(a,m);  outputMasStudFile(a,m);  outputMonth(b);  outputMonthFile(b);  cout«"Вывод завершен";  getch ( );  return 0;  }

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

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

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

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