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

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

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

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

05.03.2014, 11:45. Просмотров 308. Ответов 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++
Определить в программе пользовательский класс C++
C++ Разработать класс, обьект которого реализует "пользовательский" тип данных
C++ Реализовать произвольный пользовательский класс с функциями-членами Put и Show
C++ Queue и пользовательский класс
Пользовательский класс Library: почему не выводятся значения полей класса? C++
Реализовать пользовательский класс Matrix (найти причины возникновения ошибок в коде и исправить эти ошибки) C++
C++ Пользовательский класс Queue: как изменить порядок вывода элементов?
C++ Сделать пользовательский класс QueueWithPriority шаблонным классом
C++ Реализовать пользовательский класс Pair (упрощённый аналог std::pair)
C++ Перегрузить оператор вывода, чтобы заданный пользовательский класс выводился в файл произвольным образом
Реализовать пользовательский класс "Математический вектор" C++

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

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

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