Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Bob103
8 / 8 / 9
Регистрация: 23.09.2015
Сообщений: 253
Завершенные тесты: 3
#1

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

24.11.2016, 12:26. Просмотров 288. Ответов 4
Метки нет (Все метки)

На основе данных входного файла составить список студентов,
включающий фамилию, факультет, курс, группу, 5 оценок. Вывести в новый файл
информацию о тех студентах, которые имеют хотя бы одну двойку, отсортировав их по
курсу.

Проблема с массивом оценок,можно было бы конечно отдельно каждую оценку,но это не круто.Вот,подскажите плз,как работать с массивом в структуре.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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);
        }
    }
C#
1
2
3
4
5
Иванов ; Фак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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2016, 12:26
Ответы с готовыми решениями:

Как хранить данные в структуре
как хранить данные в структуре

Как хранить данные в структуре после выхода
Как хранить данные в структуре после выхода

Как правильно передать массив структур в функцию в структуре
Функция Search должна принимать массив, у меня это массив структур, как это...

Как я могу проверить значение следующего элемента в динамической структуре?
Нужно создать динамическую структуру для хранения строгой последовательности...

Модификаторы доступа структура в классе; как ограничить свободный доступ к структуре
class test { private List&lt;liststation&gt; _liststation = new...

4
Storm23
Эксперт .NETАвтор FAQ
6096 / 3656 / 1383
Регистрация: 11.01.2015
Сообщений: 4,815
Записей в блоге: 31
24.11.2016, 12:49 #2
/* тут надо бы инициализировать массив */ => fields[3].Trim().Split(' ').Select(s=>int.Parse(s)).ToArray()
0
Bob103
8 / 8 / 9
Регистрация: 23.09.2015
Сообщений: 253
Завершенные тесты: 3
24.11.2016, 14:03  [ТС] #3
Storm23, так хорошо,а ниже,занести данные в массив.С самим методом Mas

Добавлено через 3 минуты
Storm23, и вопрос по Select,там не нужно подключать пространство имён?

Добавлено через 27 минут
Somebody...

Добавлено через 37 минут
0
edward_freedom
1553 / 1432 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
24.11.2016, 15:54 #4
Bob103, Недавно делал похожее на c++, думаю смысл поймешь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#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");
}
1
Bob103
8 / 8 / 9
Регистрация: 23.09.2015
Сообщений: 253
Завершенные тесты: 3
25.11.2016, 15:10  [ТС] #5
edward_freedom, спасибо)
0
25.11.2016, 15:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2016, 15:10

Как делать накопление объектов классов в структуре типа массив, список или очередь
Пожалуйста, покажите примеры накопления...

Манипуляции с массивом, как с List<>
Всем привет может кто-нибудь знает, как решить проблему..? в своей проге я...

Метод с массивом как параметр
Нужно создать метод, кторый принимает массив, как параметр и выводит его,массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru