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

Программная реализация класса обработки одномерного массива с использованием шаблона - C++

Восстановить пароль Регистрация
 
Mariya_1994
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 2
07.08.2016, 23:26     Программная реализация класса обработки одномерного массива с использованием шаблона #1
Описать класс Array обработки одномерных массивов произвольного размера и типа. Использовать шаблон для типа <template>. Память выделяется динамически. К основным функциям (добавление и удаление элементов массива, поиск по ключу, вывод массива на экран по n строк) добавьте функции чтения данных из файла, функции сортировки массива различными способами: методом включения , методом Шелла, быстрой сортировкой Хоара. Сделать сравнительный анализ эффективности данных методов, т.е. для каждого метода и для каждого случая определить количество сравнений и обменов.
Предусмотреть 3 случая исходного массива:
а) случайный массив, б) «лучший случай» (отсортированный массив), в) «худший случай» (массив отсортирован в обратном порядке).
Организовать работу в меню. Выполнить раздельную компиляцию и работу в проекте.

Сделала примерно половину работы и застряла... Не совсем понимаю работу с классами и указателями и из-за этого не могу сделать функции для пунктов меню. Помогите, пожалуйста, скоро нужно сдать(
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
#include <iostream>
    #include "array.h"
namespace cf{
    
    template<class T>
    class Array{
        private:
            T * arr;
            size_t maxSize;
            size_t idx;
        public:
            Array(){
                maxSize = 10;
                idx = 0;
                arr = new T[maxSize];
            }
            Array(const char * fileName){
                // реализовать чтение данных с файла
            }
            Array(size_t maxSize){
                this->maxSize = maxSize;
                idx = 0;
                arr = new T[this->maxSize];
            }
            Array(const Array<T> & array){
                maxSize = array.maxSize;
                idx = array.idx;
                arr = new T[maxSize];
                for(size_t i = 0; i < maxSize; ++i){
                    arr[i] = array.arr[i];
                }
            }
            T * getData() const{
                    return arr;
                }
            void push_back(T var){
                if(idx + 1 <= maxSize - 1){
                    arr[idx] = var;
                    ++idx;
                }
                else{
                    Array<T> a(*this);
                    maxSize *= 2;
                        delete [] arr;
                        arr = new T[maxSize];
                        for(size_t i = 0; i < a.getSize(); ++i){
                            arr[i] = a[i];
                        } 
                        arr[idx] = var;
                        ++idx;
                }
            }
            
            void sort(){
                
            }
            
            void remove(size_t index){
                // нужно сделать удаление
            }
            size_t find(T var, size_t index = 0) const{
                size_t dstIndex = -1;
                if(index >= idx)
                    return dstIndex;
                
                    for(size_t i = idx; i < idx; ++i){
                        if(var == arr[i]){
                            dstIndex = i;
                            break;
                        }
                    }
                    return dstIndex;
                }
            
            size_t getSize() const{
                    return idx;
                }
                T & operator[](size_t index){
                    return arr[index];
                }
                void printScreen(size_t count){
                    for(size_t i = 0; i < idx; ++i){
                        if(!(i % count)){
                            std::cout << std::endl;
                            std::cout << arr[i] << " ";
                        }
                        else{
                            std::cout << arr[i] << " ";
                        }
                    }
                }
            ~Array(){
                delete [] arr;
            }
    };
}
 
int main(){
    
  char ch;
  bool exit = false;
  
  while(std::cin >> ch && exit){
    switch(ch){
        case '1' : 
            std::cout << "1. Create random array" << std::endl;
            // 1 пункт меню
                break;
        case '2' : 
                std::cout << "2. Create sorted array" << std::endl;
                // 2 пункт меню
                break;
        case '3' : 
                std::cout << "3. Create array is sorted in reverse order" << std::endl;
                //3 пункт меню
                break;
        case '4' : 
                std::cout << "4. Sorted array by switching technique" << std::endl;
                // 4 пункт меню
                break;
        case '5' : 
                std::cout << "5. Sorted array by Shell`s" << std::endl;
                // 5 пункт меню
                break;
        case '6' : 
                std::cout << "6. Sorted array by fast sorting" << std::endl;
                // 6 пункт меню
                break;
        case '7' : 
                std::cout << "7. Print array" << std::endl;
                // 7 пункт меню
                break;
            case '8' : 
                std::cout << "8. Exit" << std::endl;
                exit = !exit;
                break;
        default: std::cout << "unknow operation" << std::endl;
    }
  }
  
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2016, 23:26     Программная реализация класса обработки одномерного массива с использованием шаблона
Посмотрите здесь:

C++ Реализация шаблона класса
C++ Шаблоны функций обработки одномерного массива
C++ Написать код обработки одномерного массива
Написать функцию для обработки одномерного массива C++
C++ Переделать программу с использованием шаблона класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
08.08.2016, 08:01     Программная реализация класса обработки одномерного массива с использованием шаблона #2
Сделала примерно половину работы и застряла
По меньшей мере, это некрасиво. Присваивать себе мою работу.
Но то, что вы потрудились поискать по форуму перед созданием темы - уже обнадеживает.
hoggy
5030 / 2113 / 403
Регистрация: 15.11.2014
Сообщений: 4,797
Завершенные тесты: 1
08.08.2016, 21:41     Программная реализация класса обработки одномерного массива с использованием шаблона #3
Цитата Сообщение от egor2116 Посмотреть сообщение
По меньшей мере, это некрасиво. Присваивать себе мою работу.
леди Mariya_1994 делает свою собственную работу,
при этом она не нарушила лицензии исходного кода,
взятого ею из открытого источника:
Программная реализация класса обработки одномерного массива с использованием шаблона

ваше обвинение в воровстве оскорбительно,
и не правомерно.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
10.08.2016, 09:53     Программная реализация класса обработки одномерного массива с использованием шаблона #4
взятого ею из открытого источника:
Почитайте про авторское право, и ваше обвинение в воровстве во лжи оскорбительно и не правомерно.
hoggy
5030 / 2113 / 403
Регистрация: 15.11.2014
Сообщений: 4,797
Завершенные тесты: 1
12.08.2016, 22:50     Программная реализация класса обработки одномерного массива с использованием шаблона #5
Цитата Сообщение от egor2116 Посмотреть сообщение
Почитайте про авторское право правомерно.
почитал. и?

вы похоже не врубаетесь в суть момента:
у вас никто не отбирает авторство вашей работы.
и никто его себе не присваивает.

но пока вы не снабдите свой код лицензией согласно которой,
его можно использовать с определенным ограничениями,
например - обязательно явно указывать ваше авторство,
никто этого делать не обязан.

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

хотите предъявить что-то?
тогда убирайте нафиг свой код из публичного источника,
и снабжайте его лицензией.

только имейте ввиду:
на территории РФ ратифицируются только и только русско-язычные лицензии.

то есть всякие гнутые лицензии у нас здесь не имеют юридической силы.
и держатся только на честном слове.

Цитата Сообщение от egor2116 Посмотреть сообщение
и ваше обвинение в воровстве во лжи оскорбительно и не правомерно.
не пытайтесь на меня клеветать.
я не обвинял вас во лжи.

я написал вам:
Цитата Сообщение от hoggy Посмотреть сообщение
ваше обвинение в воровстве оскорбительно,
и не правомерно.
сначала вы выкладываете код в свободный доступ.
а потом выёживаетесь,
что его кто-то свободно использовал?

маразм крепчал.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
15.08.2016, 16:25     Программная реализация класса обработки одномерного массива с использованием шаблона #6
вы похоже не врубаетесь в суть момента
Как тонко вы подметили свои действия.
Я не запрещал использовать код, пусть пользуется на здоровье. Я лишь подметил, что
Сделала примерно половину работы и застряла
По меньшей мере, это некрасиво. Присваивать себе мою работу.
Что она сделала ? Половину работы !! Я так не думаю. Скажу еще раз пусть пользуется, сколько хочет, на здоровье, но не говорить, что она сделала.
Можно же было написать, что нашла код похожий на реализацию моего задания, но не хватает определенного функционала. Помогите.
А на ваше последнее сообщение могу ответить
маразм крепчал.
Yandex
Объявления
15.08.2016, 16:25     Программная реализация класса обработки одномерного массива с использованием шаблона
Ответ Создать тему
Опции темы

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