0 / 0 / 0
Регистрация: 13.10.2020
Сообщений: 111
1

Сортировка в классе

21.04.2021, 13:42. Показов 253. Ответов 0
Метки нет (Все метки)

Вот моя программа, и мне надо чтобы список сортировался по возрастанию цены. Не могу понять как это сделать.
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <list>
#include <string>
 
using namespace std;
 
class Novostroi;
class Kvartira
{
    friend class Novostroi; //Объявление дружественного класса
private:
    Kvartira(int, int, double, int, int);
    Kvartira *NEXT; //Адрес следующей квартиры в списке
    int Number; //Номер квартиры
    int Floor; //Этаж квартиры
    double Square; //Площадь квартиры
    int Room; // Количество комнат
    int Price; // Цена
    void Out(); //Вывод информации о клиенте
    void Set(); //Ввод информации о клиенте
 
    ~Kvartira(); //Деструктор
};
 
 
Kvartira::Kvartira(int N = 0, int F = 0, double S = 0, int R = 0, int P = 0)
{
    Number = N;
    Floor = F;
    Square = S;
    Room = R;
    Price = P;
}
 
//вывод
void Kvartira::Out()
{
    cout << "Номер: " << Number << endl;
    cout << "Этаж: " << Floor << endl;
    cout << "Площадь: " << Square << endl;
    cout << "Количество комнат: " << Room << endl;
    cout << "Цена: " << Price << endl << endl;
}
//ввод
void Kvartira::Set()
{
    cout << endl << "*** Ввод информации о квартире ***";
    cout << endl << "Номер: ";
    cin >> Number;
    cout << endl << "Этаж: ";
    cin >> Floor;
    cout << endl << "Площадь: ";
    cin >> Square;
    cout << endl << "Количество комнат: ";
    cin >> Room;
    cout << endl << "Цена: ";
    cin >> Price;
}
 
class Novostroi
{
public:
    Novostroi(const char*);
    double Percent; //деньги клиента
    void Sortir();//Сортировка квартир по возрастанию общей стоимости
    void OutAllClient(); //Вывод информации о всех квартирах
    void AddClient(); //Добавление новой квартиры в список
    ~Novostroi(); //Деструктор
 
private:
    int Count; //Количество квартир
    char* Kvartirki; //Название новостройки
    Kvartira* BEGIN; //Адрес первой квартиры в списке клиентов
    Kvartira* END; //Адрес последней квартиры в списке клиентов
};
 
Novostroi::Novostroi(const char* K  )
{
    Count = 0;
    BEGIN = END = NULL;
    Kvartirki = new char[strlen(K) + 1];
    strcpy(Kvartirki, K);
    Percent = 0;
}
 
 
void Novostroi::AddClient()
{
    if (Count)
    {
        END->NEXT = new Kvartira;
        END = END->NEXT;
        END->Set();
        END->NEXT = NULL;
    }
    else {
        BEGIN = new Kvartira;
        END = BEGIN;
        END->NEXT = NULL;
        END->Set();
    }
    Count++;
}
 
void Novostroi::Sortir()
{
    cout << "*** Информация о квартирах " << Kvartirki << " ***" << endl;
    Kvartira* Vrem = BEGIN;
 
    while (Vrem)
       {
           if ((*Vrem).Price > Vrem->NEXT->Price)
           {
               
                     Vrem = Vrem->NEXT;
            }
 
    }
}
        
void Novostroi::OutAllClient()
{
Kvartira* Vrem = BEGIN;
cout<<"*** Информация о квартирах "<<Kvartirki<<" ***"<<endl;
             while (Vrem) 
        {
             Vrem->Out();
            Vrem=Vrem->NEXT;
        }
}
 
Novostroi::~Novostroi()
{
    if (Count)
    {
        Kvartira* Vrem = BEGIN;
        while (Vrem)
        {
            Vrem = BEGIN->NEXT;
            delete BEGIN;
            BEGIN = Vrem;
        }
    }
}
 
Kvartira::~Kvartira()
{}
 
 
int main()
{ 
    setlocale(LC_ALL, "Rus");
    Novostroi A("Счастливая семья");
    int k = 1;
    while (k != 4)
    {
        system("cls");
        cout << "1.Ввод информации о квартире" << endl;
        cout << "2.Вывод информации о квартирах" << endl;
        cout << "3.Список квартир для покупки" << endl;
        cout << "4.Выход" << endl;
        cin >> k;
        switch (k)
        {
        case 1: {
            char c = 0;
            while (c != 27)
            {
                cin.sync();
                A.AddClient();
                cout << endl << "Для завершения ввода нажмите Esc..." << endl;
                c = _getch();
            }
            system("pause");
            break;
        }
 
        case 2: {
            A.Sortir();
            A.OutAllClient();
            system("pause");
            break;
        }
 
        }//switch
    }//while
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2021, 13:42
Ответы с готовыми решениями:

Сортировка в классе
Описать 2 метода (пузырька и выбора) в одном классе

Сортировка в классе
Задание: Описать класс WORKER, содержащий следующие поля: •фамилия и инициалы работника;...

Сортировка строк в классе
Есть готовая программа. Нужно результаты выбить в алфавитном порядке. #include &lt;iostream&gt; using...

Сортировка массива в классе
Здравствуйте форумчане. Хотел бы у вас спросить насчет сортировки в методе. Я хотел запихнуть свой...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2021, 13:42
Помогаю со студенческими работами здесь

Сортировка по алфавиту в классе
Всем привет, недавно тут спрашивал по поводу классов, вот появилась новая проблема: В классе...

Сортировка строк в классе
У меня есть класс: class Planet { public: Planet(int l_name = 20); // конструктор...

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

Сортировка qsort в классе
Здравствуйте! Все никак не получается, решил обратиться за помощью. Как мне отсортировать массив...

Сортировка строки по алфавиту в классе String
Здравствуйте! Создал класс Stroka: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std;...

Сортировка элементов массива объектов в классе
Здравствуйте! Помогите пожалуйста найти ошибку в коде - я уже 2 дня над ней бьюсь... Необходимо...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru