Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 02.12.2012
Сообщений: 17
1

Сортировка по любому полю

11.05.2013, 13:40. Показов 848. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Обработать массив структур следующим образом:
п.1) ввести элементы массива с клавиатуры(текущее количество эле-
ментов массива вводится с клавиатуры (по соответствующему
запросу) каждый раз после запуска программы);
п.2) вывести на экран все элементы массива. Поля каждой структуры
вывеси на экран в строку и получить таким образом на экране
"таблицу", содержащую в каждой своей строке поля соответ-
ствующей структуры;
п.3) произвести редактирование любой записи массива по выбору
пользователя(пользователь выбирает нужную запись согласно
"таблицы", которая будет выведена на экран при выполнении
п.2 этой лабораторной работы и нужное ему поле для редакти-
рования). Редактирование записи реализовать отдельной функци-
ей.
Для выбора пользователем выполняемого действия(п.1, п.2 или п.3)
организовать простейшее меню(меню реализовать отдельной функцией
без использования функций работы с клавиатурой).

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
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "malloc.h"
using namespace std;
 
 
 
int menu (void);
void redact (int,int);
 
struct institut{
    char name[20];
    char predmet[20];
    int good;
    }*a;
 
void main ()
{
    int num,n,str,stb;
    char q='y';
    while (q=='y')
    {
        num=menu();
        switch (num){
        case 1:{
                free(a);
                cout<<"wwedi kol-wo strok"<<endl;
                cin>>n;
                a=(struct institut*) malloc (sizeof(struct institut)*n);
                for (int i=0;i<n;i++){
                        cout<<"wwedite imia studenta  ";
                        cin>>a[i].name;
                        cout<<"wwedite predmet ";
                        cin>>a[i].predmet;
                        cout<<"wwedite ocenku studenta ";
                        cin>>a[i].good;
                    }
            }break;
        case 2:{ for (int i=0;i<n;i++)
cout<<a[i].name<<" "<<a[i].predmet<<" "<<a[i].good<<endl;
            }break;
case 3:{ cout<<"wwedite stroku i stolbec kotorii neobhodimo otredaktirowat'"<<endl;
                 cin>>str;
                 cin>>stb;
                 redact(str,stb);
            } break;
    }
        cout<<"prodolzhit'?(y/n)";
        cin>>q;
    }
}
 
int menu(void){
    int num;
    cout<<endl<<"1.sozdat' structuru"<<endl<<
            "2.wiwesti structuru"<<endl<<
            "3.redaktirowat'"<<endl;
    cin>>num;
    return num;
}
 
void redact (int str,int stb){
    cout<<"wwedite nowii parametr"<<endl;
    switch (stb){
    case 1:{ cin>>a[str-1].name; break;}
    case 2:{ cin>>a[str-1].predmet; break;}
    case 3:{ cin>>a[str-1].good; break;}
    }
}

Как теперь сделать сортировку по любому полю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2013, 13:40
Ответы с готовыми решениями:

Сортировка массива структур через switch по любому полю
Столкнулся с проблемой сортировки массива по любому из полей, а точнее не пойму как реализовать эту...

Поиск по любому полю структуры
Нужно сделать поиск по любому полю структуры(Имя, фамилия или дата рождения) Вот собственно код...

Как сортировать файл по любому указанному полю
Есть часть кода и текстовый файл, нужно добавить функцию сортировки файла по любому указанному...

Сортировка структуры по полю Tag и по полю Eng
Есть структура: struct _1C { string Tag; string Rus; string Eng; _1C(const string &amp;Tag,...

1
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
11.05.2013, 15:00 2
kura007, просто заводишь вектор твоих объектов a; далее так : sort(a.begin(), a.end(), pred(idx)), где pred - булева функция (которая принимает 3 аргумента твойтип a, твойтип b, int idx), а idx - номер поля, по которому нужно сортировать в ней ты опишешь следующее
if (idx == 0) return (a.первое поле < b.первое поле)
if (idx == 1) return .... итд

Добавлено через 6 секунд
kura007, http://www.cplusplus.com/reference/algorithm/sort/
0
11.05.2013, 15:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2013, 15:00
Помогаю со студенческими работами здесь

Сортировка вектора по полю(Сортировка вставками)
Здравствуйте! Нужно написать сортировку вектора по полю weight класса tomato. Вот класс: #pragma...

Сортировка структуры по полю
Есть структура типа СТУДЕНТ с полями: *фио *группа *массив из пяти чисел (оценки) Необходимо...

Сортировка структуры по полю
Здравствуйте, пытаюсь реализовать алгоритм k-средних по этому математическому описанию Проблема...

Сортировка по полю структуры
Всем привет,есть следующие задание заполнить информацию о студентах группы,а потом отсортировать по...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru