Advertisement
Tvor0zhok

СиАКОД 14.2

Mar 30th, 2022 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.54 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3.  
  4. namespace ConsoleApp1
  5. {
  6.     struct Student : IComparable<Student> // описание структуры студент
  7.     {
  8.         public int group; // номер группы
  9.         public string fio; // ФИО студента
  10.         public int[] grades; // оценки
  11.  
  12.         public Student(int group, string fio, int[] grades) // конструктор
  13.         {
  14.             this.group = group;
  15.             this.fio = fio;
  16.             this.grades = grades;
  17.         }
  18.  
  19.         public void Show(StreamWriter file) // вывод информации о студенте
  20.         {
  21.             file.WriteLine("{0, -7}{1, -35}{2}, {3}, {4}", group, fio, grades[0], grades[1], grades[2]);
  22.         }
  23.  
  24.         public int CompareTo(Student st) // сравнение студентов 1. по группе 2. по ФИО
  25.         {
  26.             if (group != st.group)
  27.                 return group.CompareTo(st.group);
  28.             else
  29.                 return fio.CompareTo(fio);
  30.         }
  31.     }
  32.  
  33.     class Program
  34.     {
  35.         static void Print(string fileName, Student[] students) // Выводим данные о студентах в виде таблицы
  36.         {
  37.             using (StreamWriter file = new StreamWriter(fileName))
  38.             {
  39.                 file.WriteLine("{0, -7}{1, -35}{2}", "Группа", "ФИО", "Оценки");
  40.  
  41.                 foreach (Student st in students)
  42.                     if (st.grades[0] >= 3 && st.grades[1] >= 3 && st.grades[2] >= 3)
  43.                     {
  44.                         st.Show(file);
  45.                     }
  46.  
  47.             }
  48.         }
  49.  
  50.         static Student[] Input(string fileName) // Читаем данные из файла
  51.         {
  52.             using (StreamReader file = new StreamReader(fileName))
  53.             {
  54.                 int n = int.Parse(file.ReadLine());
  55.                 Student[] students = new Student[n];
  56.  
  57.                 for (int it = 0; it < n; ++it)
  58.                 {
  59.                     string[] cur = file.ReadLine().Split(' ');
  60.  
  61.                     int gr = int.Parse(cur[0]);
  62.  
  63.                     string f = cur[1];
  64.                     string i = cur[2];
  65.                     string o = cur[3];
  66.  
  67.                     string fio = f + " " + i + " " + o;
  68.  
  69.                     int[] grades = new int[3];
  70.  
  71.                     for (int j = 0; j < 3; ++j)
  72.                         grades[j] = int.Parse(cur[4 + j]);
  73.  
  74.                     students[it] = new Student(gr, fio, grades);
  75.                 }
  76.  
  77.                 return students;
  78.             }
  79.         }
  80.  
  81.         static void Main()
  82.         {
  83.             Student[] students = Input("C:/Users/Acer/Desktop/СиАКОД/Задание 14/input2.txt");
  84.  
  85.             Array.Sort(students);
  86.             Print("C:/Users/Acer/Desktop/СиАКОД/Задание 14/output2.txt", students);
  87.         }
  88.     };
  89. }
  90.  
  91. /* input2.txt
  92. 10
  93. 281 Маслов Кирилл Владимирович 3 2 2
  94. 211 Киселева Анастасия Григорьевна 4 2 4
  95. 251 Трофимова Арина Арсеньевна 3 4 5
  96. 231 Трифонова Екатерина Михайловна 3 4 4
  97. 211 Попов Владислав Константинович 3 2 5
  98. 241 Ильина Варвара Степановна 5 5 5
  99. 251 Шульгина Алиса Ивановна 3 4 4
  100. 242 Белова Вероника Максимовна 2 2 2
  101. 281 Филиппов Владислав Иванович 5 4 4
  102. 281 Спиридонова Екатерина Александровна 2 2 3
  103. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement