Advertisement
mlmisha

9.1.1

May 8th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.14 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Text;
  4. namespace lab
  5. {
  6.     class p
  7.     {
  8.         public string gr;
  9.         public double[] marks;
  10.         public double sr;
  11.         public p(string a, double[] b, double c)
  12.         {
  13.             gr = a;
  14.             marks = b;
  15.             sr = c;
  16.         }
  17.     }
  18.     class MainClass
  19.     {
  20.         public static int StringAnalysis(string a)
  21.         {
  22.             int r = 0;
  23.             int h = 0;
  24.             int f = 0;
  25.             while (r < a.Length)
  26.             {
  27.                 if (Char.IsDigit(a[r]))
  28.                 {
  29.                     h++;
  30.                 }
  31.                 if (a[r] == ' ')
  32.                 {
  33.                     f = r;
  34.                 }
  35.                 r++;
  36.             }
  37.             int j = int.Parse(a.Substring(f + 1));
  38.             return j;
  39.         }
  40.         public static double Marks(string a)
  41.         {
  42.             double s = 0;
  43.             for (int i = 0; i < a.Length; i++)
  44.             {
  45.                 s += double.Parse(Char.ToString(a[i]));
  46.             }
  47.             s /= a.Length;
  48.             return s;
  49.         }
  50.         public static void Main(string[] args)
  51.         {
  52.             StreamReader s = new StreamReader(@"/Users/mlmisha/Desktop/temp.txt");
  53.             string l = s.ReadLine();
  54.             int gr = StringAnalysis(l);
  55.             Console.WriteLine("Групп: {0}", gr);
  56.             l = s.ReadLine();
  57.             int ex = StringAnalysis(l);
  58.             Console.WriteLine("Экзаменов: {0}", ex);
  59.             string[] sub = new string[ex];
  60.             double[] smar = new double[ex];
  61.             l = s.ReadLine();
  62.             p[] m = new p[gr];
  63.             Console.WriteLine("Предметы:");
  64.             for (int i = 0; i < ex; i++)
  65.             {
  66.                 l = s.ReadLine();
  67.                 sub[i] = l;
  68.                 Console.WriteLine(sub[i]);
  69.             }
  70.             l = s.ReadLine();
  71.             for (int t = 0; t < gr; t++)
  72.             {
  73.                 l = s.ReadLine();
  74.                 string name = l;
  75.                 l = s.ReadLine();
  76.                 l = s.ReadLine();
  77.                 for (int i = 0; i < ex; i++)
  78.                 {
  79.                     l = s.ReadLine();
  80.                     smar[i] = Marks(l);
  81.                     l = s.ReadLine();
  82.                 }
  83.                 double sr = 0;
  84.                 for (int i = 0; i < ex; i++)
  85.                 {
  86.                     sr += smar[i];
  87.                 }
  88.                 sr /= ex;
  89.                 m[t] = new p(name, smar, sr);
  90.             }
  91.  
  92.             Console.WriteLine("Промежуточная таблица");
  93.             for (int i = 0; i < gr; i++)
  94.             {
  95.                 Console.WriteLine("{0} {1:f1}", m[i].gr, m[i].sr);
  96.             }
  97.             string v = "Да";
  98.             while (v == "Да")
  99.             {
  100.                 Console.WriteLine("Сколько групп сравнить между собой?");
  101.                 int an = int.Parse(Console.ReadLine());
  102.                 if (an <= 1)
  103.                 {
  104.                     while (an <= 1)
  105.                     {
  106.                         Console.WriteLine("Тут и сравнивать нечего. Давайте без шуточек...");
  107.                         an = int.Parse(Console.ReadLine());
  108.                     }
  109.                 }
  110.                 int[] sd = new int[an];
  111.                 Console.WriteLine("Какие группы сравниваем? Через пробел");
  112.                 for (int i = 0; i < gr; i++)
  113.                 {
  114.                     Console.WriteLine("{0}. {1}", i + 1, m[i].gr);
  115.                 }
  116.                 string[] cv = Console.ReadLine().Split(' ');
  117.                 for (int i = 0; i < an; i++)
  118.                 {
  119.                     sd[i] = int.Parse(cv[i]);
  120.                 }
  121.                 Console.WriteLine("Сравниваем эти группы...");
  122.                 for (int i = 0; i < an; i++)
  123.                 {
  124.                     Console.WriteLine("{0}", m[sd[i] - 1].gr);
  125.                 }
  126.                 Console.WriteLine("Анализ таблицы...");
  127.                 for (int i = 0; i < an; i++)
  128.                 {
  129.                     double max = m[sd[i] - 1].sr;
  130.                     int id = sd[i] - 1;
  131.                     for (int k = i + 1; k < an; k++)
  132.                     {
  133.                         if (m[sd[k] - 1].sr > max)
  134.                         {
  135.                             max = m[sd[k] - 1].sr;
  136.                             id = k;
  137.                         }
  138.                     }
  139.                     p z;
  140.                     z = m[id];
  141.                     m[id] = m[sd[i] - 1];
  142.                     m[sd[i] - 1] = z;
  143.                 }
  144.                 Console.WriteLine();
  145.                 Console.WriteLine("\t\t Финальная таблица результатов");
  146.                 Console.WriteLine();
  147.                 Console.Write("Группа ");
  148.                 Console.WriteLine("Средний");
  149.                 for (int i = 0; i < an; i++)
  150.                 {
  151.                     Console.Write("{0} {1:f1} ", m[sd[i] - 1].gr, m[sd[i] - 1].sr);
  152.                     Console.WriteLine();
  153.                 }
  154.                 Console.WriteLine();
  155.                 Console.WriteLine("Удачи на следующей сессии");
  156.                 Console.WriteLine("Еще кого-то сравнить?");
  157.                 v = Console.ReadLine();
  158.                 s.Close();
  159.                 StreamWriter sw = new StreamWriter(@"/Users/mlmisha/Desktop/temp.txt", true);
  160.                 sw.WriteLine();
  161.                 sw.WriteLine("Список групп в упрорядоченном списке: ");
  162.                 for (int i = 0; i<gr; i++)
  163.                 {
  164.                     sw.WriteLine("{0}.{1} [{2:f1}]", i + 1, m[i].gr, m[i].sr);
  165.                 }
  166.                 sw.Close();
  167.             }
  168.         }
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement