Как работать с массивом в структуре? - C#
Формулировка задачи:
На основе данных входного файла составить список студентов,
включающий фамилию, факультет, курс, группу, 5 оценок. Вывести в новый файл
информацию о тех студентах, которые имеют хотя бы одну двойку, отсортировав их по
курсу.
Проблема с массивом оценок,можно было бы конечно отдельно каждую оценку,но это не круто.Вот,подскажите плз,как работать с массивом в структуре.
Листинг программы
- class Program
- {
- private static void Main()
- {
- // Читаем из файла
- string[] allLines = File.ReadAllLines("input.txt");
- // Преобразуем в массив студентов
- Student[] students = new Student[allLines.Length];
- for (int index = 0; index < allLines.Length; index++)
- {
- string line = allLines[index];
- string[] fields = line.Split(';');
- Student student = new Student(fields[0], fields[1], Convert.ToInt32(fields[2]),/* тут надо бы инициализировать массив */);
- students[index] = student;
- }
- // Сортируем
- Array.Sort(students);
- // Выводим данные
- foreach (Student student in students)
- {
- Console.WriteLine(student);
- Console.WriteLine();
- }
- // Преобразуем в удобный для записи вид
- string[] linesToSave = new string[students.Length];
- for (int i = 0; i < students.Length; i++)
- {
- Student student = students[i];
- linesToSave[i] = student.ToString();
- }
- // Сохраняем в файл
- File.WriteAllLines("output.txt", linesToSave);
- Console.ReadKey();
- }
- }
- public struct Student : IComparable
- {
- public Student(string surname, string fac, int course, int [] mas)
- : this()
- {
- Surname = surname;
- Fac = fac;
- Course = course;
- Mas = mas;
- }
- // Фамилия
- public string Surname { get; private set; }
- // Факультет
- public string Fac { get; private set; }
- // Курс
- public int Course { get; private set; }
- // Оценки
- public int [] Mas
- {
- get
- {
- return //Массив
- }
- private set
- {
- for (int i = 0; i < 5; i++)
- {
- }
- }
- }
- public override string ToString()
- {
- return string.Format("{0}; {1}; {2}; {3}",
- Surname, Fac, Course, Mas);
- }
- }
Листинг программы
- Иванов ; Фак1; 111; 2 3 4 4 5;
- Петров ; Фак2; 211; 3 3 3 3 3;
- Сидоров; Фак3; 311; 4 4 5 4 4;
- Пупкин ; Фак4; 411; 4 3 4 3 4;
- Таратайкин ;Фак5; 511; 5 5 5 5 5;
Решение задачи: «Как работать с массивом в структуре?»
textual
Листинг программы
- #include <iostream>
- #include <string>
- #include <list>
- #include <map>
- using namespace std;
- class Student
- {
- public:
- Student(string firstName, string lastName, string group, map<string, int> * balls)
- {
- this->firstName = firstName;
- this->lastName = lastName;
- this->group = group;
- this->balls = balls;
- }
- string getFirstName() const
- {
- return this->firstName;
- }
- string getLasttName() const
- {
- return this->lastName;
- }
- string getGroup() const
- {
- return this->group;
- }
- void getAllBalls()
- {
- for (auto iterator = this->balls->begin(); iterator != this->balls->end(); ++iterator)
- {
- cout << "\tПредмет: #" << (*iterator).first << " - оценка: " << (*iterator).second << endl;
- }
- }
- private:
- string firstName;
- string lastName;
- string group;
- map<string, int> * balls;
- };
- int main()
- {
- setlocale(LC_ALL, "russian");
- list<Student*> students;
- students.push_back(new Student("Перепечкин", "Роман", "РПЗ 14-01", new map<string, int>{
- { "Математика", 2 },
- { "ООП", 5 },
- { "Сети", 4 }
- }));
- students.push_back(new Student("Ромашкин", "Анатолий", "РПЗ 14-01", new map<string, int>{
- { "Математика", 5 },
- { "ООП", 5 },
- { "Сети", 5 }
- }));
- students.push_back(new Student("Трампыч", "Мария", "РПЗ 14-01", new map<string, int>{
- { "Математика", 4 },
- { "ООП", 4 },
- { "Сети", 5 }
- }));
- for (auto iterator = students.begin(); iterator != students.end(); ++iterator)
- {
- cout << "Студент: " << (*iterator)->getFirstName() << " " << (*iterator)->getLasttName();
- cout << ", группа #" << (*iterator)->getGroup() << ", имеет такие оценки:" << endl;
- (*iterator)->getAllBalls();
- cout << endl;
- }
- system("pause");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д