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

Сортировка по алфавиту поля класса

07.03.2013, 21:18. Показов 7534. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста
У меня есть класс покупатель и нужно дописать функцию которая отсортировала бы по алфавиту по фамилии всех введенных покупателей. Вот что у меня есть:

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
# include <iostream>
# include <locale.h>
# include <conio.h>
using namespace std;
 
const int n = 2;
 
class Customer
{
 
private:
 char pr [20]; / / фамилия
 char ima [20];/ / имя
 char pobat [20];/ / отчество
 
 
public:
 Customer ();/ / конструктор для инициализации данных
void show ();/ / функция которая показывает информацию о всех введенных покупателей
 
 
};
 
 
Customer :: Customer ()
 
{
cout << "Фамилия клиента:";
cin >> pr;
 
cout << "Имя клиента:";
cin >> ima;
 
cout << "Отчество клиента:";
cin >> pobat;
 
cout << endl;
 }
 
 
 
void Customer :: show ()
{
 cout << "Клиент:" << pr << " " << ima << " "<< pobat << " "<< "\ n";
 cout << endl;
 
 
 
 
 
 
}
 
 
int main () {
 
 setlocale (LC_ALL, "Russian")
 Customer mas [n];/ / массив объектов типа класс
 
 cout << "Информация:";
 cout << "\ n";
 for (int i = 0; i <n; i + +)
 mas [i]. show ();
 
getch ();
 return 0;
 }
просьба очень больших и очень сложних функций не пишите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2013, 21:18
Ответы с готовыми решениями:

Сортировка массива поля класса по алфавиту
По условию задания, необходимо создать класс контакты который по желанию пользователя нужно будет...

Сортировка в struct по алфавиту. Сортировка в файле
Допустим вот такая вот структура struct Art_space { ...

Сортировка массивов (Сортировка слов по алфавиту)
Объясните мне сортировку слов по алфавиту .Сравнивать целиком слова нельзя ?Есть ли какой нибудь...

WPF Binding поля, в качестве поля - объекта класса
Есть вопрос, как можно выполнить биндинг поля объекта класса? Для примера есть такая конструкция:...

5
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
07.03.2013, 21:54 2
ChuckNorris, можно вот так, если есть массив

C++
1
2
3
4
5
6
7
8
9
for(i = 0; i < n-1; i++)
        for( int j = i+1; j < n; j++)
            if(strcmp(grup[i].Fam, grup[j].Fam) > 0)
            {
                Sworker t = grup[i];
                grup[i] = grup[j];
                grup[j] = t;
 
            }
1
2 / 2 / 1
Регистрация: 25.10.2012
Сообщений: 42
07.03.2013, 22:03  [ТС] 3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ChuckNorris, можно вот так, если есть массив

C++
1
2
3
4
5
6
7
8
9
for(i = 0; i < n-1; i++)
        for( int j = i+1; j < n; j++)
            if(strcmp(grup[i].Fam, grup[j].Fam) > 0)
            {
                Sworker t = grup[i];
                grup[i] = grup[j];
                grup[j] = t;
 
            }
скажи пожалуйста что есть что и как это привязать к моему коду?
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
07.03.2013, 22:06 4
ChuckNorris, допустим у тебя есть массив фамилий, ты берешь и сравниваешь фамилию и сортируешь методом пузырька их, в итоге получается отсортированный массив в алфавитном порядке, если надо посмотри strcmp как работает)
1
2 / 2 / 1
Регистрация: 25.10.2012
Сообщений: 42
07.03.2013, 22:18  [ТС] 5
Цитата Сообщение от yoghurt92 Посмотреть сообщение
ChuckNorris, допустим у тебя есть массив фамилий, ты берешь и сравниваешь фамилию и сортируешь методом пузырька их, в итоге получается отсортированный массив в алфавитном порядке, если надо посмотри strcmp как работает)
понял grup это массив, а что такое Sworker t?

я просто хочу все хорошо понять и поэтому спрашиваю)))
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
07.03.2013, 23:13 6
ChuckNorris, это я вырвал кусок из кода, Sworker - имя структуры, t - переменная) вы же должны работать с классом, там все аналогично)

Добавлено через 52 минуты
ChuckNorris, вот я тут "каркас" накидал, а дальше можете делать что хотите с программой

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
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
 
class Customer
{
    private:
        char LastName[20],  
             FirstName[20]; 
 
    public:
        Customer()                          //конструктор по умолчанию
        {
            strcpy(LastName, "Cobain");
            strcpy(FirstName, "Kurt");
        }
 
        char *getLastFam(void)              //для получения фамилии
        {
            return LastName;
        }
 
        void enter_customer()               //функция ввода данных о покупателях
        {
            cout << "\nEnter FirstName: ";
                cin.getline(FirstName, sizeof(FirstName));
            cout << "Enter LastName: ";
                cin.getline(LastName, sizeof(LastName));
        }
 
        void show()                         //функция вывода данных о покупателях
        {
            cout << "\nFirstName: " << FirstName;
            cout << "\nLastName: " << LastName << "\n";
        }
};
 
void sort(Customer *mas, int number)                //функция сортировки по алфавиту
{
    for(int i = 0; i < number - 1; i++)
        for(int j = i + 1; j < number; j++)
            if(strcmp(mas[i].getLastFam(), mas[j].getLastFam()) > 0)
            {
                Customer t = mas[i];
                mas[i] = mas[j];
                mas[j] = t;
            }
}
 
int main () 
{
    int number;
    cout << "Enter the number of buyers: ";
        cin >> number;                      //вводим кол-во покупателей
        cin.ignore();
 
    Customer *mas = new Customer[number];       //фвыделяем память под массив покупателей
 
    cout << "\nEnter information about customers:";
    for(int i = 0; i < number; i++)
        mas[i].enter_customer();            //вводим данные
 
    cout << "\nList of customers:";
    for(int i = 0; i < number; i++)
        mas[i].show();                  //выводим данные
 
    sort(mas, number);                          //сортируем по алфавиту
    cout << "\nAlphabetically sorted array:";
    for(int i = 0; i < number; i++)
        mas[i].show();                          //выводим отсортированный массив
 
    delete []mas;                           //освобождаем память
    cout << "\n\n";
    return 0;
}
1
07.03.2013, 23:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2013, 23:13
Помогаю со студенческими работами здесь

Конструктор внутри класса, поля которого являются членами другого класса
Вот фрагмент кода. class Class_Figure { Class_Triangle tr1; Class_Circle cr1; public:...

Использование в качестве поля класса указатель на объект другого класса
Ошибка в названии - &quot;указателЯ&quot; Вот, пытаюсь освоить ООП (пока только учусь): создаю класс...

Сортировка по алфавиту
На сайте несколько списков ul с классом accorionsec Как отсортировать список li внутри каждого из...

Сортировка по алфавиту
Сортировка структуры по алфавиту и дате. Структура проекта состоит из: фамилия студента, дата,...


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

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