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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BeeTrain
0 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 4
#1

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

10.03.2014, 12:02. Просмотров 210. Ответов 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
#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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 12:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Применить другую сортировку (C++):

Какую сортировку массива применить, чтобы посчитать количество перестановок двух соседних элементов? - C++
Всем привет. Я раньше создавал подобную тему, но решил создать новую. Вопрос следующий. Скажите, каким видом сортировки массива можно...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом - C++
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; #include...

Подскажите как эту сортировку переделать в сортировку по алфавиту? - C++
Подскажите как эту сортировку переделать в сортировку по алфавиту?? vector&lt;std::pair&lt;string, int&gt;&gt; popularAuthor; ...

Сортировку вставками меняем на сортировку слиянием - C++
Код программы выполняет сортировку массива вставками. Как сюда вставить код сортировки массива методом слияния, вместо метода вставками,что...

Как применить strcat? - C++
char* strcat(char *s1, const char *s2) зачем нужны * перед strcat, s1 и s2? И как можно эту функцию применить?

Применить генератор к shuffle - C++
Всем привет. Нужно перемешать массив, как можно с меньшей вероятностью повторения одной и тойже последовательности элементов после...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2014, 12:02
Привет! Вот еще темы с ответами:

Можно ли применить find_if к вектору - C++
Можно ли применить find_if к вектору? Нужно найти среди компонент вектора первое число, которое больше задаваемой величины (в векторе...

Рекурсивная функция. Как применить - C++
Для заданного одномерного массива X из N элементов проверить, что для всех элементов массива выполняется условие –10&lt;x3i&lt;20. Рекурсивную...

Применить XOR к бинарному файлу - C++
Добрый день, прошу помочь. Имеется некий массив бинарных данных, точнее файл - который надо побайтово конвертировать и записать в...

Как применить функцию в потомке - C++
Есть 3 класса: A предок B, B предок C. У А есть функция foo, к которой хочет обратиться метод blah функции С. Помимо этого, blah хочет...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru