Как работать с массивом в структуре? - 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"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д