Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
#1

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

12.04.2013, 22:04. Просмотров 759. Ответов 18
Метки нет (Все метки)

Помогите пожалуйста: в 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;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 22:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени (C++):

При выборе case 1 всегда черный экран? как правильно указать путь в case
Доброго времени суток) проблема с компиляций когда при компилирование...

switch-case, как писать в самом case
Такс дело вот в чём,прога работает всё хорошо,вот только мне не нравится как...

Как сделать подобие case из Pascal в C++
Есть программа, в ней 3 задачи, как сделать как в паскале что бы при открытии...

Как сделать в case множество значений?
Как сделать в case множество значений? int age; switch (age) { case...

Оптимальная конструкция switch-case-while / while-switch-case
Имеется конструкция типа: switch() { case 1: while() { ... }

Организовать поиск записей по имени и по номеру телефона
Кто может, помогите пожалуйста! Дана задача: Создать динамический массив, что...

18
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
12.04.2013, 23:57 #2
nemesises, а это ваш код?
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:02  [ТС] #3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, а это ваш код?
Да.
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:04 #4
nemesises, значит вы все это написали, но на обычной сортировке погорели?
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:07  [ТС] #5
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, значит вы все это написали, но на обычной сортировке погорели?
Да, бывает и такое ) Имя я отсортировал, а с именем должны сортироваться и все другие пункты
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:11 #6
nemesises, так если вы по имени отсортировали, то разве поиск так трудно сделать? Идем по массиву и сравниваем с переменной нужные поля.
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:13  [ТС] #7
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, так если вы по имени отсортировали, то разве поиск так трудно сделать? Идем по массиву и сравниваем с переменной нужные поля.
У меня в строке : if(p1[i].gruppa==l) подчёркивается знак равенства, что я только не пробовал, никак не получилось
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:18 #8
nemesises, потому что группа у вас массив символов, а вы хотите сравнить его с целым числом, итс нот райд Измените поля группа на целочисленный или сравнивайте с символом уже.
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:21  [ТС] #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;
                }
        }   
        }
так нормально?
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:24 #10
nemesises, ну запустите, я же не умею в голове компилировать.
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:26  [ТС] #11
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, ну запустите, я же не умею в голове компилировать.
бесконечно выполняется
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:28 #12
nemesises, лучше сравнить с помощью strcmp, чем по символам.
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:38  [ТС] #13
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, лучше сравнить с помощью strcmp, чем по символам.
не получилось
0
yutr777
5 / 5 / 3
Регистрация: 07.04.2013
Сообщений: 85
13.04.2013, 00:43 #14
http://www.cyberforum.ru/cpp-beginners/thread836297.html
ребят, помогите решить, спасибо все заранее, в репу молотком!
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:44 #15
nemesises, что не получилось? функция элементарная, возвращает 3 значения, (0, <0, >0).
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:48  [ТС] #16
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, что не получилось? функция элементарная, возвращает 3 значения, (0, <0, >0).
у меня постоянно подчёркивает переменную l
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 01:06 #17
nemesises, у меня все нормально работает, l не подчеркивает.
0
nemesises
0 / 0 / 2
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 01:08  [ТС] #18
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, у меня все нормально работает, l не подчеркивает.
а можешь написать свой код?
0
AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
13.04.2013, 01:28 #19
А может стоит попробовать использовать std::sort и std::find. Хотя здесь это (std::map) вряд ли подойдёт, всё же оставлю, может быть и пригодиться.
0
13.04.2013, 01:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 01:28
Привет! Вот еще темы с решениями:

задачу с оператора выбора case очень нужно : Пусть элементами равностороннего треугольника являются: 1.Сторона а; 2.Площад
Помогите решить задачу с помощью оператора выбора case очень нужно плиз: Пусть...

Switch case внутри switch case
Привет всем! Нужна помощь. Пишу калькулятор с консольным меню. Так вот,...

Как сделать чтобы после выбора "case" менюшка открывалась заново?
Как сделать чтобы после выбора &quot;case&quot; менюшка открывалась заново и можно было...

Структуры (Сделать поиск человека по номеру телефона)
Задание: из файла считать в структуру фамилию, имя, телефон, дату рождения....


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

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

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