Программа для ввода и вывода фамилий и оценок студентов - C#
Формулировка задачи:
Создайте программу для ввода и вывода фамилий и оценок студентов. Введите не менее 10 студентов. Отсортируйте данные студентов: по первой оценке (по убыванию);
Текстовый файл data.txt создать в блокноте, например,
Иванов;Иван;4;5;4
Петров;Иван;4;5;3
Сидоров;Иван;3;3;4
Для чтения из файла можно использовать фрагмент
Листинг программы
- StreamReader fin = new StreamReader(“data.txt”, Encoding.Default);
- while (!fin.EndOfStream)
- {
- char[] sep = {';'};
- string st2 = fin.ReadLine(); // чтение строки из файла
- if (st2.Length > 1) // Если строка не пуста
- {
- string[] pole = st2.Split(sep);// разделяем ее на поля, отделенные ";"
- // присвоение элементов массива pole полям массива структур
- // с преобразованием некоторых строк и числа
- i++;
- }
- }
Решение задачи: «Программа для ввода и вывода фамилий и оценок студентов»
textual
Листинг программы
- class Program
- {
- struct Student
- {
- public string firstName;
- public string lastName;
- public int mark1;
- public int mark2;
- public int mark3;
- public override string ToString()
- {
- StringBuilder returnString = new StringBuilder();
- returnString.Append("Фамилия: " + lastName + '\n');
- returnString.Append("Имя: " + firstName + '\n');
- returnString.Append("Оценки\nПервая: " + mark1 + "\nВторая: " + mark2 + "\nТретья: " + mark3);
- return returnString.ToString();
- }
- }
- static int stringCount()
- {
- StreamReader fin = new StreamReader("data.txt", Encoding.Default);
- int i = 0;
- while (!fin.EndOfStream)
- {
- fin.ReadLine();
- i++;
- }
- return i;
- }
- static void readFromFile(ref Student[] st)
- {
- StreamReader fin = new StreamReader("data.txt", Encoding.Default);
- int i = 0;
- while (!fin.EndOfStream)
- {
- char[] sep = { ';' };
- string st2 = fin.ReadLine(); // чтение строки из файла
- if (st2.Length > 1) // Если строка не пуста
- {
- string[] pole = st2.Split(sep);// разделяем ее на поля, отделенные ";"
- // присвоение элементов массива pole полям массива структур
- st[i].lastName = pole[0];
- st[i].firstName = pole[1];
- // с преобразованием некоторых строк и числа
- st[i].mark1 = int.Parse(pole[2]);
- st[i].mark2 = int.Parse(pole[3]);
- st[i].mark3 = int.Parse(pole[4]);
- i++;
- }
- }
- }
- static void sort(ref Student[] st)
- {
- for (int i = 0; i < st.Length; i++)
- {
- for (int j = 0; j < st.Length - i - 1; j++)
- {
- if (st[j].mark1 < st[j + 1].mark1)
- {
- Student temp = st[j];
- st[j] = st[j + 1];
- st[j + 1] = temp;
- }
- }
- }
- }
- static void Main(string[] args)
- {
- Student[] st = new Student[stringCount()];
- readFromFile(ref st);
- sort(ref st);
- for (int i = 0; i < st.Length; i++)
- Console.WriteLine(st[i].ToString() + "\n==================");
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д