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

в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени - C++

Восстановить пароль Регистрация
 
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
12.04.2013, 22:04     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #1
Помогите пожалуйста: в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени

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
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
struct People
    {
        char Name[20];
        char Surname[20];
        int Old;
        char gruppa[20];
        int zachetka;
        
        
    
    
    };
 
    
void main()
{
    SetConsoleOutputCP(1251);
    int a;
    
    
    People p1[10]={
        {"Nikita","Zhirov",1996,"АПВС-7-01",7583},
        {"Alexey","Medvedev",1996,"АПВС-7-01", 9158},
        {"Anton","Solovey",1994,"АПВС-7-01", 7102},
        {"Mihail","Golovin",1995,"АПВС-7-01",8725},
        {"Alexand","Melnik",1995,"АПВС-7-01",7610},
        {"Nikita","Avraimov",1996,"АПВС-7-01",5201},
        {"Anton","Zima",1996,"АПВС-7-01",5480},
        {"Vladislav","Golovin",1994,"АПВС-7-01",2570},
        {"Mark","Webb",1985,"АПВС-7-01",2201},
        {"Anton","Aniskov",1995,"АПВС-7-01",2545}
 
                };
    do{
    cout<<endl<<"1-Поиск по году рождения"<<endl<<"2-Поиск по первой букве имени"<<endl<<"3-Поиск по первой букве фамилии"<<endl<<"4-Поиск по номеру зачётки"<<endl<<"5-Вывод всей информации"<<endl<<"6-Сортировка по имени"<<endl<<"7-Поиск по номеру группы"<<endl<<"8-Выход"<<endl;
    cout<<endl<<"Ваш выбор: ";
    cin>>a;
    switch (a)
    {
    case 1:system ("Cls");
        int g;
        cout<<"Введите искомый год: ";
        cin>>g;
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
        for(int i=0; i<10; i++)
        {
            if(p1[i].Old==g)
            {
                cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
            }
        }
        break;
    case 2:system ("Cls");
        char q;
        cout<<"Введите первую букву имени: ";
        cin>>q;
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
        for(int i=0; i<10; i++)
        {
            if(p1[i].Name[0]==q)
            {
                cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
            }
        }
        break;
    case 3:system ("Cls");
        char y;
        cout<<"Введите первую букву фамилии:";
        cin>>y;
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
            for(int i=0; i<10; i++)
            {
                if(p1[i].Surname[0]==y)
                {
                    cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
                }
            }
            break;
    case 4:system ("Cls");
        int t;
        cout<<"Введите номер зачётки: ";
        cin>>t;
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
            for(int i=0; i<10; i++)
            {
                if(p1[i].zachetka==t)
                {
                    cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
                }
            }
            break;
 
    case 5:system ("Cls");
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
    for(int j=0; j<10; j++)
    {
        cout<<p1[j].Name<<"\t\t"<<p1[j].Surname<<"\t\t"<<p1[j].Old<<"\t\t"<<p1[j].gruppa<<"\t\t"<<p1[j].zachetka<<"\t\t"<<endl;
    }
    break;
    case 6:system ("Cls");
        char tmp[15];
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
        for(int g=0; g<9; g++)
    {
        for(int i=g+1; i<10; i++)
        {
            if(strcmp(p1[g].Name,p1[i].Name)>0)
            {
                strcpy(tmp, p1[i].Name);
                strcpy(p1[i].Name, p1[g].Name);
                strcpy(p1[g].Name, tmp);
            }
        }
    }
        for(int i=0; i<10; i++)
        {
            cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
        }
        break;
    case 7:system ("Cls");
        char l[20];
        cout<<"Введите номер группы: ";
        cin>>l;
        cout<<"Имя \t\t"<<"Фамилия \t"<<"Год рождения \t\t"<<"Группа \t\t"<<"Номер зачётки \t\t"<<endl<<"-------------------------------------------------------------------------------------------"<<endl;
            for(int i=0; i<10; i++)
            {
                if(p1[i].gruppa==l)
                {
                    cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
                }
            }
            break;
        
 
 
    
    }
    }
 
    while (a!=8);
    system ("Cls");
    cout<<"EXIT"<<endl;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 22:04     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
Посмотрите здесь:

Case C++
C++ If и case
C++ Оптимальная конструкция switch-case-while / while-switch-case
C++ задачу с оператора выбора case очень нужно : Пусть элементами равностороннего треугольника являются: 1.Сторона а; 2.Площад
C++ switch-case, как писать в самом case
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
12.04.2013, 23:57     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #2
nemesises, а это ваш код?
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:02  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, а это ваш код?
Да.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:04     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #4
nemesises, значит вы все это написали, но на обычной сортировке погорели?
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:07  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #5
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, значит вы все это написали, но на обычной сортировке погорели?
Да, бывает и такое ) Имя я отсортировал, а с именем должны сортироваться и все другие пункты
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:11     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #6
nemesises, так если вы по имени отсортировали, то разве поиск так трудно сделать? Идем по массиву и сравниваем с переменной нужные поля.
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:13  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #7
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, так если вы по имени отсортировали, то разве поиск так трудно сделать? Идем по массиву и сравниваем с переменной нужные поля.
У меня в строке : if(p1[i].gruppa==l) подчёркивается знак равенства, что я только не пробовал, никак не получилось
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:18     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #8
nemesises, потому что группа у вас массив символов, а вы хотите сравнить его с целым числом, итс нот райд Измените поля группа на целочисленный или сравнивайте с символом уже.
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:21  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #9
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, потому что группа у вас массив символов, а вы хотите сравнить его с целым числом, итс нот райд Измените поля группа на целочисленный или сравнивайте с символом уже.
C++
1
2
3
4
5
6
7
8
9
10
11
char* l=new char[20];
        cout<<"Введите номер группы: ";
        cin.getline(l,20);
for(int i=0; i<10; i++)
            {
                if(p1[g].gruppa==l[i])
                {
                    cout<<p1[i].Name<<"\t\t"<<p1[i].Surname<<"\t\t"<<p1[i].Old<<"\t\t"<<p1[i].gruppa<<"\t\t"<<p1[i].zachetka<<"\t\t"<<endl;
                }
        }   
        }
так нормально?
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:24     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #10
nemesises, ну запустите, я же не умею в голове компилировать.
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:26  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #11
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, ну запустите, я же не умею в голове компилировать.
бесконечно выполняется
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:28     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #12
nemesises, лучше сравнить с помощью strcmp, чем по символам.
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:38  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #13
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, лучше сравнить с помощью strcmp, чем по символам.
не получилось
yutr777
 Аватар для yutr777
4 / 4 / 0
Регистрация: 07.04.2013
Сообщений: 85
13.04.2013, 00:43     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #14
Так, норм задачка, гляньте, скажите что да как
ребят, помогите решить, спасибо все заранее, в репу молотком!
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:44     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #15
nemesises, что не получилось? функция элементарная, возвращает 3 значения, (0, <0, >0).
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:48  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #16
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, что не получилось? функция элементарная, возвращает 3 значения, (0, <0, >0).
у меня постоянно подчёркивает переменную l
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 01:06     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #17
nemesises, у меня все нормально работает, l не подчеркивает.
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 01:08  [ТС]     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #18
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, у меня все нормально работает, l не подчеркивает.
а можешь написать свой код?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 01:28     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
Еще ссылки по теме:

Как сделать подобие case из Pascal в C++ C++
C++ Switch case внутри switch case

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

Или воспользуйтесь поиском по форуму:
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
13.04.2013, 01:28     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени #19
А может стоит попробовать использовать std::sort и std::find. Хотя здесь это (std::map) вряд ли подойдёт, всё же оставлю, может быть и пригодиться.
Yandex
Объявления
13.04.2013, 01:28     в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
Ответ Создать тему
Опции темы

Текущее время: 05:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru