Список фамилий студентов, которым будет назначена обычная и повышенная стипендия - C#

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

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

Дано задание: Дана строка с результатами экзамена по предмету формата «Предмет: Фамилия_студента_1, оценка, Фамилия_студента_2, …». По каждому предмету такие строки занесены в массив. Напишите метод формирования двух новых строк, содержащих списки фамилий студентов, которым будет назначена обычная и повышенная стипендия. В эти списки включаются студенты, не имеющие троек, и получившие все пятерки, соответственно. Фамилии в строках расположите в алфавитном порядке.
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. string s1 = "Математика; Иванов:3; Сергеев:5; Степанов:4";
  4. string s2 = "5";
  5. string s3 = "4";
  6. string s4 = "3";
  7. metod(s1, s2, s3, s4);
  8. Console.ReadKey();
  9. }
  10. private static void metod(string s1, string s2, string s3, string s4)
  11. {
  12. s1 = s1 + ";";
  13. s2 = s2 + ";";
  14. s3 = s3 + ";";
  15. s4 = s4 + ";";
  16. string[] logins = s1.Split(';');
  17. foreach (string x in logins)
  18. {
  19. if (x != String.Empty && s2.Contains(x.Substring(x.IndexOf(':') + 1) + ";"))
  20. {
  21. Console.WriteLine("Повышенная стипендия у: ");
  22. string y = x.TrimStart(); Console.WriteLine(y.Remove(y.IndexOf(':')));
  23. }
  24. else if (x != String.Empty && s3.Contains(x.Substring(x.IndexOf(':') + 1) + ";"))
  25. {
  26. Console.WriteLine("Неповышенная стипендия у: ");
  27. string y = x.TrimStart(); Console.WriteLine(y.Remove(y.IndexOf(':')));
  28. }
  29. else if (x != String.Empty && s4.Contains(x.Substring(x.IndexOf(':') + 1) + ";"))
  30. {
  31. Console.WriteLine("нет стипендии у: ");
  32. string y = x.TrimStart(); Console.WriteLine(y.Remove(y.IndexOf(':')));
  33. }
  34. }
  35. }
  36. }
Я написал код только для одного предмета, не понимаю, как сделать для нескольких предметов.

Решение задачи: «Список фамилий студентов, которым будет назначена обычная и повышенная стипендия»

textual
Листинг программы
  1. private static void Main()
  2. {
  3.     string[] subjects =
  4.     {
  5.         "Математика: Иванов, 4, Сергеев, 5, Степанов, 4",
  6.         "Математика: Иванов, 4, Сергеев, 5, Степанов, 3",
  7.         "Физика: Иванов, 5, Сергеев, 5, Степанов, 3",
  8.         "Физика: Иванов, 5, Сергеев, 5, Степанов, 3"
  9.     };
  10.  
  11.     Array.ForEach(Metod(subjects), Console.WriteLine);
  12. }
  13.  
  14. private static string[] Metod(string[] subjects)
  15. {
  16.     var students = new Dictionary<string, int>();
  17.     foreach (string subject in subjects)
  18.     {
  19.         string[] info = subject.Split(':')[1].Split(',');
  20.         for (var i = 0; i < info.Length; i += 2)
  21.         {
  22.             string name = info[i].Trim();
  23.             int mark = int.Parse(info[i + 1]);
  24.             int minMark;
  25.             students[name] = students.TryGetValue(name, out minMark) ? Math.Min(minMark, mark) : mark;
  26.         }
  27.     }
  28.  
  29.     var increasedStudents = new List<string>();
  30.     var notIncreasedStudents = new List<string>();
  31.     foreach (KeyValuePair<string, int> pair in students)
  32.     {
  33.         if (pair.Value == 5)
  34.         {
  35.             increasedStudents.Add(pair.Key);
  36.         }
  37.         else if (pair.Value == 4)
  38.         {
  39.             notIncreasedStudents.Add(pair.Key);
  40.         }
  41.     }
  42.  
  43.     return new[]
  44.     {
  45.         string.Format("Повышенная стипендия: {0}", string.Join(", ", increasedStudents)),
  46.         string.Format("Обычная стипендия: {0}", string.Join(", ", notIncreasedStudents))
  47.     };
  48. }

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


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

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

9   голосов , оценка 4.333 из 5

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

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

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