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

Упорядочивание массива структур по возрастанию

25.11.2009, 12:53. Показов 3393. Ответов 7
Метки нет (Все метки)

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
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
#include <iostream.h>
#include <windows.h>
 
// ================ описание типов данных ======================
 
// ------- описание структурного типа данных МАШИНА -----------
struct CAR {
  char Nomer[15];          // гос номер
  char MarkaModel[15];     // Марка Модель
  char Name[15];           // Фамилия И. О.
  int Number;              // год выпуска
};
 
// ------- описание структурного типа данных Гаи ------------
// максимальное количество машин
#define MAX_CAR 30
struct GAI {
  int N;                 // Количество машин
  CAR Car[MAX_CAR];      // Массив машин
};
 
// =============== описание прототипов функций =================
 
// Ввод информации о машине с клавиатуры
CAR InputCar(void);
 
// Вывод информации о машине на экран
void OutputCar(CAR Car);
 
// Ввод информации о гаи с клавиатуры
void InputGai(GAI *Gai);
 
// Вывод информации о гаи на экран
void OutputGai(GAI Gai);
 
 
// =============== основная функция программы ==================
 
int main(int argc, char* argv[])
  {
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  GAI Gai;
  InputGai(&Gai);
  OutputGai(Gai);
 
  Sleep(7654);
  return 0;
  }
 
// ============ Ввод информации о машине с клавиатуры ========
CAR InputCar(void)
  {
  CAR car;
  cout << "Введите гос номер ====> ";
  cin >> car.Nomer;
  cout << "Введите Марка Модель ========> ";
  cin >> car.MarkaModel;
  cout << "Введите Фамилия И. О. ===> ";
  cin >> car.Name;
  cout << "Введите год выпуска ===> ";
  cin >> car.Number;
  return car;
  }
 
// ============ Вывод информации о машине на экран ===========
void OutputCar(CAR Car)
  {
  cout.width(8);
  cout.fill('0');
  cout << Car.Nomer << " "
       << Car.MarkaModel << " "
       << Car.Name << " "
       << Car.Number << " \n";
  }
 
// ============ Ввод информации о гаи с клавиатуры ==========
void InputGai(GAI *Gai)
  {
  cout << "Введите Количество машин ===> ";
  cin >> Gai->N;
    for (int i=0;i<Gai->N;i++)
    {
    cout << "Введите информацию о " << (i+1) << "-ой машине\n";
    Gai->Car[i]=InputCar();
    }
  }
 
// ============ Вывод информации о гаи на экран =============
car.Number.sort();
  void OutputGai(GAI Gai)
  {
  for(int i=0;i<Gai.N;i++) OutputCar(Gai.Car[i]);
  }

Но я не знаю, как реализовать вот это "Упорядочьте по возрастанию года выпуска автомобиля. Выведите список автомобилей указанной марки."

Помогите пожалуйста, заранее большое спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2009, 12:53
Ответы с готовыми решениями:

Упорядочивание массива структур по нескольким полям
Есть программа,которая сортирует студентов по году рождения. #include &lt;conio.h&gt; #include...

Сортировка массива структур по возрастанию
Здравствуйте помогите осуществить сортировку, есть массив tabletrue структур whd, который надо...

Сортировка массива структур по возрастанию
Помогите, пожалуйста. Нужно отсортировать данную структуру по номеру группы (по возрастанию). ...

Сортировка массива структур по возрастанию одного из полей
Всем привет, Есть структура struct Taksopark//создание структуры { char vid_avto; int...

7
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
25.11.2009, 13:08 2
Но я не знаю, как реализовать вот это "Упорядочьте по возрастанию года выпуска автомобиля.

C++
1
2
struct year_less : public std::binary_function<CAR, CAR, bool>
{ boost operator()(const CAR& c1, const CAR& c2) const { return c1.Number < c2.Number; } };
CAR cars[100];
std::sort(cars, cars + 100, year_less());
1
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 14
25.11.2009, 14:07  [ТС] 3
Цитата Сообщение от Rififi Посмотреть сообщение
C++
1
2
struct year_less : public std::binary_function<CAR, CAR, bool>
{ boost operator()(const CAR& c1, const CAR& c2) const { return c1.Number < c2.Number; } };
CAR cars[100];
std::sort(cars, cars + 100, year_less());
И что с этими строками делать? Просто вставил в программу, вылазит ошибка: "Type name expected"
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
25.11.2009, 14:14 4
http://codepad.org/gUzxsKNZ
1
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 14
25.11.2009, 14:22  [ТС] 5
Цитата Сообщение от Rififi Посмотреть сообщение
Спасибо, но всё равно вылазит эта ошибка, видимо не хочет фурычить совместно в моей программе (
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
25.11.2009, 14:27 6
каким компилятором ты пытаешься откомпилировать прогу?
0
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 14
25.11.2009, 15:34  [ТС] 7
Цитата Сообщение от Rififi Посмотреть сообщение
каким компилятором ты пытаешься откомпилировать прогу?
Builder 6

Добавлено через 56 минут
О! Решил свою проблему благодаря следующей функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void sortirovka (GAI *Gai)
{
    CAR e;
        for (int i = 1; i < Gai->N; i++)
        {
                for (int j = i - 1; j >= 0 && Gai->Car[j+1].Number > Gai->Car[j].Number; j--)
                {
                        e = Gai->Car[j+1];
                        Gai->Car[j+1] = Gai->Car[j];
                        Gai->Car[j] = e;
                }
        }
Сортирует по возрастанию. Тему можете удалить, но если кому пригодится, читайте.
0
1 / 1 / 0
Регистрация: 05.12.2016
Сообщений: 43
15.10.2017, 18:14 8
а как сделать эту программу, чтобы считывала данные с файла и мы задавали условие, вывести все машины например 2000 года, или вывести машины этой марки???
0
15.10.2017, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2017, 18:14
Помогаю со студенческими работами здесь

Упорядочивание элементов для вектора из структур
Есть функция: void SORT(AUTO a, int n) { sort(a, a + n, (AUTO x, AUTO y) { return x.engine &gt;...

Упорядочивание по возрастанию элементов последовательности. (Из Си в Си++)
Спасибо) Вот еще одна задача: Написать программу, которая упорядочивает по возрастанию элементы...

Упорядочивание по возрастанию каждого столбца матриц
Очень прошу всех помочь, помогите пожалуйста написать программу для упорядочивания по возрастанию...

Выполнить упорядочивание каждого столбца матрицы по возрастанию
Задачки по фунциям и массивам. все во вложении. прошу помощи.


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

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