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

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

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

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

12.04.2013, 22:04. Просмотров 656. Ответов 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 - C++
Доброго времени суток) проблема с компиляций когда при компилирование появляется экран выбора. Нажимаю 1 и все черный экран) пожалуйста...

switch-case, как писать в самом case - C++
Такс дело вот в чём,прога работает всё хорошо,вот только мне не нравится как записваю страны в кейсе,можно ли каким-нибудь образом писать в...

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

Как сделать в case множество значений? - C++
Как сделать в case множество значений? int age; switch (age) { case 1..12: //эта строка }

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
12.04.2013, 23:57 #2
nemesises, а это ваш код?
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:02  [ТС] #3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, а это ваш код?
Да.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:04 #4
nemesises, значит вы все это написали, но на обычной сортировке погорели?
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:07  [ТС] #5
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, значит вы все это написали, но на обычной сортировке погорели?
Да, бывает и такое ) Имя я отсортировал, а с именем должны сортироваться и все другие пункты
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:11 #6
nemesises, так если вы по имени отсортировали, то разве поиск так трудно сделать? Идем по массиву и сравниваем с переменной нужные поля.
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:13  [ТС] #7
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, так если вы по имени отсортировали, то разве поиск так трудно сделать? Идем по массиву и сравниваем с переменной нужные поля.
У меня в строке : if(p1[i].gruppa==l) подчёркивается знак равенства, что я только не пробовал, никак не получилось
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:18 #8
nemesises, потому что группа у вас массив символов, а вы хотите сравнить его с целым числом, итс нот райд Измените поля группа на целочисленный или сравнивайте с символом уже.
0
nemesises
0 / 0 / 0
Регистрация: 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
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:24 #10
nemesises, ну запустите, я же не умею в голове компилировать.
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:26  [ТС] #11
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, ну запустите, я же не умею в голове компилировать.
бесконечно выполняется
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:28 #12
nemesises, лучше сравнить с помощью strcmp, чем по символам.
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
13.04.2013, 00:38  [ТС] #13
Цитата Сообщение от yoghurt92 Посмотреть сообщение
nemesises, лучше сравнить с помощью strcmp, чем по символам.
не получилось
0
yutr777
5 / 5 / 0
Регистрация: 07.04.2013
Сообщений: 85
13.04.2013, 00:43 #14
Так, норм задачка, гляньте, скажите что да как
ребят, помогите решить, спасибо все заранее, в репу молотком!
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
13.04.2013, 00:44 #15
nemesises, что не получилось? функция элементарная, возвращает 3 значения, (0, <0, >0).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 00:44
Привет! Вот еще темы с ответами:

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

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

Как сделать чтобы после выбора "case" менюшка открывалась заново? - C++
Как сделать чтобы после выбора &quot;case&quot; менюшка открывалась заново и можно было выбирать очередной &quot;case&quot; #include &lt;iostream&gt; using...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.04.2013, 00:44
Ответ Создать тему
Опции темы

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