Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 03.05.2016
Сообщений: 22
1

Статический массив в динамический массив

26.05.2016, 16:48. Показов 503. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Месяца два еще назад, во время изучения структур, выполнял простенькое задание. После изучения классов, нужно было предыдущую работу переделать с применением класса.
Поставили задачу:
1. Статический массив заменить динамическим
2. Конструктор по умолчанию выделяет место под 8 элементов
3. Конструктор с одним параметром выделяет место под введенное количество параметром
4. Конструктор копий создает копию списка

Не могу понять как заменить тут масив

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
104
105
106
107
#include <iostream>
#include <Windows.h>
#include <clocale>
using namespace std;
 
 
const int N=8;
 
class MyClass
{
    struct Price
{
    double cena;
    char name[N];
    char tov[N];
};
    Price List[N];
    int number;
    char s[N];
public: 
    void tov();
    void menu();
    void cop();
    MyClass();
    MyClass(int number);
    MyClass(MyClass &A);
};
void MyClass::tov()
{
cout<<"Введите название товара что вас интересует: ";
cin>>s;
system("cls");
 
            cout<<"##################################################\n";
            cout<<"#              Информационный прайс              #\n";
            cout<<"##################################################\n";
            cout<<" №       Магазин           Товар         Цена    \n";
            cout<<"--------------------------------------------------\n";
 
for (int i=0; i<N; i++)
    {
    if (strcmp(List[i].tov,s)==0) 
        {
        cout<<" "<<i+1<<"       "<<List[i].name<<"           "<<List[i].tov<<"         "<<List[i].cena<<"    \n";   
        cout<<"--------------------------------------------------\n";
        number++;
        }
    
    if (number==0) 
    {
        cout<<"         Вводимый вами товар не обнаружен         \n"; 
        cout<<"--------------------------------------------------\n";
    break;
    }
}
 
 
}
void MyClass::menu()
{
for (int i=0; i<N; i++)
{
cout<<"\t***********************************\n";
cout<<"\t    Информационный прайс-лист №"<<i+1<<"\n";
cout<<"\t***********************************\n";
cout<<"\t Название магазина: ";
cin>>List[i].name;
cout<<"\t Название товара: ";
cin>>List[i].tov;
cout<<"\t Цена товара: ";
cin>>List[i].cena;
system("cls");
}
}
 
 
MyClass::MyClass()
{
number = 0;
 
}
 
MyClass::MyClass(int number)
{
 
}
 
MyClass::MyClass(MyClass &A)
{
 
}
 
int main()
{
setlocale(0, "");
 
MyClass x;
 
x.menu();
x.tov();
 
 
 
cout<<endl;
system("pause");
return 0;
}
Кто может, подскажите как...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2016, 16:48
Ответы с готовыми решениями:

Двумерный массив (поменять статический массив на динамический)
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt;...

Переделать динамический массив на статический массив
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int dim, counter_1...

статический массив ----> динамический массив
Есть программа, нужно статический массив заменить на динамический. Как будет выглядеть? #include...

Динамический и статический массив
Подскажите, в чем разница. Имеется статический массив, который просто задается: long mas = { 0 };...

2
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
26.05.2016, 17:50 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
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
104
105
106
107
108
109
110
111
112
113
114
115
#include <iostream>
#include <clocale>
using namespace std;
 
 
class MyClass
{
    static const int N=100;
    struct Price
    {
        double cena;
        char name[N];
        char tov[N];
    };
    Price* List;
    int number;
    //
public: 
    void tov();
    void menu();
    //void cop();
    MyClass();
    MyClass(int number);
// !!!!!!!!!!!!!!!! правило трех: копикоструктор, operator=, деструктор обязательны!!!!
    MyClass(MyClass &A);
    MyClass& operator=(MyClass &A);
    ~MyClass(){ delete[] List;}
};
void MyClass::tov()
{
    cout<<"Введите название товара что вас интересует: ";
    char s[N];cin>>s;
    system("cls");
 
    cout<<"##################################################\n";
    cout<<"#              Информационный прайс              #\n";
    cout<<"##################################################\n";
    cout<<" №       Магазин           Товар         Цена    \n";
    cout<<"--------------------------------------------------\n";
    int j=0;
    for (int i=0; i<number; i++)
    {
        if (strcmp(List[i].tov,s)==0) 
        {
            cout<<" "<<i+1<<"       "<<List[i].name<<"           "<<List[i].tov<<"         "<<List[i].cena<<"    \n";   
            cout<<"--------------------------------------------------\n";
            j++;
        }
    }
    if (j==0) 
    {
        cout<<"         Вводимый вами товар не обнаружен         \n"; 
        cout<<"--------------------------------------------------\n";
    }
}
void MyClass::menu()
{
    for (int i=0; i<number; i++)
    {
        cout<<"\t***********************************\n";
        cout<<"\t    Информационный прайс-лист №"<<i+1<<"\n";
        cout<<"\t***********************************\n";
        cout<<"\t Название магазина: ";
        cin>>List[i].name;
        cout<<"\t Название товара: ";
        cin>>List[i].tov;
        cout<<"\t Цена товара: ";
        cin>>List[i].cena;
        system("cls");
    }
}
 
 
MyClass::MyClass()
{
    number = 0;
    List=0;
}
 
MyClass::MyClass(int number)
{
    this->number=number;
    List=new Price[number];
}
 
MyClass::MyClass(MyClass &A)
{
    this->number=A.number;
    List=new Price[number];
    for(int i=0;i<number;i++)
        List[i]=A.List[i];
}
MyClass& MyClass::operator=(MyClass &A)
{
    if(this!=&A)
    {
        delete[] List;
        this->number=A.number;
        List=new Price[number];
        for(int i=0;i<number;i++)
            List[i]=A.List[i];
    }
    return *this;
}
 
int main()
{
    setlocale(LC_ALL, "Rus");
    MyClass x(3);
    x.menu();
    x.tov();
    cout<<endl;
    system("pause");
    return 0;
}
1
2 / 2 / 1
Регистрация: 03.05.2016
Сообщений: 22
26.05.2016, 18:13  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
Ошибок в коде было немерено!
Лишнее просто удалял уже при создании темы.
Про правило трех не знал, теперь буду...
Огромное спасибо, разобрался что да как...
0
26.05.2016, 18:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2016, 18:13
Помогаю со студенческими работами здесь

Переделать статический массив в динамический
Помогите переделать статический массив в динамический. #include &lt;iostream&gt; #include &lt;cstdlib&gt;...

Переделать статический массив в динамический
Помогите переделать статический массив в динамический #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Переделать статический массив в динамический
Помогите пожалуйста переделать статический массив в динамический #include &lt;iostream&gt; #include...

Переделать статический массив структур в динамический
Имею структуру из 8 эл-ов (массивов чаров и 2 подструктуры). Имею исходные данные (5 штук, строк с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru