Advertisement
Argerd14

SPO_Lab0 v1.2 (final)

Feb 23rd, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.48 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5. #include <Windows.h>
  6. #include <fstream>
  7.  
  8. using namespace std;
  9.  
  10. // Структура данных
  11. struct Schoolboy {
  12.     string name;
  13.     string lastname;
  14.     unsigned short int age;
  15. };
  16.  
  17. // Функция записи информации в структуру данных
  18. vector<Schoolboy> AddData() {
  19.     cout << "Введите количество школьников, данные которых Вы хотите записать: " << endl;
  20.     unsigned short int count = 0;
  21.     cin >> count;
  22.     vector<Schoolboy> schoolboy(count);
  23.  
  24.     cout << "Заполните поля данных:" << endl;
  25.     for (unsigned short int i = 0; i < count; i++) {
  26.         cout << "Введите данные о " << i + 1 << " школьнике:" << endl << "Введите имя: " << endl;
  27.         cin >> schoolboy[i].name;
  28.         cout << "Введите фамилию: " << endl;     
  29.         cin >> schoolboy[i].lastname;      
  30.         cout << "Введите возраст: " << endl;
  31.         cin >> schoolboy[i].age;
  32.     }
  33.     cout << "Введенная Вами структура: " << endl;
  34.     for (unsigned short int i = 0; i < count; i++) {
  35.         cout << i + 1 << " " << schoolboy[i].name << " " << schoolboy[i].lastname << " " << schoolboy[i].age << endl;
  36.     }
  37.     return schoolboy;
  38. }
  39.  
  40. // Функция записи стурктуры в файл по условию отбора "Возраст менее..."
  41. void DataInFile(vector<Schoolboy> vector) {
  42.     unsigned short int border;
  43.     cout << "Введите верхнюю границу возраста, выше которой в файл запись не будет осуществлена: " << endl;
  44.     cin >> border;
  45.  
  46.     // Ввод данных в файл   
  47.     ofstream fout("spo.txt", ios::trunc);
  48.     cout << "В файл будут записаны следующие данные: " << endl;
  49.     for (unsigned short int i = 0; i < vector.size(); i++) {
  50.         if (vector[i].age <= border) {
  51.             cout << vector[i].name << " " << vector[i].lastname << " " << vector[i].age << endl;
  52.             fout << vector[i].name << " " << vector[i].lastname << " " << vector[i].age << endl;
  53.         }
  54.     }
  55.     fout.close();
  56.  
  57.     // Вывод данных из файла
  58.     cout << "Данные, записанные в файл: " << endl;
  59.     ifstream out("spo.txt");
  60.     if (!out.is_open()) {
  61.         cout << "Файл не может быть открыт!!" << endl;
  62.     }
  63.     else {
  64.         char ch;
  65.         while (out.get(ch)) {
  66.             cout << ch;
  67.         }
  68.     }
  69.     out.close();
  70. }
  71.  
  72. // Главная функция
  73. int main(int argc, _TCHAR* argv[])
  74. {  
  75.     // Русификация
  76.     SetConsoleCP(1251);
  77.     SetConsoleOutputCP(1251);
  78.  
  79.     // Задание 2.2
  80.     unsigned short int num = 4;
  81.     char lastname[] = { "Батейщиков" };
  82.     char lastname1[] = { "Симонов" };
  83.  
  84.     // Задание 2.3
  85.     cout << "Номер бригады: " << num << "\nФамилии студентов: " << endl <<
  86.         lastname << ", " << lastname1 << endl;
  87.  
  88.     // Задание 2.4
  89.     printf_s("%4d %25s, %25s\n", num, lastname, lastname1);
  90.  
  91.     // Задание 2.5  
  92.     unsigned short int mas[3] = { 1, 2, 3 };
  93.     unsigned short int mmm[3] = { 4, 5, 6 };
  94.  
  95.     // Задание 2.6
  96.     for (unsigned short int i = 0; i < sizeof(mas) / sizeof(mas[0]); i++) {
  97.         printf_s("%4d %4d\n", mas[i], mmm[i]);
  98.     }  
  99.  
  100.     // Вызов функций, работающих с заданием, цель которого реализация структуры данных
  101.     DataInFile(AddData());
  102.  
  103.     system("pause");
  104.     return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement