Как работать с массивом в структуре? - 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");
}

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы