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

Не знаю как переделать лабу, есть пример - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разделить массив по 3 элемента http://www.cyberforum.ru/cpp-beginners/thread310376.html
Помогите решить задачу по одномерным массивам. Дан массив из 18 елементов. Нужно разделить этот массив по 3 елемента. Из каждых 3-х елементов массива вычислить среднее арифметическое. И эти средние...
C++ взаимодействие нескольких процессов в среде Windows У меня есть готовая рабочая программа состоящая из двух файлов: процесс(сервер) и процесс(клиент). Она отлично работает. Проблема заключается в том, что препод не принимает её т.к. ему уже... http://www.cyberforum.ru/cpp-beginners/thread310358.html
Работа с классами C++
помогите пожалуйста, срочно нужно решить задачу в С++ 1. Определить класс с именем ZNAK, содержащий следующие поля: • фамилия, имя; • знак Зодиака; • день рождения (массив из трех чисел). 2....
C++ программа работает неправильно
Дана символьная матрица размера 13 на 18. Найти: номер первой по порядку строки, содержащий наибольшее число цифр; #include <iostream> #include <cstdlib> #include <conio.h> using namespace...
C++ Построение http://www.cyberforum.ru/cpp-beginners/thread310329.html
Здравствуйте вот нужно отредактировать программу т.к как не работает. Заранее спасибо все что не делал не могу понять , она не работает . построения графика функции f(x)=(sin(x/2)*х при x= ...
C++ Матрицы Нужно ввести елементы матрицы с левого верхнего угла по диагонали в право в гору подробнее

Показать сообщение отдельно
zesen
122 / 85 / 1
Регистрация: 17.10.2010
Сообщений: 436

Не знаю как переделать лабу, есть пример - C++

01.06.2011, 20:30. Просмотров 2530. Ответов 7
Метки (Все метки)

Есть готовая лаба, нужно переделать под другой вариан
Помогите, пожалуйста.....

Порядок выполнения работы.
1. Выбрать класс АТД в соответствии с вариантом.
2. Определить и реализовать в классе конструкторы, деструктор, функции Input (ввод с клавиатуры) и Print (вывод на экран), перегрузить операцию присваивания.
3. Написать программу тестирования класса и выполнить тестирование.
4. Дополнить определение класса заданными перегруженными операциями ( в соответствии с вариантом).
5. Реализовать эти операции. Выполнить тестирование.

Методические указания.
1.Класс АТД реализовать как динамический массив. Для этого определение класса должно иметь следующие поля:
 указатель на начало массива;
 максимальный размер массива;
 текущий размер массива.
2. Конструкторы класса размещают массив в памяти и устанавливают его максимальный и текущий размер. Для задания максимального массива использовать константу, определяемую вне класса.
3. Чтобы у вас не возникало проблем, аккуратно работайте с константными объектами. Например:
* конструктор копирования следует определить так:
MyClass (const MyClass& ob);
* операцию присваивания перегрузить так:
MyClass& operator = (const MyClass& ob);


4. Для удобства реализации операций-функций реализовать в классе private(protected)-функции, работающие непосредственно с реализацией класса. Например, для класса множество это могут быть следующие функции:
 включить элемент в множество;
 найти элемент и возвратить его индекс;
 удалить элемент;
 определить, принадлежит ли элемент множеству.
Указанные функции используются в реализации общедоступных функций-операций (operator).

Задание варианта который есть:

2. АТД - множество с элементами типа char. Дополнительно перегрузить следующие операции:
- удалить элемент из множества (типа set-char);
* пересечение множеств;
< сравнение множеств.

текст готовой лабы
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
#include <stdio.h>
#include <stdafx.h>
#include <conio.h>
//#include <iostream.h>
class charArray {
private:
    char *data;
    int size;
public:
    charArray(void){
        data=new char[100];
        size=100;
        for(int index=0;index<size;index++)
            data[index]=0;
    }
    
    charArray(int mySize){
        data=new char[mySize];
        size=mySize;
        for(int index=0;index<size;index++)
            data[index]=0;
    }
    charArray(charArray& ancharArray){ //Конструктор инициализации
        size=ancharArray.size;
        data=new char[ancharArray.size];
        for(int index=0;index<size;index++)
            data[index]=ancharArray.data[index];
    }
    char& operator [](int index){
        if (index>0&&index<=size) {
            return data[index-1];
        }
    }
    charArray& operator = (const charArray& ancharArray) { //присваивание
        if (size > ancharArray.size){
            for (int index=0;index<ancharArray.size;index++)
                data[index]=ancharArray.data[index];
            for (int index=ancharArray.size;index<size;index++)
                data[index]=0;
        }else{
            for (int index=ancharArray.size;index<size;index++)
                data[index]=ancharArray.data[index];
        }
 
        return *this;
    }
    void put(int at,char value){
        if(at>0&&at<=size) {
            data[at-1]=value;
        }
 
    }
    char get(int at){
        if(at>0&&at<=size) {
            return data[at-1];
        }
        else return '\0';
 
    }
    
    ~charArray(){ 
        delete data;
    }
    friend charArray operator *(charArray& c1,charArray& c2){
        
    }
    int operator < (const charArray& ancharArray){
        return size < ancharArray.size;
    }
    charArray& operator -(char ch1){
        for (int index1=0;index1<size;index1++)
            if (data[index1]==ch1)
                for (int index2=index1;index2<size+1;index2++)
                        data[index2]=data[index2+1];
    return *this;           
    }
};
 
 
void main(){
int i1=1;
int i2=1;
charArray a1,a2;
a1.put(i1++,'a');
a1.put(i1++,'b');
a1.put(i1++,'c');
a1.put(i1++,'d');
a1.put(i1++,'e');
a1.put(i1++,'f');
 
a2.put(i2++,'c');
a2.put(i2++,'e');
a2.put(i2++,'f');
 
}
нужно переделать для

4. АТД - множество с элементами типа char. Дополнительно перегрузить следующие операции:
+ добавить элемент в множество (типа set+char);
* пересечение множеств;
int() мощность множества.


я как понимаю мощность это количество элементов
нужно переделать (- на +) и мощность
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru