Программа для ввода и вывода фамилий и оценок студентов - 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==================");
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы