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

Описать структуру с именем WORKER (найти ошибку) - C++

Восстановить пароль Регистрация
 
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
05.04.2012, 22:32     Описать структуру с именем WORKER (найти ошибку) #1
Описать структуру с именем WORKER, содержащую поля:
фамилия и инициалы работника;
название занимаемой должности;
зарплату;
год поступления на работу.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из 5 структур типа WORKER;
вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
если таких работников нет, вывести соответствующее сообщение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 22:32     Описать структуру с именем WORKER (найти ошибку)
Посмотрите здесь:

C++ Описать структуру с именем Worker
описать структуру с именем WORKER (пожалуйста!) C++
Описать структуру с именем Worker C++
C++ Описать структуру с именем WORKER
Описать структуру с именем Worker C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pipets24
 Аватар для pipets24
9 / 9 / 2
Регистрация: 04.04.2012
Сообщений: 56
06.04.2012, 03:21     Описать структуру с именем WORKER (найти ошибку) #2
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
#include <iostream>
using namespace std;
 
struct worker
{
char fio[30];
char pos[30];
float money;
int year; 
}; 
void main()
{
worker arr[5];
int xp, count = 0;
for(int i = 0; i < 5; i++)
{
cin >> worker[i].fio >> worker[i].pos >> worker[i].money >> worker[i].year;
}
cout >> "vvedite stajj";
cin >> xp;
for(int i = 0; i < 5; i++)
if(worker[i].year + xp <= 2012)
{
cout << worker[i].fio;
++count;
}
if(count = 0)
cout << "takih rabotnikov net";
system("pause");
}
на работоспособность не проверял, т.к. писал прямо здесь. так что если есть какие то ошибки, прошу извинить))
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
20.05.2012, 16:20  [ТС]     Описать структуру с именем WORKER (найти ошибку) #3
в чём ошибка, почему оно нормально не выводит результат?
Задание: Описать структуру с именем WORKER, содержащую поля:
 фамилия и инициалы работника;
 название занимаемой должности;
 зарплату;
 год поступления на работу.
Написать программу, выполняющую следующие действия:
 ввод с клавиатуры данных в массив, состоящий из 5 структур типа WORKER;
 вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
 если таких работников нет, вывести соответствующее сообщение.

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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
struct WORKER
{   
    char name[5]; // 5 символов маловато
    char job; // работа одним символом задана?
    int salary, years; // зряплата обычно double
};
 
int main ()
{
    const int SIZE = 5;
    const int CYEAR = 2012;
    WORKER S[SIZE];
    for (int i = 0; i < SIZE; ++i) // массив с 0 начинается
    {
        cout << "input name of worker: ";
        cin >> S[i].name;
        cout << "input job: ";
        cin >> S[i].job;
        cout << "input salary: ";
        cin >> S[i].salary;
        cout << "input years of work: ";
        cin >> S[i].years;
    }
    int ros = 0;
    cout << "input record of service? ";
    cin >> ros; 
    for (int i = 0; i < SIZE; ++i)
    {
        if ((CYEAR - S[i].years) >= ros)
        {
            cout << "Name: " << S[i].name << " works for: << (CYEARS - S[i].years) "<< endl;
        }
    }
    system("pause");
    return 0;
}
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
20.05.2012, 16:51     Описать структуру с именем WORKER (найти ошибку) #4
Может что-то не то вижу, но помоему на хватает закрывающих скобок в 35 строке?

C++
1
cout << "Name: " << S[i].name << " works for: " << (CYEARS - S[i].years) << endl;
B.Krols
 Аватар для B.Krols
6 / 6 / 2
Регистрация: 10.02.2012
Сообщений: 21
20.05.2012, 17:02     Описать структуру с именем WORKER (найти ошибку) #5
В дополнение к сказанному Harmonster:
C++
1
2
3
4
5
6
7
struct WORKER
{   
    char name[20]; // 5 символов маловато? Ну так сделайте больше
    char job[10]; // работа одним символом задана? Ну так сделайте, чтобы не одним
    float salary; // зряплата обычно double? Для зарплаты обычно хватает float))
    int years;
};
Цитата Сообщение от olya.kay Посмотреть сообщение
если таких работников нет, вывести соответствующее сообщение.
Реализовываем:
C++
1
2
3
4
5
6
7
8
9
10
11
    bool flag = false;
    for (int i = 0; i < SIZE; ++i)
    {
        if ((CYEAR - S[i].years) >= ros)
        {
            cout << "Name: " << S[i].name << " works for: " << (CYEAR - S[i].years) << endl;
            flag = true;
        }
    }
    if (!flag)
        cout << "Employees who work more than " << ros << " years have not been found" << endl;
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
20.05.2012, 17:12     Описать структуру с именем WORKER (найти ошибку) #6
Если быть точнее, то
C++
1
cout << "Name: " << S[i].name << " works for: " << (CYEAR - S[i].years) << endl;
Константа объявлена CYEAR (без S в конце). В остальном программа работает верно. Я правильно понял, что years - это год, когда работник устроился на предприятие?

P.S. сообщение только не выводится, если никого не нашлось
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.05.2012, 17:36     Описать структуру с именем WORKER (найти ошибку) #7
Цитата Сообщение от Harmonster Посмотреть сообщение
Может что-то не то вижу, но помоему на хватает закрывающих скобок в 35 строке?
Скобки на месте, а вот кавычки явно не там.
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
20.05.2012, 18:22  [ТС]     Описать структуру с именем WORKER (найти ошибку) #8
я все по исправляла, но все равно выводит какуето лубуду.
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
struct WORKER
{   
    char name[5]; 
    char job; 
    float salary;
int  years; 
};
 
int main ()
{
    const int SIZE = 5;
    const int CYEAR = 2012;
    WORKER S[SIZE];
    for (int i = 0; i < SIZE; ++i) 
    {
        cout << "input name of worker: ";
        cin >> S[i].name;
        cout << "input job: ";
        cin >> S[i].job;
        cout << "input salary: ";
        cin >> S[i].salary;
        cout << "input years of work: ";
        cin >> S[i].years;
    }
    int ros = 0;
    cout << "input record of service? ";
    cin >> ros; 
     bool flag = false;
    for (int i = 0; i < SIZE; ++i)
    {
        if ((CYEAR - S[i].years) >= ros)
        {
            cout << "Name: " << S[i].name << " works for: " << (CYEAR - S[i].years) << endl;
            flag = true;
        }
    }
    if (!flag)
        cout << "Employees who work more than " << ros << " years have not been found" << endl;
    system("pause");
    return 0;
}
Миниатюры
Описать структуру с именем WORKER (найти ошибку)  
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
20.05.2012, 18:43     Описать структуру с именем WORKER (найти ошибку) #9
я все по исправляла, но все равно выводит какуето лубуду.
job - переменная типа char. Либо меняйте на массив символов, либо в программе вводите только один символ
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
20.05.2012, 19:19  [ТС]     Описать структуру с именем WORKER (найти ошибку) #10
уточни не поняла.
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
20.05.2012, 20:04     Описать структуру с именем WORKER (найти ошибку) #11
Вот здесь (22 и 23 строки):
C++
1
2
cout << "input job: ";
cin >> S[i].job;
задаётся значение S[i].job, но переменная job объявлена как char. Это значит, что можно ввести только 1 символ. То есть вводить следует так:
Миниатюры
Описать структуру с именем WORKER (найти ошибку)  
olya.kay
1 / 1 / 0
Регистрация: 17.03.2012
Сообщений: 49
20.05.2012, 20:08  [ТС]     Описать структуру с именем WORKER (найти ошибку) #12
а что надо сделать что бы вводить не одним символом?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2012, 20:34     Описать структуру с именем WORKER (найти ошибку)
Еще ссылки по теме:

Описать структуру с именем WORKER C++
Описать структуру с именем WORKER C++
Описать структуру с именем Worker C++

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

Или воспользуйтесь поиском по форуму:
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
20.05.2012, 20:34     Описать структуру с именем WORKER (найти ошибку) #13
В описании структуры заменить на массив символов:
C++
1
2
3
4
5
6
7
struct WORKER
{   
    char name[15]; 
    char job[10];
    float salary;
    int  years; 
};
Yandex
Объявления
20.05.2012, 20:34     Описать структуру с именем WORKER (найти ошибку)
Ответ Создать тему
Опции темы

Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru