Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 12

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

07.05.2013, 12:42. Показов 578. Ответов 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.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2013, 12:42
Ответы с готовыми решениями:

Создание динамического массива
Первое задание помогите пожалуйста.

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

Создание динамического массива
Хотел написать программу, чтобы пользователь мог задать количество элементов в одномерном массиве, но компилятор пишет что количество...

5
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
07.05.2013, 12:54
C++
1
2
 C[1].data_input();
        C[1].data_output();
Возможно ошибка в этом. Т.к индекс у вас будет всегда один и тот же.
0
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 12
07.05.2013, 12:58  [ТС]
Поправил на переменные 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;
}
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
07.05.2013, 13:22
Цитата Сообщение от 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. А что пытаемся запихнуть? а хз.
0
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 12
07.05.2013, 20:12  [ТС]
Вверх.
Если можно, поправьте код программы
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
07.05.2013, 20:18
pashqaaa, если Вы хотите создать массив своего класса, то Вам надо перегрузить оператор new

Добавлено через 1 минуту
или же просто создать массив своего класса, но это будет статический массив
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2013, 20:18
Помогаю со студенческими работами здесь

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

Создание динамического массива
Ребята подскажите пожалуйста не давно начал изучать С++ ,решил добавить еще один язык для себя помимо Delphi, и вот вопрос как объявить...

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

Создание динамического массива
Добрый вечер! Подскажите пожалуйста, что необходимо сделать, чтобы заменить статический массив float array; на динамический, длинна...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru