Программа для ввода и вывода фамилий и оценок студентов - 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=================="); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д