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

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

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

Класс, динамический массив строк - C++

26.04.2013, 20:11. Просмотров 660. Ответов 1
Метки нет (Все метки)

Здравствуй, пользователь. Сегодня, наконец выбравшись из рид онли и пройдя процесс регистрация, я спешу попросить тебя о помощи.
Что я имею?
Задание:
Создать класс, включающий в себя динамический массив строк.
Создать методы работы с массивом, а именно: добавить строку в конец\начало, удалить строку из конца\начала.
Причём код должен быть сделан следующим образом: в мейне инициализация и работа с классом, описание класса в заголовке, описание методов класса в отдельном файле.
К данному сообщению в меру своих возможностей работы с этим сайтом я прицепляю свою неудачную попытку написать задание.
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
main:
#include "Header.h"
#include <iostream>
void main (void){
int *size;
size = new int;
std::cout << "Enter size: ";
std::cin >> *size;
string *element;
element = new string [*size];
std::cout << "Enter strings: ";
for(int i=0; i<*size; i++){std::cin >> element[i];};
LinkedList List1(element, *size);
delete(size);
short com=6;
string newstring;
do{switch(com){
case 1: //Вывод содержимого
    List1.show_elements();
    break;
case 2: //Вставка в начало
    std::cin >> newstring;
    List1.insert_beg(newstring);
    break;
case 3: //Вставка в конец
    std::cin >> newstring;
    List1.insert_end(newstring);
    break;
case 4: //Удаление из начала
    List1.remove_beg();
    break;
case 5: //Удаление с конца
    List1.remove_end();
    break;
case 6: //Меню
    List1.menu();
};
std::cin >> com;}while(com!=0);
}
 
 
Заголовок: (Header.h)
#pragma once
#include <string>
typedef std::basic_string<char> string;
class LinkedList {
public:
LinkedList (string*, int);
void insert_beg (string);
void insert_end (string);
void search (string);
void remove_beg (void);
void remove_end (void);
void show_elements (void);
void menu (void);
private:
string *element;
int size;
};
 
 
Реализация методов:
#include "Header.h"
#include <iostream>
LinkedList::LinkedList(string *element_in,int size_in){
size = size_in;
element = new string [size];
for(int i=0;i<size;i++){element[i].swap(element_in[i]);};}
void LinkedList::show_elements(void){for(int i=0;i<size;i++)std::cout << element[i] << std::endl;}
void LinkedList::insert_beg(string newstring){
string *rs;
rs = new string[size];
for(int i=0;i<size;i++){rs[i].swap(element[i]); /*element[i].~basic_string();*/};
size++;
//delete(element);
element = new string[size];
element[0].swap(newstring);
for(int i=0; i<size; i++){element[i+1].swap(rs[i]);};}
void LinkedList::insert_end(string newstring){
size++;
element[size]=newstring;}
void LinkedList::remove_beg(void){
for(int i=0;i<size;i++){element[i].swap(element[i+1]);}
size--;}
void LinkedList::remove_end(void){size--;}
void LinkedList::menu(void){
std::cout << "Press 1 to show elements" << std::endl <<
"Press 2 to insert in the begining" << std::endl <<
"Press 3 to insert in the end" << std::endl <<
"Press 4 to remove from the begining" << std::endl <<
"Press 5 to remove from the end" << std::endl <<
"Press 6 to summon this menu again" << std::endl;}
Чего я хочу?
В принципе, от желающих мне помочь я много просить не могу. Но очень хотелось бы рабочую реализацию массива в классе с рабочей реализацией хотя бы одного метода (вставки в начало, на пример). Если возможно - всё с пояснениями.
Надеюсь, ничего не перепутал. Всем вам заранее большое спасибо.

Добавлено через 21 час 39 минут
Поднимаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 20:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс, динамический массив строк (C++):

Класс динамический массив строк - C++
Здравствуйте! Есть программа, создающая динамический массив строк. Помогите пожалуйста разобраться, что значат эти строки: (Если кому не...

Класс-динамический массив... - C++
Нужен такой класс. А как его лучше написать? Через связанные списки? Нужно, чтобы он был &quot;быстрым&quot;... Основные методы: установка размера,...

Класс "Динамический массив точек", в котором лежит класс Point - C++
Такое вот условаие. Не могу понять что от меня хотят. Может кто или обьяснить или дать пример решения. (лучше просто объяснить). ...

Создать класс-динамический массив - C++
Помогите, пожалуйста!! не могу решить задачу, очень важно! Условие:создайте класс – динамический массив. В качестве элементов массива...

Описать класс, хранящий динамический массив - C++
Нужно написать простую программу: описать класс, хранящий динамический массив, два производных класса имеют по одной функции, одна из...

динамический массив строк - C++
Вот такое дело есть а как зделать так чтобы я мог ввести то количество строк что я хочю ? а не 3. Тоесть сделать динамический массив строк....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DrARTI
0 / 1 / 0
Регистрация: 25.04.2013
Сообщений: 6
27.04.2013, 21:01  [ТС] #2
Поднимаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2013, 21:01
Привет! Вот еще темы с ответами:

Динамический массив строк - C++
Здравствуйте нужна помощь по коду. Моя задача: создать динамический массив строк( по поводу терминов, возможно ошибка, но делать нужно то,...

Динамический массив строк - C++
Добрый вечер. Подскажите, пожалуйста, в чем может быть проблема. Первый элемент массива почему-то автоматически пропускается: ...

Динамический массив строк - C++
Мне нужно считать строки из файла но я не знаю сколько будет строк! и занести их в массив указателей на строки. чтобы было так *a =...

Шаблонный класс, определяющий двумерный динамический массив - C++
Прошу помощи Задание: Создайте шаблонный класс, определяющий двумерный динамический массив, тип элементов которого задается аргументом...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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