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

Сортировка, не изменяя структуру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. http://www.cyberforum.ru/cpp-beginners/thread561961.html
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число.
C++ Структура TRAIN(считывание из файла) Знаю что много тем на эту структуру TRAIN, но я не нашел именно эту программу.(помогите доработать эту программу) Нужно: В файле содержится информация о железнодорожном расписании (номер поезда,... http://www.cyberforum.ru/cpp-beginners/thread561948.html
C++ Массив: вставить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива
нужно втавить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива.Учусть ситуацию если один отрицательный элемент или нет вообще отрицат элементов вот помогите...
C++ программа, которая считывает текст из файла
Написать программу, которая считывает текст из файла и выводит на экран толь* ко предложения, содержащие заданное с клавиатуры слово. #include <iostream> #include <fstream> #include...
C++ Описать и вывести массив http://www.cyberforum.ru/cpp-beginners/thread561916.html
Описать и вывести массив, содержащий 10 записей следующей структуры: фамилия, возраст, № студенческого билета, средняя оценка за последнюю сессию Вывести массив в табличном виде. выдает ошибку и...
C++ Написать программу для вычисления площади выпуклого Написать программу для вычисления площади выпуклого четырехугольника ABCD, заданного длинами сторон AB, BC, CD, DA и диагональю АС. Диагональ делит четырехугольник на два треугольника площадь каждого... подробнее

Показать сообщение отдельно
nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33

Сортировка, не изменяя структуру - C++

30.04.2012, 11:05. Просмотров 940. Ответов 21
Метки (Все метки)

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
#include <conio.h>
#include <string.h>
#include <stdio.h>
 
struct autopark{          //объявление структуры autopark
char brand[30];      //марка автобуса
char date[30];      //год выпуска автобуса
char number[10];          //маршрут автбуса
}a[30];   
int addition(int i);    //добавление данных
int delet(int d);       //удаление данных
void showing(int n);    //показ данных
void sort(int i);     //сортировка данных
 
int main()
{
int key,d=0;
while(1)
 {
 
printf("\nMenu");                 
printf("\n1.Add the data");
printf("\n2.Display all details");
printf("\n3.Deleting data");
printf("\n4.Sort the data");
printf("\n\nTo exit, press Esc \n\n");
key=getch(); 
 
if(key==27) break;
 
switch(key)      //Выбор действия
{ 
case 49: d=addition(d);break;
case 50: showing(d);break;
case 51: d=delet(d);break;
case 52: sort(d);break;
}
getch();
}
}
 
int addition(int i)     //функция для добавления данных
{
puts("Enter the brand of the bus: ");
scanf("%s",a[i].brand);
puts("Enter the year the bus");
scanf("%s",a[i].date);
puts("Enter the number of bus");
scanf("%s",a[i].number);
return i+1;
}
int delet(int n)      //функция для удаления данных
{
int i,d;
printf("\nEnter the number of write to remove: ");
scanf("%d",&d);
for (i=d-1;i<n-1;i++)
{
strcpy(a[i].brand,a[i+1].brand);
strcpy(a[i].date,a[i+1].date);
strcpy(a[i].number,a[i+1].number);
return n-1;
}
}
 
void showing(int n)    //функция показа данных
{
int i;
printf("\n_________________________________\n");
printf("|N |Brand     |Year      |Number|\n");
printf("_________________________________\n");
for (i=0;i<n;i++)
 {
printf("|%-2d|%-10s|%-10s|%-3s   |\n",i+1,a[i].brand,a[i].date,
a[i].number);
}
printf("_________________________________");
}
 
void sort(int i)    //функция сортировки данных
{
int n,temp,button;
printf("\nMenu");                 
printf("\n1.Brand");
printf("\n2.Date");
printf("\n3.Number");
printf("\n\nTo exit, press Esc \n\n");
button=getch(); 
 
if(button==29) break;
 
switch(button)      //Выбор действия
{ 
case 49: for(int i=0;i<30;i++)
    {
            for(int j=i+1;j<30;j++)
            {
                    if(a[i].brand>a[j].brand)
                    {
                           temp=i;;
                           i=j;
                           j=temp;
                    }
            }
    };break;
case 50: for(int i=0;i<30;i++)
    {
            for(int j=i+1;j<30;j++)
            {
                    if(a[i].date>a[j].date)
                    {
                           temp=i;;
                           i=j;
                           j=temp;
                    }
            }
    };break;
case 51: for(int i=0;i<30;i++)
    {
            for(int j=i+1;j<30;j++)
            {
                    if(a[i].number>a[j].number)
                    {
                           temp=i;;
                           i=j;
                           j=temp;
                    }
            }
    };break;
}
}
Нужно, чтобы оно сортировало порядковый номер записи в структуре, но не получается. Не понимаю как это передать в функцию показа данных. И ещё не работает break в функции сортировки, когда if(button==29) break;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.