Beispiel #1
0
        static public MassiveClass ReadFile(string path, char separator = ' ')
        {
            MassiveClass result = new MassiveClass();
            string       str    = "";
            bool         flag;
            int          x, resIndex = 0;

            str = Maxyber.FileToString(path);
            string[] strMas = str.Split(separator);
            for (int i = 1; i < strMas.Length; i++)
            {
                do
                {
                    flag = int.TryParse(strMas[i], out x);
                    if (flag == true)
                    {
                        result.Set(resIndex, strMas[i]);
                        resIndex++;
                        if (resIndex >= result.GetLength)
                        {
                            result.Resize();
                        }
                    }
                    else
                    {
                        i++;
                    }
                } while ((flag != true) && (i < strMas.Length));
            }
            return(result);
        }
Beispiel #2
0
        // прочие методы
        // загрузка таблицы учащихся с баллами по ЕГЭ
        public static Students[] ReadScoreFile(string path)
        {
            string text = Maxyber.FileToString(path);

            string[] textArr = text.Split('\n');
            int.TryParse(textArr[0], out int x);
            Students[] studentList = new Students[x];

            for (int i = 0; i < studentList.Length; i++)
            {
                studentList[i] = new Students();
                string[] ta = new string[5];
                ta = textArr[i + 1].Split(' ');
                studentList[i].Add(ta[0], ta[1], int.Parse(ta[2]), int.Parse(ta[3]), int.Parse(ta[4]));
                studentList[i].Print();
            }
            return(studentList);
        }
Beispiel #3
0
        public Account ReadFile(string path, ref Account result, char accSeparator = ':', char varSeparator = '|')
        // ДОДЕЛАТЬ возможность записи массива Account[] из файлы по разделителю ':'
        // база логинов и паролей в файле выглядит как
        // account1|login1|password1:account2|login2|password2 и т.д.
        {
            string str = "";

            str = Maxyber.FileToString(path);
            // string[] masStr = str.Split(accSeparator);
            // Array.Resize(ref result, masStr.Length);
            // for (int i = 0; i < masStr.Length; i++)
            // {
            //    string[] temp = masStr[i].Split(varSeparator);
            string[] temp = str.Split(varSeparator);
            result.Set("accountName", temp[0]);
            result.Set("login", temp[1]);
            result.Set("password", temp[2]);
            // }
            return(result);
        }
Beispiel #4
0
        static public void StudentListAnalyse()
        {
            string path  = "data/students.txt";
            string temp  = Maxyber.FileToString(path);
            int    count = int.Parse(temp.Split('\n')[0]);

            Students[] studentList = new Students[count];
            for (int i = 0; i < studentList.Length; i++)
            {
                studentList[i] = new Students();
            }
            studentList = Students.ReadScoreFile(path);
            double[] middles = new double[count];
            double   middle1 = 10, middle2 = 10, middle3 = 10; // объявляем переменные для трех минимальных средних

            for (int i = 0; i < count; i++)                    // заполняем массив средних баллов студентов
            {
                double mid = double.Parse(studentList[i].Get("middle"));
                middles[i] = mid;
            }
            for (int i = 0; i < middles.Length; i++) // заполняем три минимальных средних оценки
            {
                if (middles[i] < middle1)
                {
                    middle3 = middle2;
                    middle2 = middle1;
                    middle1 = middles[i];
                    continue;
                }
                if ((middles[i] < middle2) && (middles[i] != middle1))
                {
                    middle3 = middle2;
                    middle2 = middles[i];
                    continue;
                }
                if ((middles[i] <= middle3) && (middles[i] != middle1) && (middles[i] != middle2))
                {
                    middle3 = middles[i];
                }
            }
            Console.WriteLine($"Минимальные средние баллы: {middle1:f3}, {middle2:f3}, {middle3:f3}");
            Console.WriteLine("");
            Console.WriteLine("Ученики, хуже всего написавшие ЕГЭ");
            StringBuilder result   = new StringBuilder(); // создаем строку для вывода студентов с самыми плохими баллами
            int           position = 0;

            for (int i = 0; i < studentList.Length; i++)
            {
                if (middle1 == double.Parse(studentList[i].Get("middle")))
                {
                    result.Insert(0, studentList[i].ToString() + "\r\n");
                    position = position + studentList[i].ToString().Length + 2;
                }
                if (middle2 == double.Parse(studentList[i].Get("middle")))
                {
                    result.Insert(position, studentList[i].ToString() + "\r\n");
                }
                if (middle3 == double.Parse(studentList[i].Get("middle")))
                {
                    result.Append(studentList[i].ToString() + "\r\n");
                }
            }
            Console.WriteLine(result.ToString());
        }