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

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

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

Пользовательский класс - C++

05.03.2014, 11:45. Просмотров 340. Ответов 5
Метки нет (Все метки)

Не могу переделать программу под данное условие:

Пользовательский класс Array должен содержать:
- конструктор с параметрами для создания динамических целочисленных массивов и установки начальных значений их элементов (реальные размеры массива (число элементов передаётся) через параметры);
- деструктор для освобождения памяти;
- метод вывода информации на экран;
- методы для выполнения задач из лабораторной работы №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
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <stdlib.h>
#include <iomanip> 
#include <conio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    int a[10]={-3,4,5,6,-7,1,0,3,5,7};
    int b[15]={5,6,-1,2,6,8,1,1,-6,8,-4,4,1,2,4};
    int c[25];
    int i,sum;
    sum=0;
    //---------------------------------
    cout<<"<<Условие>>\n"<<endl;
    cout<<" Из данного массива и другого массива того же типа, но другой";
    cout<<" \n";
    cout<<"размерности сформируйте общий массив и вычислите сумму положительных ";
    cout<<" \n";
    cout<<"элементов, стоящих на нечетных местах.";
    cout<<" \n"<<endl;
    cout<<"<<Решение>>\n"<<endl;
    cout<<"Первый введенный массив[10]= ";  
    for(i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<"\n";
    cout<<"Второй введенный массив[15]= ";
    for(i=0;i<15;i++)
    {
    cout<<b[i]<<" ";
    }
    {
        cout<<"\n";
    }
    for(i=0;i<10;i++)
    {
        c[i]=a[i-1];
        }
    //j=20;
    for (i=10;i<25;i++)
    {
            c[i]=b[i-10];
    }   
    cout << "Финальный массив[25]= ";
    for (i=0; i<25; i++) 
    cout <<c[i]<< " " ;
    for (i=0; i<25; i++)
    {
        if (c[i] > 0 && i % 3 == 0)         
            sum+=c[i];
    }
    cout<<"\n";
    cout<<"Сумма= "<<sum<<endl;
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2014, 11:45     Пользовательский класс
Посмотрите здесь:

Определить пользовательский класс. - C++
Доброго времени суток, зашел в тупик в лабораторной) вот задание: Определить пользовательский класс СТРАНА, имеющий: название...

Queue и пользовательский класс - C++
Недавно начал изучать STL, хотел поработать с queue. Можно ли очередь с типом, который я создал сам? Например class Simple { int a; ...

Определить в программе пользовательский класс - C++
Доброго времени суток, прошу вашей помощи, ибо больше негде, деньгами тоже не богат. И так к заданию: Определить в программе...

Реализовать пользовательский класс комплексных чисел - C++
Помогите пожалуйста сделать задание - программу вычисления комплексного числа. Есть рабочая, которая считает формулу:...

Сделать пользовательский класс QueueWithPriority шаблонным классом - C++
программа работает с определенным типом данных, сказали сделать чтобы можно было работать с любым, а я не совсем понимаю как расставить...

Пользовательский класс Queue: как изменить порядок вывода элементов? - C++
Привет всем такой вопрос возник перешел к изучению конструктора и деструктора вопрос заключаеться в том как сделать так чтоб указынные...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
2 / 2 / 0
Регистрация: 31.01.2013
Сообщений: 61
05.03.2014, 12:18     Пользовательский класс #2
DvogR, условие не корректное.
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
05.03.2014, 12:30  [ТС]     Пользовательский класс #3
Цитата Сообщение от Yandex Посмотреть сообщение
DvogR, условие не корректное.
Ну как я понимаю, в программе должен быть класс, в котором описываются методы: вывода и подсчета результата. А так же конструктор и деструктор
Yandex
2 / 2 / 0
Регистрация: 31.01.2013
Сообщений: 61
05.03.2014, 12:40     Пользовательский класс #4
DvogR,
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <iostream>
#include <assert.h>
using namespace std;
class Vector{
    int capacity, size;
    double* number;
public:
    Vector(){
        capacity=10;
        size=0;
        number=new double[capacity];
    };
 
    Vector(int capacity){
        this->capacity=capacity;
        size=0;
        number=new double[this->capacity];
    };
 
    Vector(const double* ptr, int size){
        capacity=10;
        this->size=size;
        if(size==0) number=new double[capacity];
        else{
            capacity=this->size;
            number=new double[this->size];
        }
        for(int i=0; i<this->size; i++){
            number[i]=ptr[i];
        }
    };
 
    Vector(const Vector& Vector){
        this->capacity=Vector.capacity;
        this->size=Vector.size;
        this->number=new double[this->size];
        for(int i=0; i<this->size; i++){
            this->number[i]=Vector.number[i];
        }
    };
 
    ~Vector(){
        delete[]this->number;
    };
 
    int getSize() const{
        return size;
    }
 
    int getCapacity() const{
        return capacity;
    }
 
    double get(int pos) const{
        return number[pos];
    }
 
    void set(double val, int pos){
        this->number[pos]=val;
    }
 
    void insert(double val, int pos){
        this->size++;
        double* tmp=new double[2*capacity];
        if(this->size>this->capacity){
            for(int i=0; i<this->size; i++){
                tmp[i]=this->number[i];
            }
            delete[]this->number;
            this->capacity*=2;
            this->number=new double[capacity];
            for(int i=0; i<this->size; i++){
                this->number[i]=tmp[i];
            }
            delete[]tmp;
        }
        tmp=new double[this->size];
        tmp[pos]=val;
        for(int i=0; i<pos; i++){
            tmp[i]=number[i];
        }
        for(int i=pos; i<this->size; i++){
            tmp[i+1]=number[i];
        }
        for(int i=0; i<this->size; i++){
            number[i]=tmp[i];
        }
    }
 
    double erase(int pos){
        double m=number[pos];
        for(int i=pos; i<this->size; i++){
            number[i] = number[i+1];
        }
        this->size--;
        return m;
    }
 
    void clear(){
        delete[]number;
        this->capacity=10;
        this->size=0;
        this->number=new double[size];
    }
 
    void print() const{
        if(char(this->number[0])==NULL) cout<<"Empty";
        else{
            for(int i=0; i<this->size; i++){
                cout<<this->number[i]<<" ";
            }
        }
    }
};
 
class Stack{
    Vector n;
public:
    Stack():n(){};
    void push(double val){n.insert(val, 0);}
    double pop(){return n.erase(0);}
    Stack(const Stack& m):n(m.n){};
    int getSize() const{return n.getSize();}
    void clear(){n.clear();}
};
 
class Queue{
    Vector n;
public:
    Queue():n(){};
    void enqueue(double val){n.insert(val, n.getSize());}
    double dequeue(){return n.erase(0);}
    Queue(const Queue& m):n(m.n){};
    int getSize() const{return n.getSize();}
    void clear(){n.clear();}
};
 
int main(){
    Queue s1;
    s1.enqueue(34);
    s1.enqueue(3);
    s1.enqueue(36);
    s1.enqueue(32);
    Queue s(s1);
    cout<<s.dequeue()<<"\n";
    cout<<s.dequeue()<<"\n";
    cout<<s.dequeue()<<"\n";
    cout<<s.dequeue()<<"\n";
 
    Stack s2;
    s2.push(34);
    s2.push(3);
    s2.push(36);
    s2.push(32);
    Stack s3(s2);
    cout<<s3.pop()<<"\n";
    cout<<s3.pop()<<"\n";
    cout<<s3.pop()<<"\n";
    cout<<s3.pop()<<"\n";
    return 0;
}
вот примерчик смотри класс вектор
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
05.03.2014, 12:47  [ТС]     Пользовательский класс #5
ну вообще как это должно выглядеть я представляю, я не могу свою программу перестроить, я не понимаю как это сделать в программе, пробовал что-то сделать) так компилятор почти на каждой строчке ругается))))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 12:59     Пользовательский класс
Еще ссылки по теме:

Пользовательский класс Library: почему не выводятся значения полей класса? - C++
я создала класс Библиотека (название – char* автор – char* стоимость – float) У меня не выводит название, автора и стоимость. В чём моя...

Реализовать произвольный пользовательский класс с функциями-членами Put и Show - C++
Создать несколько обьектов. Написать функции: 1) для ввода данных по обьекту(как Put) 2) для распечатки информации об обьекте (как...

Перегрузить оператор вывода, чтобы заданный пользовательский класс выводился в файл произвольным образом - C++
Добрый вечер. Помогите, пожалуйста. Есть класс class chelovek { private: string name; string pol; string vozrast; string...

Реализовать пользовательский класс Matrix (найти причины возникновения ошибок в коде и исправить эти ошибки) - C++
Доброго времени суток,задание написать класс Matrix,все вроде бы понятно,но почему-то моя матрица инициализируется мусором,не знаю почему,и...

Найти причины и способы исправления ошибок в коде (пользовательский класс "String", перегрузка функций) - C++
Не пойму почему этот код не работает...Подскажите что не так,пожалуйста. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt;...

Реализовать пользовательский класс "Матрица" - C++
Задание: Описать класс для решения задачи. В классе предвидеть: 1. Дополнительный конструктор 2. Метод автоматической инициализации...


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

Или воспользуйтесь поиском по форуму:
Yandex
2 / 2 / 0
Регистрация: 31.01.2013
Сообщений: 61
05.03.2014, 12:59     Пользовательский класс #6
DvogR, это как раз перестроена только добавить метод для слияние массивов и подсчета суммы положительных чисел.)
Yandex
Объявления
05.03.2014, 12:59     Пользовательский класс
Ответ Создать тему
Опции темы

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