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

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

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

Создание динамического массива обьектов - C++

07.05.2013, 12:42. Просмотров 272. Ответов 5
Метки нет (Все метки)

Задание такое: графа таблицы имеет такие ведомости про работника: фамилию, имя, дату рождения, пол, адрес.
Дополнительная графа: профессию, стаж и зарплату.
Посчитать, какую сумму получат работники той или иной профессии за n годов работы.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <vector>
using namespace std;
 
class employee {
public:
    char surname [20],
    name [20],
    sex[5],
    adress[20], state[20], country[20], city[20], street[20],
    prof [20],
    value[15],
    objects[30];
    double exp, salary;
    int day,month,year;
};
 
class ioinfo: public employee {
public:
    void data_input();
    void data_output();
};
 
void ioinfo::data_input(){
    cout<<"________EMPLOYER INFO________"<<endl;
    cout<<"_____________________________"<<endl;
    cout<<"Input surname: ";
    cin>>surname;
    cout<<"Input name: ";
    cin>>name;
    cout<<"Input born date ==>"<<endl;
    cout<<"day: "; cin>>day;
    cout<<"month: "; cin>>month;
    cout<<"year: "; cin>>year;
    cout<<"Input sex: ";
    cin>>sex;
    cout<<"Input adress ==> "<<endl;
    cout<<"contry: "; cin>>country;
    cout<<"state: "; cin>>state;
    cout<<"city: "; cin>>city;
    cout<<"street: "; cin>>street;
    cout<<"Input profession: "; 
    cin>>prof;
    cout<<"Input experience(in years): "; 
    cin>>exp;
    cout<<"Input salary: "; 
    cin>>salary;
};
 
void ioinfo::data_output() {
    int salary_type;
    double q,n,n_year, n_month, n_week;
    cout<<"Input payment  ==> (ex. EURO)"<<endl;
    cin>>value;
    cout<<"Choose salary payment type ==>"<<endl;
    cout<<"Input '1' to choose 'per week' type"<<endl;
    cout<<"Input '2' to choose 'per month' type"<<endl;
    cout<<"Input '3' to choose 'per year' type"<<endl;
    cin>>salary_type;
    if (salary_type==1) cout<<"PER WEEK"; 
    else if (salary_type==2) cout<<"PER MONTH";
    else if (salary_type==3) cout<<"PER YEAR";
    cout<<"Input time, that employee has worked ==> "<<endl;
    cout<<"year(s): "; cin>>n_year;
    cout<<"month(s): "; cin>>n_month;
    cout<<"week(s): "; cin>>n_week; 
    if (salary_type==1) {
    n=n_year*52+n_month*4+n_week; 
    q=n*salary;
    cout<<"Money, that employee earned per "<<n<<" week(s) of work with salary "<<salary<<" "<<value<<"s/week = "<<endl;
    cout<<q<<value<<"s";
    };
    if (salary_type==2) {
    n=n_year*12+n_month+n_week/4; 
    q=n*salary;
    cout<<"Money, that employee earned per "<<n<<" month(s) of work with salary "<<salary<<" "<<value<<"s/month = "<<endl;
    cout<<q<<" "<<value<<"s";
    };
    if (salary_type==3) {
    n=n_year+n_month/12+n_week/52; 
    q=n*salary;
    cout<<"Money, that employee earned per "<<n<<" year(s) of work with salary "<<salary<<" "<<value<<"s/year = "<<endl;
    cout<<q<<value<<"s"<<endl;
    };
}
 
int main() {
    int k=1;
    int *C=new int [k];
    cout<<"-----WELCOME-----"<<endl;
    cout<<"Input number of employees: ";
    cin>>k;
        int *C = new int [k];
    for (int j=0; j<k; j++) {
        ioinfo C[j];
        C[1].data_input();
        C[1].data_output(); 
    }
    _getch();
    return 0;
}
В принципе задание я осуществил, вот только не получается сделать динамический массив обьектов класса ionfo, которые будут содержать информацию о работниках.

Не хочет работать вот эта часть кода, которая создает массив обьектов.
C++
1
2
3
4
5
6
int *C = new int [k];
    for (int j=0; j<k; j++) {
        ioinfo C[j];
        C[1].data_input();
        C[1].data_output(); 
    }
Жду на обьективные ответы.

Добавлено через 15 минут
Up.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 12:42     Создание динамического массива обьектов
Посмотрите здесь:

Создание динамического массива - C++
объясните пожалуйста вот эту часть // sozdanie dinamicheskogo massiva m*n a=(int**)malloc(m*sizeof(int *)); for(i=0;i&lt;m;i++) { ...

Создание динамического массива - C++
const int Num=5; const int SIZE=4096 * Num; SHORT Buf; как такое заменить, если Num- инициализируется при загрузке программы,...

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

Создание динамического массива - C++
Как создать динамически массив размера n если n вводиться с клавиатуры. А еще и двумерный cin&gt;&gt;n int a=new int; не работает

Создание динамического массива строк - C++
Всем доброго утра/вечера/дня. Возникла такая проблема. Не могу создать динамический массив строк. Т.е. нужно при вводе с клавиатуры...

Создание динамического массива в структуре - C++
Здравствуйте уважаемые форумчане. Вот код моей структуры- в будущем это динамический стек(без использования классов). Почему у меня не...

Создание динамического символьного массива - C++
Здравствуйте. Помогите пожалуйста решить след задачу!!! Запросить у пользователя максимально возможную по условиям задачи длину LenMax...

Создание динамического многомерного массива - C++
Esche odin vopros po etoi temie: Kak v C++ sozdat dynamicheskiy MNOGOMERNIY massiv tipa long *a = new long ;no eto ne katit. Ne...

Создание и обработка динамического массива - C++
Порядок выполнения работы 1. Ввести размер массива; 2.Сформировать массив с помощью операции new или библиотечных функций malloc...

Создание 3-х мерного динамического массива - C++
Что-то туплю.. не могу сделать 3-х мерный динамический массив int *a;int q,n,r,v;int ***b;int m=0; void vvod() { ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
07.05.2013, 12:54     Создание динамического массива обьектов #2
C++
1
2
 C[1].data_input();
        C[1].data_output();
Возможно ошибка в этом. Т.к индекс у вас будет всегда один и тот же.
pashqaaa
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 12
07.05.2013, 12:58  [ТС]     Создание динамического массива обьектов #3
Поправил на переменные j. Появилась ошибка, которая говорит, что j должна быть константой, а мне нужен динамический массив обьектов.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <vector>
using namespace std;
 
class employee {
public:
    char surname [20],
    name [20],
    sex[5],
    adress[20], state[20], country[20], city[20], street[20],
    prof [20],
    value[15],
    objects[30];
    double exp, salary;
    int day,month,year;
};
 
class ioinfo: public employee {
public:
    void data_input();
    void data_output();
};
 
void ioinfo::data_input(){
    cout<<"________EMPLOYER INFO________"<<endl;
    cout<<"_____________________________"<<endl;
    cout<<"Input surname: ";
    cin>>surname;
    cout<<"Input name: ";
    cin>>name;
    cout<<"Input born date ==>"<<endl;
    cout<<"day: "; cin>>day;
    cout<<"month: "; cin>>month;
    cout<<"year: "; cin>>year;
    cout<<"Input sex: ";
    cin>>sex;
    cout<<"Input adress ==> "<<endl;
    cout<<"contry: "; cin>>country;
    cout<<"state: "; cin>>state;
    cout<<"city: "; cin>>city;
    cout<<"street: "; cin>>street;
    cout<<"Input profession: "; 
    cin>>prof;
    cout<<"Input experience(in years): "; 
    cin>>exp;
    cout<<"Input salary: "; 
    cin>>salary;
};
 
void ioinfo::data_output() {
    int salary_type;
    double q,n,n_year, n_month, n_week;
    cout<<"Input payment  ==> (ex. EURO)"<<endl;
    cin>>value;
    cout<<"Choose salary payment type ==>"<<endl;
    cout<<"Input '1' to choose 'per week' type"<<endl;
    cout<<"Input '2' to choose 'per month' type"<<endl;
    cout<<"Input '3' to choose 'per year' type"<<endl;
    cin>>salary_type;
    if (salary_type==1) cout<<"PER WEEK"; 
    else if (salary_type==2) cout<<"PER MONTH";
    else if (salary_type==3) cout<<"PER YEAR";
    cout<<"Input time, that employee has worked ==> "<<endl;
    cout<<"year(s): "; cin>>n_year;
    cout<<"month(s): "; cin>>n_month;
    cout<<"week(s): "; cin>>n_week; 
    if (salary_type==1) {
    n=n_year*52+n_month*4+n_week; 
    q=n*salary;
    cout<<"Money, that employee earned per "<<n<<" week(s) of work with salary "<<salary<<" "<<value<<"s/week = "<<endl;
    cout<<q<<value<<"s";
    };
    if (salary_type==2) {
    n=n_year*12+n_month+n_week/4; 
    q=n*salary;
    cout<<"Money, that employee earned per "<<n<<" month(s) of work with salary "<<salary<<" "<<value<<"s/month = "<<endl;
    cout<<q<<" "<<value<<"s";
    };
    if (salary_type==3) {
    n=n_year+n_month/12+n_week/52; 
    q=n*salary;
    cout<<"Money, that employee earned per "<<n<<" year(s) of work with salary "<<salary<<" "<<value<<"s/year = "<<endl;
    cout<<q<<value<<"s"<<endl;
    };
}
 
int main() {
    int k=1;
    int *C=new int [k];
    cout<<"-----WELCOME-----"<<endl;
    cout<<"Input number of employees: ";
    cin>>k;
        int *C = new int [k];
    for (int j=0; j<k; j++) {
        ioinfo C[j];
        C[j].data_input();
        C[j].data_output(); 
    }
    _getch();
    return 0;
}
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
07.05.2013, 13:22     Создание динамического массива обьектов #4
Цитата Сообщение от pashqaaa Посмотреть сообщение
int *C = new int [k];
* * for (int j=0; j<k; j++) {
* * * * ioinfo C[j];
* * * * C[1].data_input();
* * * * C[1].data_output();
* * }
ошибка в этом всем. Что такое С? правильно-это массив int. Что делает строка
C++
1
ioinfo C[j];
? Правильно! она переопределяет тип данных ячейки. Стоп! А разве так можно? мы же выделили память под что? под int. А что пытаемся запихнуть? а хз.
pashqaaa
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 12
07.05.2013, 20:12  [ТС]     Создание динамического массива обьектов #5
Вверх.
Если можно, поправьте код программы
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
07.05.2013, 20:18     Создание динамического массива обьектов #6
pashqaaa, если Вы хотите создать массив своего класса, то Вам надо перегрузить оператор new

Добавлено через 1 минуту
или же просто создать массив своего класса, но это будет статический массив
Yandex
Объявления
07.05.2013, 20:18     Создание динамического массива обьектов
Ответ Создать тему
Опции темы

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