С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229

Ввести размер массива с клавиатуры и передать этот размер в конструктор

03.01.2013, 14:04. Показов 6657. Ответов 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
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class TOVAR {
 
public:
    TOVAR(int);
    void Show();
private:
    int n;
    char name[20];
    int number;
    int data[3];
};
 
 
int main()
{
    int m;
    cout<<"Enter number: "; 
    cin>>m;
    TOVAR ObjA[m];
    ObjA.Show();
    getch();
    return 0;
}
TOVAR::TOVAR(int m){
    n=m;
    char* name_1[]={"Bubluk","Banan","Ogurec","Maluna"};
    for(int i=0;i<n;i++){
        strcpy(name,name_1[rand()%4]);
    }
} 
void TOVAR::Show(){
    for(int i=0;i<n;i++){
    cout<<name;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.01.2013, 14:04
Ответы с готовыми решениями:

Ввести размер массива с клавиатуры
Я хочу вводить с клавиатуры a , но у меня не получается( Просит константное, но как это будет константой, если ты сам вводишь? ...

Ввести с клавиатуры размер одномерного массива
Ввести с клавиатуры размер одномерного массива и его элементы. Распечатать массив в строчку. Можно поподробней.

Определить размер файла, и если этот размер меньше определенного, скопировать этот файл в другой каталог
Задача: определить размер файла по указанному пути, и если этот размер меньше определенного скопировать этот файл в другой каталог. ...

2
03.01.2013, 14:11

Не по теме:

Цитата Сообщение от tokar2 Посмотреть сообщение
Я создал массив объектов. И я хочу ввести размер этого массива с клавиатуры, и передать этот размер в конструктор, как мне это сделать?
Лучше посмотрите в сторону подсчета ссылок, а не явной передачи параметра.

0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
03.01.2013, 16:29  [ТС]
Народ, помогите мне доделать задачу, буду очень благодарен! Мне бы только вот эту функцию доработать:
Задание 3: Работа с объектами.
Добавьте в программу метод, который выводит дату поступления товара, если наименование товара, введенное с клавиатуры, совпало с наименованием товара объекта.

Вот задача полностью:
Задание 1: Описание класса.
Запишите описание класса с именем TOVAR, содержащего следующие поля:
• наименование товара;
• количество единиц товара;
• дата поступления товара (массив из трех чисел).
Скройте элементы-данные от пользователя, предоставив интерфейс доступа к полям посредством открытых методов (предусмотрите объявление двух методов, один из которых присваивает значения полям класса, а другой – выводит значения этих свойств на экран).
Объявите массив объектов созданного класса.

Задание 2: Реализация методов класса.
Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов для объявленного ранее массива объектов.

Задание 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
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
const int n=3;
 
class TOVAR {
 
public:
    TOVAR();
    void Show();
private:
    char name[20]; //наименование товара;
    int number;   //количество единиц товара;
    int data[3];  //дата поступления товара 
};
 
TOVAR::TOVAR(){
    char* name_1[]={"Bubluk","Banan","Ogurec","Maluna"};
    for(int i=0;i<n;i++){
        strcpy(name,name_1[rand()%4]);
        number=rand()%3+1;
        for(int j=0;j<n;j++)
        data[j]=rand()%10+10;
    }
} 
void TOVAR::Show(){
    cout<<"Name tovar: "<<name<<endl;
    cout<<"Number tovar: "<<number<<endl;
    cout<<"Data tvar: ";
    for(int j=0;j<n;j++)
        cout<<data[j]<<" ";
    cout<<endl<<endl;
}
int main()
{
    srand(time(0));
    TOVAR ObjA[n];
    
    for(int i=0;i<n;i++)
    ObjA[i].Show();
    
    cout<<"Enter name tovar: ";
    char name_2[10];
    cin>>name_2;
    
    getch();
    return 0;
}
Добавлено через 1 час 54 минуты
Я уже программу написал, но через дружественные функции, помогите хотя бы написать через функции которые являются членом класса а не ее другом!
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
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
const int n=3;
 
class TOVAR {
 
public:
    friend void Set(TOVAR [n]);
    friend void Show(TOVAR [n]);
    friend void Name(TOVAR [n]);
private:
    char name[20]; //наименование товара;
    int number;   //количество единиц товара;
    int data[3];  //дата поступления товара 
};
 
void Set(TOVAR ObjA[n]){
    char* name_1[]={"Bubluk","Banan","Ogurec","Maluna"};
    for(int i=0;i<n;i++){
        strcpy(ObjA[i].name,name_1[rand()%4]);
        ObjA[i].number=rand()%3+1;
        for(int j=0;j<n;j++)
        ObjA[i].data[j]=rand()%10+10;
    }
} 
void Show(TOVAR ObjA[n]){
    for(int i=0;i<n;i++){
        cout<<"Name tovar: "<<ObjA[i].name<<endl;
        cout<<"Namber tovar: "<<ObjA[i].number<<endl;
        cout<<"Data tovar: ";
        for(int j=0;j<n;j++)
        cout<<ObjA[i].data[j]<<" ";
        cout<<endl<<endl;
    }
    
}
void Name(TOVAR ObjA[n]){
     TOVAR A;
     cout<<"Enter name: ";
     cin>>A.name;
     for(int i=0;i<n;i++)
       if(strcmp(ObjA[i].name,A.name)==0)
          for(int j=0;j<n;j++)
        cout<<ObjA[i].data[j]<<" ";
}
int main()
{
    srand(time(0));
    TOVAR ObjA[n];
    
    Set(ObjA);
    Show(ObjA);
    
    Name(ObjA);
    
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2013, 16:29
Помогаю со студенческими работами здесь

Ввести размер квадратной матрицы с клавиатуры
Добрый день. Написала код поиска наименьших элементов в верхнем и нижнем, затем в левом треугольнике (образованных диагоналями) квадратной...

Как ввести размер матрицы с клавиатуры?
Есть двухмерная матрица нужно задать размер с помощью клавиатуры

Построить эллипс (координаты и размер нужно ввести с клавиатуры)
Наиумнейшие умы в TurboProlog взываю Вас о помощи.. Осталось сдать 2 задачи чтоб остаться без хвоста) подскажите плс) 1) построить...

Передать в функцию размер массива указателей
Всем привет. Есть массив указателей допустим char *array = { &quot;строка 1&quot;, &quot;строка 2&quot;... &quot;строка n&quot; } Нужно предать его размер...

Как задать размер массива, который является членом класса, через конструктор?
Почему так? И как же тогда задать размер этого массива? class Test { public: Test(int size) : arrSize(size){}; private: ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru