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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Frog
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 14
#1

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

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

Прошу прощения за создание новой темы, но у меня большая просьба помогите пожалуйста решить задачу на Си++.

Разработайте программу для обработки структурных типов данных. Реализуйте отдельные функции для ввода, вывода, поиска информации по условию, сортировки по признаку:
"База данных ГАИ: гос.номер АВТОМОБИЛЯ, марка, модель, Фамилия И.О. владельца, год выпуска. Упорядочьте по возрастанию года выпуска автомобиля. Выведите список автомобилей указанной марки."

Я написал основную часть программы:

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

Упорядочивание массива - C++ Builder
1) Дан одномерный массив, размер которого задается пользователем через компонент SpinEdit 2) Этот массив вынимается из 1-ой строки строки...

Отсортировать массив структур по возрастанию значения заданного поля - C++ Builder
#include &lt;vcl.h&gt; #pragma hdrstop #pragma argsused #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include...

Создание массива структур - C++ Builder
Добрый день. Умею создавать только фиксированное количество структур, так: struct UserInfo { UnicodeString Name; ...

Сортировка массива структур - C++ Builder
Доброе время суток. Есть такая проблема: Существует массив структур zap zapis, cама структура struct zap { ...

Реализация массива структур - C++ Builder
Как правильно объявить если я хочу создать какую-то структуру, допустим struct tovar { string name; int cost; }; и потом...

Сохранение массива структур - C++ Builder
Всем привет! Не могу придумать, как удобнее сохранить массив структур в файл. Есть массив структрур: typedef struct...

7
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
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
Frog
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
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
25.11.2009, 14:14 #4
http://codepad.org/gUzxsKNZ
1
Frog
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 14
25.11.2009, 14:22  [ТС] #5
Цитата Сообщение от Rififi Посмотреть сообщение
Спасибо, но всё равно вылазит эта ошибка, видимо не хочет фурычить совместно в моей программе (
0
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
25.11.2009, 14:27 #6
каким компилятором ты пытаешься откомпилировать прогу?
0
Frog
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
Алекс9999
1 / 1 / 0
Регистрация: 05.12.2016
Сообщений: 20
15.10.2017, 18:14 #8
а как сделать эту программу, чтобы считывала данные с файла и мы задавали условие, вывести все машины например 2000 года, или вывести машины этой марки???
0
15.10.2017, 18:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2017, 18:14
Привет! Вот еще темы с ответами:

Создание и заполнение массива структур - C++ Builder
подскажите пожалуйста как правильно сделать массив структур(без форм)

Создание динамического массива структур и его удаление - C++ Builder
Господа, поясните пожалуйста следующий момент: создаю структуру: struct TTagList { WideString Comment; int...

Сортировка содержимого массива по возрастанию - C++ Builder
Есть массив с целыми числами. Нужно перенести все содержимое в другой массив, но уже по возрастанию, т.е. если в первом массиве идут числа...

Объявление и определение глобального массива структур. Доступ к нему из любого cpp. Как? - C++ Builder
Вот такая тема. Есть файл BazaOfProgram.h //--------------------------------------------------------------------------- ...


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

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

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