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

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

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

Вывести на консоль имена сотрудников, возраст которых превышает заданный (поиск в массиве структур) - C++

16.12.2016, 01:26. Просмотров 299. Ответов 4
Метки нет (Все метки)

Ввести в компьютер информацию о сотрудниках
отдела: фамилия, имя, возраст. Напечатать имена сотрудников, возраст которых
превышает 28 лет.
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
# include <iostream> 
#include<string.h> 
using namespace std; 
const int n=2; 
struct stud
{
    char name[30];
    char fam[30];
    int age;
};
int main()
{
struct stud;
int i,n;
printf("kol-vo:");
scanf("%d",&n);
for(i=0;i<n;i++){
    printf("?????:");
    scanf("%s",&stud[i].name);
    scanf("%s", stud[i].fam);
    scanf("%d", &stud[i].age);
}
for (i=0; i<n; i++) 
if (stud[i].age>28){ 
printf("name %s\n", stud[i].name);
        printf("fam %s\n", stud[i].fam);
        printf("voz %d\n", stud[i].age);}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2016, 01:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на консоль имена сотрудников, возраст которых превышает заданный (поиск в массиве структур) (C++):

Вывести список пассажиров, вес багажа которых превышает заданный - C++
Передо мной стояла задача написать программу, которая бы позволяла выводить на экран список пассажиров, вес багажа которых превышает 65 кг,...

Работа с файлами: найти сотрудников, чей возраст старше 45 или стаж превышает 20 лет - C++
работа с файлами поместить в файл n записей, содержащих сведения о сотрудниках: ФИО, год рождения, стаж работы. Найти сотрудников, чей...

Массив структур: вывести список товаров, стоимость которых превышает 100 000 рублей - C++
Создать массив структур. Выполнить задание и вывести на экран полученный результат. Список товаров, имеющихся на ...

Реализовать поиск по заданному полю в массиве структур и вывод этих данных на консоль - C++
Здравствуйте, пишу код чтобы я вводил какой-либо товар, отмечал какого года он был продан и сколько выручки было получено. Но не могу...

Вывести на консоль информацию, хранящуюся в массиве структур, заданным образом - C++
Дана информация о пяти студентах. Запись имеет вид: фамилия, год рождения, факультет. Вывести данные о студентах по факультетам. ...

Вывести на консоль информацию, хранящуюся в массиве структур, заданным образом - C++
#include &lt;iostream&gt; using namespace std; int i,j,result=0; struct Student { char name; int group; ...

4
Jman
43 / 43 / 10
Регистрация: 11.10.2015
Сообщений: 474
Завершенные тесты: 2
16.12.2016, 08:57 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Интересная задачка. У меня мысль пришла только через файл. Потому что каждый раз нужно записывать человека которому более 28 лет. Может у Гуру есть методы с использованием каких - либо структур данных. PS: у вас программа на Си написана, а ветка по С++. Поэтому пример на С++;
Вот так я сделал через файл.
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
#include <iostream>
#include <fstream>
#include <cstring>
 
using namespace std;
 
struct Students
{
    char firstName[100];
    char secondName[100];
    int age;
};
 
int main()
{
        setlocale(0, "");
        
        Students stud;
        char buffer[255];
        int i, studentsQuantity;
        cout << "Количество:" << endl;
        cin >> studentsQuantity;
        ofstream writeToFile("D:/test.txt");
        for (i = 0; i < studentsQuantity; i++) 
        {
            cout << "Введите данные:" << endl;
            cin >> stud.firstName;
            cin >> stud.secondName;
            cin >> stud.age;
            cout << endl;
 
            if (stud.age > 28)
            {   
                writeToFile << "*************Сотрудники которым больше 28 лет************" << endl;
                writeToFile << stud.firstName << endl << stud.secondName << endl;
                writeToFile << stud.age << endl << endl;
            }
 
        }
        writeToFile.close();
        
        ifstream readFromFile("D:/test.txt");
        while (!readFromFile.eof())
        {
            readFromFile.getline(buffer, 255);
                cout << buffer << endl;
        }
 
    system("pause");
    return 0;
}
2
GbaLog-
Любитель чаепитий
3078 / 1417 / 342
Регистрация: 24.08.2014
Сообщений: 5,040
Записей в блоге: 1
Завершенные тесты: 2
16.12.2016, 09:14 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
struct Employee
{
    std::string firstName;
    std::string lastName;
    unsigned age;
};
/////////////////////////////////////////////////////////////////////////////////////////
std::istream& operator>>( std::istream& strm, Employee& emp )
{
    strm
        >> emp.firstName
        >> emp.lastName
        >> emp.age;
    return strm;
}
/////////////////////////////////////////////////////////////////////////////////////////
std::ostream& operator<<( std::ostream& strm, Employee const& emp )
{
    strm 
        << emp.firstName << ' '
        << emp.lastName << ' '
        << emp.age << '\n';
    return strm;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::vector<Employee> employes{ 
        std::istream_iterator<Employee>(std::cin), std::istream_iterator<Employee>() 
    };
    
    std::copy_if(employes.begin(), employes.end(),
        std::ostream_iterator<Employee>(std::cout, " "), 
        [] (Employee const& emp) 
        { return emp.age > 28; }
    );
}
1
Jman
43 / 43 / 10
Регистрация: 11.10.2015
Сообщений: 474
Завершенные тесты: 2
16.12.2016, 17:23 #4
Я не знаю STL, но тут вы я так понимаю применили запись в Вектор?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7510 / 4642 / 700
Регистрация: 29.11.2010
Сообщений: 12,674
16.12.2016, 17:28 #5
Цитата Сообщение от Jman Посмотреть сообщение
но тут вы я так понимаю применили запись в Вектор?
Он инициализировал вектор значениями из стандартного потока.
Есть такой фокус - конструктор вектора может принимать для инициализации два объекта типа InputIterator. istream_iterator удовлетворяет данным требованиям.
В конструкторе вектор перебирает istream_iterator пока не встретит такой, который будет равен итератору, созданному с конструктором без параметров (istream_iterator()), а это происходит когда из стандартного потока на считывание приходит сигнал EOF (нажимаем на сочетание клавиш Ctrl + D, к примеру).
3
16.12.2016, 17:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2016, 17:28
Привет! Вот еще темы с ответами:

Программа поиска сотрудников с указанным именем в массиве структур - C++
#include &lt;iostream&gt; struct info { char fio ; } ; int main() { setlocale (LC_ALL,&quot;Russian&quot;); struct info lib; ...

Вывести на экран все рейсы, отправляющиеся в пункт А (поиск в массиве структур по заданному полю) - C++
В задаче необходимо вывести на экран все рейсы, отправляющиеся в пункт А, введенный с клавиатуры. Собственно, неработающий код: ...

Найти среднюю стоимость автомобилей, "возраст" которых превышает 6 лет - C++
Известны стоимость и &quot;возраст&quot; каждой из 20-ти моделей легковых автомобилей. Найти среднюю стоимость автомобилей, &quot;возраст&quot; которых...

Ввести имена и телефоны сотрудников организации в массив записей и вывести их в виде таблицы. - C++
Запись содержит несколько компонентов, или полей, которые могут иметь различные типы. Синтаксис: Record Поля; Поля; ...


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

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

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