Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- namespace ConsoleApp1
- {
- struct Student : IComparable<Student> // описание структуры студент
- {
- public int group; // номер группы
- public string fio; // ФИО студента
- public int[] grades; // оценки
- public Student(int group, string fio, int[] grades) // конструктор
- {
- this.group = group;
- this.fio = fio;
- this.grades = grades;
- }
- public void Show(StreamWriter file) // вывод информации о студенте
- {
- file.WriteLine("{0, -7}{1, -35}{2}, {3}, {4}", group, fio, grades[0], grades[1], grades[2]);
- }
- public int CompareTo(Student st) // сравнение студентов 1. по группе 2. по ФИО
- {
- if (group != st.group)
- return group.CompareTo(st.group);
- else
- return fio.CompareTo(fio);
- }
- }
- class Program
- {
- static void Print(string fileName, Student[] students) // Выводим данные о студентах в виде таблицы
- {
- using (StreamWriter file = new StreamWriter(fileName))
- {
- file.WriteLine("{0, -7}{1, -35}{2}", "Группа", "ФИО", "Оценки");
- foreach (Student st in students)
- if (st.grades[0] >= 3 && st.grades[1] >= 3 && st.grades[2] >= 3)
- {
- st.Show(file);
- }
- }
- }
- static Student[] Input(string fileName) // Читаем данные из файла
- {
- using (StreamReader file = new StreamReader(fileName))
- {
- int n = int.Parse(file.ReadLine());
- Student[] students = new Student[n];
- for (int it = 0; it < n; ++it)
- {
- string[] cur = file.ReadLine().Split(' ');
- int gr = int.Parse(cur[0]);
- string f = cur[1];
- string i = cur[2];
- string o = cur[3];
- string fio = f + " " + i + " " + o;
- int[] grades = new int[3];
- for (int j = 0; j < 3; ++j)
- grades[j] = int.Parse(cur[4 + j]);
- students[it] = new Student(gr, fio, grades);
- }
- return students;
- }
- }
- static void Main()
- {
- Student[] students = Input("C:/Users/Acer/Desktop/СиАКОД/Задание 14/input2.txt");
- Array.Sort(students);
- Print("C:/Users/Acer/Desktop/СиАКОД/Задание 14/output2.txt", students);
- }
- };
- }
- /* input2.txt
- 10
- 281 Маслов Кирилл Владимирович 3 2 2
- 211 Киселева Анастасия Григорьевна 4 2 4
- 251 Трофимова Арина Арсеньевна 3 4 5
- 231 Трифонова Екатерина Михайловна 3 4 4
- 211 Попов Владислав Константинович 3 2 5
- 241 Ильина Варвара Степановна 5 5 5
- 251 Шульгина Алиса Ивановна 3 4 4
- 242 Белова Вероника Максимовна 2 2 2
- 281 Филиппов Владислав Иванович 5 4 4
- 281 Спиридонова Екатерина Александровна 2 2 3
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement