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

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

Войти
Регистрация
Восстановить пароль
 
bestpalyer1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
#1

Не работает поиск в структуре - C++

20.12.2012, 22:58. Просмотров 601. Ответов 1
Метки нет (Все метки)

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
#include <iostream>
#include <string>
#include <cstring>
#include <windows.h>
#include <limits>
using namespace std;
 
 
 
struct employee
{
char *name;
float salary;
int stage;
};
 
 
employee *form(int n)
{
    employee *matr=new employee[n];
    char s[30];
 
    for(int i=0;i<n;i++)
    {
    cout << "Введите имя:";
    cin >> s;
    matr[i].name=new char [strlen(s)+1];
    strcpy(matr[i].name,s);
    cout << "Введите заработную плату:";
    cin >> matr[i].salary;
    cout << "Введите стаж:";
    cin >> matr[i].stage;
    }
 
    return matr;
}
 
 
void Print(employee *matr,int n)
{
    for(int i=0;i<n;i++)
{
    cout<<matr[i].name<<"\t";
    cout<<matr[i].salary<<"\t";
    cout<<matr[i].stage<<"\n";}
}
 
 
 
employee *poisk(employee*matr,int n,int &l)
{
    
    int i=0;
    for(int i=0;i<n;i++)
 
        if(l==0)
        {
            cout << "Таких сотрудников нет\n";
            return matr;
        }
 
        employee*ger=new employee [l];
 
        
 
        for(i=0;i<n;i++)
 
        if(matr[i].stage>10)
{
    ger[l].name=matr[i].name;
 
    ger[l].salary=matr[i].salary;
 
    ger[l].stage=matr[i].stage;
 
    l++;
            }
 
    char d[4];
    cout << " Если вы хотите выполнить печать списка сотрудников со стажем больше 10 лет, то введите yes, если нет, то no";
    cin>>d;
    if
    (strcmp(d,"yes")==0)
    Print(ger,l);
    return ger;
}
 
 
 
 
void power(int n)
{
    int h=0;
 
    employee*ger;
 
    while(h!=4)
{
    
    cout << "1. Формирование массива структур." << endl;
    cout << "2.Печать общего списка рабочих." << endl;
    cout << "3.Поиск сотрудников со стажем более 10 лет." << endl;
    cout << "4.Выход" << endl;
    cout << "Ваш выбор:";
    cin>>h;
 
    int l=0;
 
    switch (h)
   {
    case 1:
        employee*matr;
        matr=form(n);
        break;
    case 2:
        Print(matr,n);
        break;
    case 3:
        ger=poisk(matr,n,l);
        break;
    }
}
}
 
void main()
{
    setlocale(LC_ALL,"RUS");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n;
    cout <<"Введите кол-во рабочих:";
    cin>>n;
    power(n);
}


ps. Все работает хорошо,но поиск не производится. Посмотрите,кому не не тяжело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 22:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает поиск в структуре (C++):

Поиск в структуре - C++
Подскажите, пожалуйста, как сделать бинарный поиск в структуре?

Поиск по структуре - C++
Имеется функция поиска сотрудника по имени: void Searchname(video film, char *name) { int j=0; for (int i = 0; i&lt;col;...

Структура. Поиск по структуре. - C++
Добрый вечер, ув. форумчане. Я новичек в С/C++, в данный момент сам учусь по урокам Шага. Дошел до структур, в принципе смысл понял, но...

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

Сделать поиск по структуре - C++
Создать список, в котором хранится информация о абонентов АТС: ФИО, место жительства, номер телефона. Необходимо написать программу,...

Поиск сотрудника по структуре - C++
Вот работающая программка, она считает квартальную или годовую з/п выбранного по строке сотрудника. необходимо его выбирать по фамилии....

1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.12.2012, 23:10 #2
не ну а что вы хотели , вы в начало поставили условия проверки для выхода поместите эту конструкцию в конец метода
C++
1
2
3
4
5
    if(l==0)
        {
            cout << "Таких сотрудников нет\n";
            return matr;
        }
и будет вам добро), хотя нет ее надо переделать, щас я посижу повнимательнее гляну
C++
1
employee*ger=new employee [n];
размер ger должен быть вначале размером всех сотрудников, и заполнятся с начало теми у кого стаж больше 10 лет, а у вас он должен был быть размером l который изначально 0 и цикл перед этой строкой уберите
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2012, 23:10
Привет! Вот еще темы с ответами:

Поиск одинаковых значений в структуре - C++
Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол (true - мужской, false - женский), рост....

Краш программы. Поиск по структуре - C++
Доброго времени суток, уважаемые форумчане! Я столкнулся с такой проблемой... Условие задачи : В записной книжке указаны фамилии и...

Сортировка и поиск данных в структуре - C++
Имеется структура данных: название института, номер корпуса, название кафедры и телефон кафедры. Требуется реализовать поиск по 3-м...

Поиск по структуре в бинарном файле - C++
Всем привет! Хотел бы обратиться к более опытным людям.Есть задача &quot;Запись имеет вид: название инструмента, число, месяц и год...


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

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

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