Как работать с массивом в структуре? - C#

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

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

На основе данных входного файла составить список студентов, включающий фамилию, факультет, курс, группу, 5 оценок. Вывести в новый файл информацию о тех студентах, которые имеют хотя бы одну двойку, отсортировав их по курсу. Проблема с массивом оценок,можно было бы конечно отдельно каждую оценку,но это не круто.Вот,подскажите плз,как работать с массивом в структуре.
Листинг программы
  1. class Program
  2. {
  3. private static void Main()
  4. {
  5. // Читаем из файла
  6. string[] allLines = File.ReadAllLines("input.txt");
  7. // Преобразуем в массив студентов
  8. Student[] students = new Student[allLines.Length];
  9. for (int index = 0; index < allLines.Length; index++)
  10. {
  11. string line = allLines[index];
  12. string[] fields = line.Split(';');
  13. Student student = new Student(fields[0], fields[1], Convert.ToInt32(fields[2]),/* тут надо бы инициализировать массив */);
  14. students[index] = student;
  15. }
  16. // Сортируем
  17. Array.Sort(students);
  18. // Выводим данные
  19. foreach (Student student in students)
  20. {
  21. Console.WriteLine(student);
  22. Console.WriteLine();
  23. }
  24. // Преобразуем в удобный для записи вид
  25. string[] linesToSave = new string[students.Length];
  26. for (int i = 0; i < students.Length; i++)
  27. {
  28. Student student = students[i];
  29. linesToSave[i] = student.ToString();
  30. }
  31. // Сохраняем в файл
  32. File.WriteAllLines("output.txt", linesToSave);
  33. Console.ReadKey();
  34. }
  35. }
  36. public struct Student : IComparable
  37. {
  38. public Student(string surname, string fac, int course, int [] mas)
  39. : this()
  40. {
  41. Surname = surname;
  42. Fac = fac;
  43. Course = course;
  44. Mas = mas;
  45. }
  46. // Фамилия
  47. public string Surname { get; private set; }
  48. // Факультет
  49. public string Fac { get; private set; }
  50. // Курс
  51. public int Course { get; private set; }
  52. // Оценки
  53. public int [] Mas
  54. {
  55. get
  56. {
  57. return //Массив
  58. }
  59. private set
  60. {
  61. for (int i = 0; i < 5; i++)
  62. {
  63. }
  64. }
  65. }
  66.  
  67. public override string ToString()
  68. {
  69. return string.Format("{0}; {1}; {2}; {3}",
  70. Surname, Fac, Course, Mas);
  71. }
  72. }
Листинг программы
  1. Иванов ; Фак1; 111; 2 3 4 4 5;
  2. Петров ; Фак2; 211; 3 3 3 3 3;
  3. Сидоров; Фак3; 311; 4 4 5 4 4;
  4. Пупкин ; Фак4; 411; 4 3 4 3 4;
  5. Таратайкин ;Фак5; 511; 5 5 5 5 5;

Решение задачи: «Как работать с массивом в структуре?»

textual
Листинг программы
  1. #include <iostream>
  2. #include <string>
  3. #include <list>
  4. #include <map>
  5. using namespace std;
  6.  
  7.  
  8. class Student
  9. {
  10. public:
  11.     Student(string firstName, string lastName, string group, map<string, int> * balls)
  12.     {
  13.         this->firstName = firstName;
  14.         this->lastName = lastName;
  15.         this->group = group;
  16.         this->balls = balls;
  17.     }
  18.     string getFirstName() const
  19.     {
  20.         return this->firstName;
  21.     }
  22.     string getLasttName() const
  23.     {
  24.         return this->lastName;
  25.     }
  26.     string getGroup() const
  27.     {
  28.         return this->group;
  29.     }
  30.     void getAllBalls()
  31.     {
  32.         for (auto iterator = this->balls->begin(); iterator != this->balls->end(); ++iterator)
  33.         {
  34.             cout << "\tПредмет: #" << (*iterator).first << " - оценка: " << (*iterator).second << endl;
  35.         }
  36.     }
  37. private:
  38.     string firstName;
  39.     string lastName;
  40.     string group;
  41.     map<string, int> * balls;
  42. };
  43.  
  44.  
  45.  
  46.  
  47.  
  48. int main()
  49. {
  50.     setlocale(LC_ALL, "russian");
  51.  
  52.     list<Student*> students;
  53.     students.push_back(new Student("Перепечкин", "Роман", "РПЗ 14-01", new map<string, int>{
  54.         { "Математика", 2 },
  55.         { "ООП", 5 },
  56.         { "Сети", 4 }
  57.     }));
  58.     students.push_back(new Student("Ромашкин", "Анатолий", "РПЗ 14-01", new map<string, int>{
  59.         { "Математика", 5 },
  60.         { "ООП", 5 },
  61.         { "Сети", 5 }
  62.     }));
  63.     students.push_back(new Student("Трампыч", "Мария", "РПЗ 14-01", new map<string, int>{
  64.         { "Математика", 4 },
  65.         { "ООП", 4 },
  66.         { "Сети", 5 }
  67.     }));
  68.     for (auto iterator = students.begin(); iterator != students.end(); ++iterator)
  69.     {
  70.         cout << "Студент: " << (*iterator)->getFirstName() << " " << (*iterator)->getLasttName();
  71.         cout << ", группа #" << (*iterator)->getGroup() << ", имеет такие оценки:" << endl;
  72.         (*iterator)->getAllBalls();
  73.         cout << endl;
  74.     }
  75.  
  76.  
  77.  
  78.     system("pause");
  79. }

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


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

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

14   голосов , оценка 3.786 из 5

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

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

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