Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …» - C#

Узнай цену своей работы

Формулировка задачи:

Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …». По каждому предмету такие строки занесены в массив. Напишите метод формирования массива, содержащего строки формата «Предмет: 70%, 100%» со значениями абсолютной и качественной успеваемости в процентах, соответственно, по каждому предмету.

Решение задачи: «Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …»»

textual
Листинг программы
  1. private static void Main()
  2. {
  3.     string[] subjects =
  4.     {
  5.         "Math: A, 1, B, 2, C, 3, D, 4, E, 5",
  6.         "Chem: A, 3, B, 3, C, 3, D, 4"
  7.     };
  8.  
  9.     string[] result = CalcStat(subjects);
  10.     Array.ForEach(result, Console.WriteLine);
  11. }
  12.  
  13. private static string[] CalcStat(IEnumerable<string> subjects)
  14. {
  15.     return (from subject in subjects
  16.         let index = subject.IndexOf(':')
  17.         let name = subject.Substring(0, index)
  18.         let marks = subject.Substring(index).Split(',').Where((x, i) => i % 2 == 1).Select(int.Parse).ToArray()
  19.         select new Tuple<string, double[]>(name, new[]
  20.         {
  21.             (double)marks.Count(x => x >= 3 && x <= 5) / marks.Length,
  22.             (double)marks.Count(x => x == 4 || x == 5) / marks.Length
  23.         })).Select(tuple => $"{tuple.Item1}: {string.Join(", ", tuple.Item2.Select(x => $"{x:P0}"))}").ToArray();
  24. }

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


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

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

6   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы