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

Согласно заданию реализовать класс абстрактного типа данных (далее АТД) как динамический массив. Для этого определение класса должно иметь следующие - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шифр Вижиненра, шифр скитала http://www.cyberforum.ru/cpp-beginners/thread1105049.html
Я много прочитал информации и захотел реализовать эти шифры на Buider C++, а вот как это сделать. Кому интересно, напишите мне примеры этих кодов. Интересно ведь)
C++ Управление вводом с клавиатуры в С++ Добрый день, подскажите как добиться вот этого результата на С++ вот пример: нажимаю я клавишу "1", по нажатию выполняется ++a, а как только отпущу, то --a. Данный результат должен выводиться на... http://www.cyberforum.ru/cpp-beginners/thread1105037.html
Что значит запись в макросе C++
#define MAX(x,y) (x > y ? x : y) Собсно,макрос,который находит наибольшее число. Вначале идёт сравнение,а вот дальше я не понял,для чего нужны знаки ? и : .
C++ Найти наименьшее число среди четных элементов последовательности
Напишите пожалуйста программу по условию задачи :Вводится последовательность из N положительных целых чисел. Найти наименьшее число среди четных элементов последовательности. Заранее благодарю за...
C++ Не выводит список введенный с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1105027.html
Программа должна выводить с начало список всех игроков и ниже тех которые играют в основном составе... а выводит только тех которые забиты до компиляции :( #include"stdafx.h" #include"iostream"...
C++ Найти наименьшее число, которое удовлетворяет условию Дано вещественное число a. Найти такое наименьшее n, что 1+1/2+1/3+…+1/n >a. Пункт 3.4 Правил: Спокойствие и хладнокровие помогут вам постичь себя. подробнее

Показать сообщение отдельно
Рыжий Лис
Просто Лис
344 / 268 / 80
Регистрация: 17.05.2012
Сообщений: 1,116
Записей в блоге: 4
01.03.2014, 22:16
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
#include <iostream>
using namespace std;
 
class SetChar{// класс
private://приватные, закрытые поля класса
    char *arr; //указатель на начало массива;
    int maxSize; //максимальный размер массива;
    int size; //текущий размер массива.
public://открытые поля и методы класса
    SetChar(){ //конструктор по умолчанию
        maxSize = 0; //присваивание значений полям класса
        size = 0;
        arr = NULL;
    }
    SetChar(int maxSize){//другой конструктор с параметрами
        this->maxSize = maxSize;
        size = 0;
        arr = new char[maxSize];//создание массива максимальной длины
    }
    SetChar(const SetChar &setchar){
        maxSize = setchar.maxSize;
        arr = new char[maxSize];
        size = setchar.size;
        for(int i = 0; i < size; i++)
            arr[i] = setchar.arr[i];
    }
    ~SetChar(){//деструктор
        delete [] arr;//освобождение памяти из под массива
    }
    
    bool in(char item){
        for(int i = 0; i < size; i++)
            if(arr[i]==item) return true;
        return false;
    }
    
    SetChar &operator += (char item){
        if(in(item)==false && size < maxSize){
            arr[size] = item;
            size++;
        }
        return *this;
    }
 
    SetChar &operator = (SetChar &setchar){
        if(this == &setchar) return *this;
        if(arr != NULL) delete [] arr;
        maxSize = setchar.maxSize;
        arr = new char[maxSize];
        size = setchar.size;
        for(int i = 0; i < size; i++)
            arr[i] = setchar.arr[i];
        return *this;
    }
 
    bool operator == (SetChar &setchar){
        if(size != setchar.size) return false;
        // предварительно отсортировать arr и setchar.arr
        for(int i = 0; i < size; i++)
            if(arr[i]!=setchar.arr[i]) return false;
        return true;
    }
 
    void input(int size){
        if(size > maxSize) return ;
        this->size = size;
        int i = 0;
        while(i < size){
            char item = (33 + rand()%100);
        //  cin >> item;
            if(!in(item)) {
                arr[i] = item;
                i++;
            }
        }   
    }
    
    void print(){
        for(int i = 0; i < size; i++)
            cout << arr[i] << " ";
        cout << endl;
    }
    friend SetChar operator + (SetChar &s1, SetChar &s2);
    friend SetChar operator * (SetChar &s1, SetChar &s2);
};
 
SetChar operator + (SetChar &s1, SetChar &s2){
    int maxTotalSize = s1.maxSize + s2.maxSize;
    SetChar result(maxTotalSize);   
    for(int i = 0; i < s1.size; i++){
        result.arr[i] = s1.arr[i];
    }
    result.size = s1.size;
    for(int i = 0; i < s2.size; i++){
        result += s2.arr[i];
    }
    return result;
}
 
SetChar operator * (SetChar &s1, SetChar &s2){
    int mSize;
    if(s1.maxSize > s2.maxSize) mSize = s1.maxSize; else mSize = s2.maxSize;
    SetChar result(mSize);
    for(int i = 0; i < s1.size; i++){
        for(int j = 0 ; j < s2.size; j++)
            if(s1.arr[i] == s2.arr[j])
                result += s1.arr[i];
    }
    return result;
}
 
int main(){
    srand(5);
    SetChar st(10);
    st.input(5);
    st.print();
 
    SetChar st2(10);
    st2.input(5);
    st2.print();
    
    if(st == st2) cout << "set equal" << endl;
    else cout << "set no equal" << endl;
 
    SetChar st1 = st2;
    if(st1 == st2) cout << "set equal" << endl;
    else cout << "set no equal" << endl;
 
    SetChar st3;
    st3 = st + st2;
    st3.print();
 
    
  
    st3 += 't';
 
 
    st3.print();
 
    SetChar st4;
    st4 = st*st2;
    cout <<"--------"<< endl;
    st4.print();
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru