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

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

Войти
Регистрация
Восстановить пароль
 
Fadjr
1 / 1 / 1
Регистрация: 28.09.2015
Сообщений: 107
#1

Программа для работы с массивом объектов типа Worker (работник) - C++

12.06.2016, 12:30. Просмотров 282. Ответов 6
Метки нет (Все метки)

Здравствуйте! дали такое интересное задание:
Worker: Фамилия и инициалы, Должность, Год поступления на работу, Зарплата.
Создать массив обьектов.
Вывести:
a) Список работников, стаж работы которых на данном предприятии превышает заданное число лет;
b) список работников, зарплата которых больше заданной;
c) список работников, занимающих заданную должность.

я начал работать над ним но дальше я не понимаю что должен делать...и я приблизительно знаю что там должно быть...ну if a[i].Fam > a[i].God и так далее но он ругается....помогите пожалуйста....вот код

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
struct Worker
{
    char Fam[14]; 
    char Dol[15]; 
    int God; 
    int Zarp; 
};
 
void show_struct(Worker a[])
{
    for (int i = 0; i < 5; i++)
    {
        cout << "Фамилия и инициалы: ";
        cout << a[i].Fam << endl;
        cout << "Должность: ";
        cout << a[i].Dol << endl;
        cout << "Год поступления на работу: ";
        cout << a[i].God << endl;
        cout << "Зарплата: ";
        cout << a[i].Zarp << endl;
        cout << endl;
    }
}
 
 
int main()
{
    setlocale(LC_ALL, ".1251");
    Worker a[5] = { {"А.С.Пушкин", "Директор", 1992, 50000},
    {"В.А.Пушкин", "Зам-Директора", 1993, 35000},
    {"А.Г.Ахматова", "Секретарь", 1993, 30000},
    {"И.Н.Куприн", "Рабочий", 1994, 10000},
    {"H.C.Рудольф", "Студент", 1998, 20000},
    };
    show_struct(a);
    _getch();
}
заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2016, 12:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа для работы с массивом объектов типа Worker (работник) (C++):

Бинарный файловый ввод/вывод: реализовать операции для работы с массивом структур типа WORKER - C++
Здравствуйте, видел очень много подобных программ, но у меня особый случай в общем суть программы: Описать структуру с именем WORKER, что...

Переделать код для работы с файловым вводом/выводом (работа с массивом объектов пользовательского типа) - C++
Доброго времени суток! Можно ли переделать эту прогу на работу с файлом при помощи потоковых функций ввода вывода, подключаемых библиотекой...

Готовая программа для любой работы с массивом - C++
Вот я решил помочь всем кому надо! Вот. Оцените работу! И вот код!

Программа содержащая функции для работы с массивом структур - C++
Для структуры struct marks { int fiz, mat, pr; }; struct student { char fio; struct marks m;

Реализовать класс "Ромб"; организовать интерактивную демонстрацию работы с массивом объектов типа "Ромб" - C++
Пользователь вводит массив Ромбов Свойства: сторона и диагональ (меньшая) Операции:  увеличение/уменьшение размера на определенный...

Разбить код на отдельные функции (работа с массивом объектов пользовательского типа) - C++
Нужны отдельные функции инициализации объектов и расчетов, в функции main в цикле вывести меню з пунктами (инициализировать объект,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5309 / 4629 / 1548
Регистрация: 14.04.2014
Сообщений: 18,437
12.06.2016, 12:40 #2
В какой строке ошибка здесь?
Fadjr
1 / 1 / 1
Регистрация: 28.09.2015
Сообщений: 107
12.06.2016, 13:01  [ТС] #3
если я в void show_struct(Worker a[]) после цикла for пропишу условие он выдаст ошибку вот что пишет
Error (active) operand types are incompatible ("char *" and "int") я не могу поменять тип данных с char на int или наоборот...это не логично

Добавлено через 16 минут
кажется я нашел решение....но придется переделать программу...спасибо.
RAFA91
Заблокирован
12.06.2016, 15:50 #4
C++
1
2
3
4
5
6
7
struct Worker
{
const char *Fam; 
const char *Dol; 
int God; 
int Zarp; 
};
Enflamed
2 / 2 / 0
Регистрация: 12.04.2015
Сообщений: 55
Завершенные тесты: 1
06.07.2016, 00:23 #5
Я так понимаю, что перед тем как выводить в поток данные, они должны быть нужного типа. Нельзя просто взять и вывести int, верно?
RAFA91
Заблокирован
06.07.2016, 11:39 #6
Цитата Сообщение от Enflamed Посмотреть сообщение
Нельзя просто взять и вывести int
создай обьект и выводи
nstwf
87 / 77 / 30
Регистрация: 19.02.2016
Сообщений: 324
Завершенные тесты: 1
06.07.2016, 11:57 #7
Вот вам 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
void show_God(Worker a[])
{
    cout << "Введите год: ";
    int god; cin >> god;
    for (int i = 0; i < 5; i++)
    {
        if (god < a[i].God)
        {
            cout << "Фамилия и инициалы: ";
            cout << a[i].Fam << endl;
            cout << "Должность: ";
            cout << a[i].Dol << endl;
            cout << "Год поступления на работу: ";
            cout << a[i].God << endl;
            cout << "Зарплата: ";
            cout << a[i].Zarp << endl;
            cout << endl;
        }
    }
}
 
void show_Zarp(Worker a[])
{
    cout << "Введите зарплату: ";
    int zp; cin >> zp;
    for (int i = 0; i < 5; i++)
    {
        if (zp < a[i].God)
        {
            cout << "Фамилия и инициалы: ";
            cout << a[i].Fam << endl;
            cout << "Должность: ";
            cout << a[i].Dol << endl;
            cout << "Год поступления на работу: ";
            cout << a[i].God << endl;
            cout << "Зарплата: ";
            cout << a[i].Zarp << endl;
            cout << endl;
        }
    }
}
 
void show_dol(Worker a[])
{
    cout << "Введите должность: ";
    char dolj[10]; cin >> dolj;
    for (int i = 0; i < 5; i++)
    {
        if (!strcmp(dolj, a[i].Dol))
        {
            cout << "Фамилия и инициалы: ";
            cout << a[i].Fam << endl;
            cout << "Должность: ";
            cout << a[i].Dol << endl;
            cout << "Год поступления на работу: ";
            cout << a[i].God << endl;
            cout << "Зарплата: ";
            cout << a[i].Zarp << endl;
            cout << endl;
        }
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2016, 11:57
Привет! Вот еще темы с ответами:

Переделать программу работы с массивом для работы с вектором - C++
помогите переделать эту программу!!...при одном условии....вот что находится между int main() и return 0; сохранить.....здесь нужно...

Программа работы с одномерным динамическим массивом - C++
Помогите пожалуйста!!! //Реализовать функционал работы с одномерным динамическим массивом. // 1. Создание массива // 2. Заполниние...

Программа с использованием объектов типа стека или очередь на C. - C++
Помогите пожалуйста с написанием. Программа с использованием объектов типа стека или очередь. На стандартный ввод программы поступают...

Реализовать поиск по заданному полю в массиве объектов типа Рейс (моделирование работы справочной автовокзала) - C++
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны: номер рейса; тип автобуса; пункт назначения;...


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

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

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