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

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

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

Сортировка структур - C++

21.11.2009, 20:35. Просмотров 874. Ответов 4
Метки нет (Все метки)

Задание такое:
Разработайте программу для обработки структурных типов данных. Реализуйте отдельные функции для ввода, вывода, поиска информации по некоторому условию, сортировки по некоторому признаку.

Книжный МАГАЗИН: автор КНИГИ, название, год издания, цена, количество экземпляров. Упорядочьте книги по убыванию год издания. Выведите список книг указанного автора.


проблема с функцией sort, т.е. при выборе варианта "Сортировка" книги выводятся в исходном порядке.
подскажите, где ошибка? заранее, спасибо

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
#include <iostream.h>
#include <windows.h>
 
struct Book {
  char Author[100];
  char Title[100];
  int Year;
  int Price;
  int Number;
};
 
#define MAX_BOOK 100
struct Shop {
  char Name[50];            // Название магазина
  int N;                    // Количество книг
  Book book1[MAX_BOOK];     // Массив книг
};
 
// Вывод книг по автору
void outpa (Shop Shop1)
{
bool prov=false;
char s[20];
cout << "Введите фамилию автора"<<endl;
cin >> s;
//cout<<"Список книг данного автора :"<<endl;
  for (int i=0; i<Shop1.N; i++)
    if (strcmp (s,Shop1.book1[i].Author)==0)
    { cout<<Shop1.book1[i].Title<<endl;
      prov=true; }
  if (prov==false) cout << "В магазине нет книг данного автора"<< endl;
}
 
// Cортировка книг по году издания
void sort (Shop *Shop1)
{
int min;
book1 buf;
for (int i=0; i<=Shop1.N; i++)
   {
   min=i;
   for (int j=i+1; j<=Shop1.N; j++)
   if (Shop1.book1[j].Year>Shop1.book1[min].Year) min=j;
   buf=Shop1.book1[i];
   Shop1.book1[i]=Shop1.book1[min];
   Shop1.book1[min]=buf;
    }
return;
}
 
// Ввод информации о книге с клавиатуры
Book InputBook (void)
  {
  Book book1;
  cout << "Введите автора: ";
  cin >> book1.Author;
  cout << "Введите название: ";
  cin >> book1.Title;
  cout << "Введите год издания: ";
  cin >> book1.Year;
  cout << "Введите цену: ";
  cin >> book1.Price;
  cout << "Введите количество книг: ";
  cin >> book1.Number;
  return book1;
  }
 
// Вывод информации о книге на экран
void OutputBook(Book book1)
  {
  cout << book1.Author << " ";
  cout << book1.Title << " ";
  cout << book1.Year << " ";
  cout << book1.Price<< " ";
  cout << book1.Number<< " " <<endl;
  }
 
// Ввод информации о магазине с клавиатуры
void InputShop(Shop *Shop1)
  {
  cout << "Введите название магазина:  ";
  cin >> Shop1->Name;
  cout << "Введите количество книг, не превышающее "<< MAX_BOOK << ": ";
  cin >> Shop1->N;
  cout << endl;
  for (int i=0; i<Shop1->N; i++)
    {
    cout << "Введите информацию о " << (i+1) << "-ой книге"<<endl;
    Shop1->book1[i]=InputBook();
    cout << endl;
    }
  }
 
// Вывод информации о магазине на экран
void OutputShop(Shop Shop1)
  {
  cout << "Список книг в магазине " << Shop1.Name << "\n";
  for(int i=0; i<Shop1.N; i++) OutputBook(Shop1.book1[i]);
  }
 
 
// Основная функция
  int main()
  {
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  int choose;
  Shop Shop1;
  InputShop(&Shop1);
 
  label:
  cout<<"Введите:"<<endl<<"1 - для вывода книг по фамилии автора"<<endl<<"2 - для сортировки книг по году издания"<<endl;
  cout<<"3 - для выхода из программы"<<endl;
  cin >> choose;
 
 
 switch (choose)
 {
 case 1:
 outpa(Shop1);
 break;
 
 case 2:
 sort(Shop1);
 OutputShop(Shop1);
 break;
 
 case 3:
 break;
 break;
 
 default:
 cout<<"Неверный ввод."<<endl;
 goto label;
 break;
 }
 
  system ("pause");
  return 0;
  }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2009, 20:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка структур (C++):

Блочная сортировка структур (Отсортировать массив структур по фамилии) - C++
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Сортировка структур - C++
Помогите составить программу, пожалуйста! Дана структура &quot;поезд&quot; с полями: Наименование маршрута Время отправления Время...

Сортировка структур - C++
Хочу отсортировать структуру по номеру поезда пузырьковым методом. Написал такой код: station *train = new station; station tmp;...

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

Сортировка структур - C++
Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи...

Сортировка структур - C++
1 Структура: № комнаты в общежитии, площадь, число жителей, балкон. Отсортировать по площади и вывести все, где жителей меньше 3. 2...

4
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
21.11.2009, 20:40 #2
C++
1
 min=i;
лучше
C++
1
min=0;
в начале функции
0
Gsom
1 / 1 / 0
Регистрация: 21.11.2009
Сообщений: 3
21.11.2009, 20:47  [ТС] #3
да вроде i все-таки должно быть.
с нулём, кстати, такой же результат
0
Gsom
1 / 1 / 0
Регистрация: 21.11.2009
Сообщений: 3
22.11.2009, 16:43  [ТС] #4
извиняюсь, разобрался сам
там детские ошибки были
0
khramoy
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 1
07.11.2012, 15:48 #5
Gsom, привет скинь пожалуйста ссылку на готовую прогу в С++
0
07.11.2012, 15:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 15:48
Привет! Вот еще темы с ответами:

Сортировка структур - C++
Доброго времени суток! Помогите, пожалуйста, с сортировкой односвязного списка структур. С структурах содержится дата (год, месяц, день)....

Сортировка структур - C++
Ведомости про участников конкурса имеют следующую информацию: имя, фамилия, секция, адрес, набранный бал. Стоит задание вывести информацию...

Сортировка структур - C++
struct Man{ char name; Название книги char avtor; Автор int day; год издания float kol; ...

Сортировка структур - C++
Подскажите с сортировкой. В функции SortSwap отсортировал по среднему значения. Но в самой структуре позиции не меняются. Спасибо. ...


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

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

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