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

Применить другую сортировку - C++

Восстановить пароль Регистрация
 
BeeTrain
0 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 4
10.03.2014, 12:02     Применить другую сортировку #1
Здравствуйте! Помогите пожалуйста. Программа готова, но надо поменять метод сортировки. Вот текст задания:
Создать структурный шаблон, хранящий сведения о квартире: площадь, количество комнат, этаж, стоимость за квадратный метр, адрес. По требованию пользователя рассчитать среднюю стоимость всех квартир, организовать поиск данных о квартирах с требуемым количеством комнат и указанием этажа (данные отсортировать по стоимости квартиры), данные о квартирах, стоимость которых не превышает указанной.

Программа:
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
#include <cstdlib>
#include <iostream>
#include <cstdio>
const int n = 3; //Задаем константой количество записей
 
//Объявляем класс квартира
class flatroom 
{
public:
   double square; //Площадь
   int count_rooms; //Количество комнат 
   int floor; // этаж
   double price; // цена за квадратный метр
   char address[40];    // адрес
}; 
 
using namespace std; //подключаем пространство имен, которое нам понадобится для потокового ввода-вывода
 
    
 
 
int main(int argc, char *argv[])
{
    
    setlocale(LC_ALL,"Russian"); // устанавливаем русскую локализацию
    flatroom flat[n]; // объявляем массив объектов класса
    for (int i = 0; i < n; i++) // вводим с клавиатуры данные о квартире
    {
      cout << "Информация о " << i+1 << "-й квартире: " << endl;
      cout << "Площадь: ";
      cin >> flat[i].square;
      cout << "Количество комнат: ";
      cin >> flat[i].count_rooms;
      cout << "Этаж: ";
      cin >> flat[i].floor;
      cout << "Цена за квадратный метр: ";
      cin >> flat[i].price;
      cout << "Адрес: ";
      cin >> flat[i].address;  
    }
    
    
    double average = 0; // обнуляем среднее значение стоимости квартиры
   
           for (int i = 0; i < n; i++) // в цикле находим суммарную стоимость всех квартир
           average+=flat[i].square * flat[i].price;
           average/=n; // делим ее на количество квартир
           cout << "Средняя стоимость квартиры = " << average << endl; // выводим среднее значение на экран
   
    int count_rooms;
    int floor;
    // вводим данные, которые нужны нам будут для поиска
    cout << "Введите количество комнат для искомой квартиры: ";
    cin >> count_rooms;
    cout << "Введите номер этажа для искомой квартиры: ";
    cin >> floor;
    flatroom flat_new[n]; // объявляем массив объектов класса
    int count = -1;
    for (int i = 0; i < n; i++) // если введенное количество комнат и этаж соответствуют нашим квартирам
    if ((flat[i].count_rooms == count_rooms) && (flat[i].floor == floor))
    {
       count++;
       flat_new[count] = flat[i];                         // записываем их в новый массив
    }
    // сортируем по возрастанию стоимости
    for (int i = 0; i < count-1; i++)
    for (int j = i+1; j < count; j++)
        if (flat_new[i].square * flat_new[i].price > flat_new[j].square * flat_new[j].price)
         {
                               // для этого проходим по массиву, делаем сравнение стоимостей и менем местами
           flatroom f = flat_new[i];
           flat_new[i] = flat_new[j];
           flat_new[j] = f;                      
         }
         // выводим на экран результат
         cout << "Количество квартир, удовлетворяющих заданным условиям: " << count + 1<< endl;
    for (int i = 0; i <= count; i++)
    cout << "Площадь: " << flat_new[i].square << "    Количество комнат: " << flat_new[i].count_rooms << "    Этаж: " << flat_new[i].floor <<
       "    Цена за квадратный метр: " << flat_new[i].price << "   Адрес: " << flat_new[i].address << endl;
    double flat_price;
    cout << "Введите стоимость, которую не должна превышать квартира: ";
    cin >> flat_price;
    // находим те квартиры, которые не превышают введенную с клавиатуры стоимость
    for (int i = 0; i < n; i++)
     if (flat[i].price * flat[i].square <= flat_price)
       cout << "Площадь: " << flat[i].square << "    Количество комнат: " << flat[i].count_rooms << "    Этаж: " << flat[i].floor <<
       "    Цена за квадратный метр: " << flat[i].price << "   Адрес: " << flat[i].address << endl;   
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 12:02     Применить другую сортировку
Посмотрите здесь:

C++ Можно ли применить find_if к вектору
Применить функцию C++
Какую сортировку массива применить, чтобы посчитать количество перестановок двух соседних элементов? C++
C++ Как применить strcat?
Сортировку вставками меняем на сортировку слиянием C++
Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом C++
C++ Рекурсивная функция. Как применить
C++ Применить генератор к shuffle

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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