Форум программистов, компьютерный форум CyberForum.ru

Массив структур: Сортировать отчеты по фамилиям студентов - C++

Восстановить пароль Регистрация
 
Dima1996
4 / 4 / 0
Регистрация: 24.01.2013
Сообщений: 96
22.05.2013, 13:52     Массив структур: Сортировать отчеты по фамилиям студентов #1
Условие:
Вариант 12.
Дана последовательность 16 отчетов о сдаче студентами экзаменов. Каждый отчет содержит фамилию студента и оценки по 5 предметам. Найти последовательность студентов, являющихся:
a) отличниками;
б) студентами (которые не имеют плохие оценки);
в) успевающих, которые имеют средний балл за сессию не менее 4.0
Сортировать отчеты по фамилиям студентов.


Заранее Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 13:52     Массив структур: Сортировать отчеты по фамилиям студентов
Посмотрите здесь:

[C++] Отсортировать данные по фамилиям студентов в алфавитном порядке C++
Программа выводит неверный ответ (дан массив структур, содержащий сведения об успеваемости студентов - вывести список неуспевающих студентов) C++
Дан массив студентов ВУЗа: ФИО, возраст, регион, факультет. Вывести на экран результирующую таблицу: регион, количество студентов из этого региона C++
Сортировать массив по возрастанию C++
Отсортировать массив структур (фамилии студентов и размер их стипендии) по размеру стипендии C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
22.05.2013, 14:12     Массив структур: Сортировать отчеты по фамилиям студентов #2
используй контейнеры и алгоритмы stl.
Dima1996
4 / 4 / 0
Регистрация: 24.01.2013
Сообщений: 96
22.05.2013, 14:14  [ТС]     Массив структур: Сортировать отчеты по фамилиям студентов #3
Я ничо по этим масивам не понял(
плохо обьясняли

Если не сложно напиши как надо постараюсь понять по коду
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
22.05.2013, 14:25     Массив структур: Сортировать отчеты по фамилиям студентов #4
пример - структуры и std::vector :
Кликните здесь для просмотра всего текста

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
//main.cpp
#include ...
#include <vector>
void main()
{
        struct mystruct
    {
        int i;
        int x;
        int y;
        int z;
        char* pstr;
    };
 
    mystruct * ms1 = new mystruct;
    mystruct * ms2 = new mystruct;
    mystruct * ms3 = new mystruct;
 
    std::vector<mystruct *> mv;
 
    mv.push_back(ms1);
    mv.push_back(ms2);
    mv.push_back(ms3);
}


Добавлено через 2 минуты
много чего есть
Dima1996
4 / 4 / 0
Регистрация: 24.01.2013
Сообщений: 96
22.05.2013, 14:29  [ТС]     Массив структур: Сортировать отчеты по фамилиям студентов #5
И что эта программа делает?
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
22.05.2013, 14:36     Массив структур: Сортировать отчеты по фамилиям студентов #6
ни чего ))) это пример использования структуры и std::vector, создали структуру с нужными членами, и уложили в контейнер , дальше можно работать с содержимым std::vector используя как внутренние методы std::vector так и различные алгоритмы из STL. ссылка на ее описание выше.
Dima1996
4 / 4 / 0
Регистрация: 24.01.2013
Сообщений: 96
22.05.2013, 14:55  [ТС]     Массив структур: Сортировать отчеты по фамилиям студентов #7
Ладно попытаюсь понять

Добавлено через 17 минут
Нечего не могу понять
Напишите пожалуйста хоть примерно какой должен быть код программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 21:33     Массив структур: Сортировать отчеты по фамилиям студентов
Еще ссылки по теме:

Программа, которая будет сортировать студентов по дате рождения (убывание) C++
C++ Как сортировать массив
Как сортировать массив? C++

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

Или воспользуйтесь поиском по форуму:
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
22.05.2013, 21:33     Массив структур: Сортировать отчеты по фамилиям студентов #8
примерно такой :
Кликните здесь для просмотра всего текста

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
//main.cpp
#include <iostream>
#include <vector>
#include <locale.h>
#include <stdlib.h>
#include <sstream>
#include <algorithm>
// может что пропустил ,сам  вставишь  #include <...>
 
using namespace std;
 
typedef vector< int > vcOtmet;
typedef pair< string,vcOtmet > pair_Otchet;// для избежания проблем с двойныыми угловыми скобками ( ??? ) + 
                                                           // упрощает немного вид 
 
bool sort_to_5 (pair_Otchet & pi,pair_Otchet pj)// функция сравнения для сортировки
{ 
    return ((pi.second)[4] < (pj.second)[4]); // первым идет тот у кого меньше всех отметки indx, поменять < на >
}                                                             //  первым у кого больше
 
void myprint(vector<pair_Otchet>& vc, int indx)// печать отсортированного результата по отметке
{
    if(indx > 5)
        indx = 5;
    if(indx <= 0)
        indx = 1;
    int x = vc.size();
    cout << endl << endl;
    for(int i = 0; i < x; i++)
    {
        cout << ((vc[i]).first).c_str()<< "   " << indx ;
        cout << " в количестве - "<< ((vc[i]).second)[indx - 1] << endl;
    }
}
 
 
void main ( void )
{
        setlocale(LC_ALL, "");// локаль по умолчанию, дай бог ось не китайская ))
    cout << "Проверка кодировки , не кракозябры ,все ок ."<< endl << endl;  
 
    vector<pair_Otchet> vcOtch;
 
    // если не задано ,то заполним сами от "фонаря"
    
    srand(time(NULL));
    for(int i = 0; i < 16; i++)// запоняем отчет
    {
        stringstream ss;
        ss << "Иванов_" << dec << i + 1;
        cout << " Отметки  " << ss.str() << "   ";
        vcOtmet vctemp;
 
        for(int ii = 0; ii < 5; ii++)// случайное количество отметок от 1 до 5
        {
            int x = rand() % 5 + 1;     
            cout << "  "<< dec << ii + 1 << " - " << x;
            vctemp.push_back(x);// очередное количество отметок по индексу ii + 1
        }
        vcOtch.push_back(make_pair(ss.str(),vctemp));// готовый отчет опр. студента
        cout << endl;
    }
 
    sort(vcOtch.begin(),vcOtch.end(),sort_to_5);
    myprint(vcOtch, 5 );
 
    system("pause");
}

"красоту" и остальное сам напишешь.
Yandex
Объявления
22.05.2013, 21:33     Массив структур: Сортировать отчеты по фамилиям студентов
Ответ Создать тему
Опции темы

Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru