Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс контейнер - работа со строками 
:(
    Опции темы
ArniLand
Дата 31.3.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



Написал программу по следующему задание:
Класс контейнер - абстракция текста, метод удаления одной, метод добавления строки, метод очистки текста, метод измерения самой длинной строки, метод вывода. Пишу в VS 2008 professional.
У меня возникли две проблемы: 
1.  Из класса text мне нужно перенести метод string getMaxLenghtRow() в класс Row и реализовать его в файлик Row.cpp, но после переноса мне выдает следующую ошибку, подскажите как ее исправить. Смысл ошибки я понимаю, я не понимаю как правильно организовать в программе чтобы не выбивало эту ошибку, покажите пожалуйста по возможности уже в исправленном коде как должно быть.
Цитата

Row.cpp
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(15) : error C2065: 'texte' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(15) : error C2228: left of '.dataRow' must have class/struct/union
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(16) : error C2065: 'amountRows' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(18) : error C2065: 'texte' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(18) : error C2228: left of '.dataRow' must have class/struct/union
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(18) : error C2228: left of '.length' must have class/struct/union
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(20) : error C2065: 'texte' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\row.cpp(20) : error C2228: left of '.dataRow' must have class/struct/union


2. Нужно добавить метод в text.h, ну и соотвественно text .cpp и чтобы выводилось в main.cpp, который будет удалять символ из сроки, например строка "abcdft" и нужно удалить из нее символ "а", тоже  покажите пожалуйста по возможности уже в написанном коде как должно быть. Реализацию метода можно сделать как то так думаю, но как организовать в программе свой не пойму.
Код

String s = "aljfhwfhgc vwiu";
s.Delete(10, 5)


Код программы:
Код

//Row.h
#pragma once
#include "stdafx.h"
#include <string>
#include <iostream>

using namespace std;

class Row
{
public:
    string dataRow;
    Row();
    Row(string);
    string getMaxLenghtRow();
};

//Row.cpp
#include "Row.h"
#include "text.h"

Row::Row()
{
}

Row::Row(string str)
{
    dataRow = str;
}

string Row::getMaxLenghtRow()
{ 
    string max = texte[0].dataRow;
    for (int i = 1; i < amountRows; i++)
    {
        if (texte[i].dataRow.length() > max.length())
        {
            max = texte[i].dataRow;
        }
    }

    return max;
}
//Text.h
class Texts
{
public:
    
    Texts();
    void addRow(string str);
    void removeRow(int numberRow);
    void removeAll();
    
    string ToString();
    Row texte[100];
    int amountRows;
};

//text.cpp
#include "text.h"
#include "stdafx.h"

Texts::Texts()
{
    amountRows = 0;
}
void Texts::addRow(string str)
{

    texte[amountRows].dataRow = str;
    
    amountRows++;
}
void Texts::removeRow(int numberRow)
{
    for (int i = numberRow; i < (countRows - 1); i++)
    {
        texte[i] = texte[i + 1];
    }
    texte[countRows - 1].dataRow = "";
    amountRows--;
}
void Texts::removeAll()
{
    
    for (int i = 0; i < countRows; i++)
    {
        texte[i].dataRow = "";
    }
    amountRows = 0;
}



string Texts::ToString()
{
    string str = "";
    for (int i = 0; i < amountRows; i++)
    {
        str = str + " " + texte[i].dataRow;
    }

    return str;
}

//main.cpp
#include "text.h"
#include "Row.h"


void main()
{
    cout<<"Vvedit kilkist ryatkiv: ";
    
    int countRow;
    
    cin>>countRow;
            
    cout<<"Vvedit ryadki: ";
    
    Texts objText;
    Row objRow;
    
    string temp;

    for (int i = 0; i < countRow; i++)
    {
        
        cin>>temp;
        objText.addRow(temp);
    }
    
    cout<<"------------------\n\n"<<objText.ToString()<<"\n------------------\n";

    cout<<"\nVvedit nomer ryadka dlya vudalennya: ";
    
    int numberOfRow;
    
    cin>>numberOfRow;
     
    if (numberOfRow < countRow)
    {
        
        objText.removeRow(numberOfRow - 1);
    }

    cout<<"------------------\n\n"<<objText.ToString()<<"\n------------------\n";

    cout<<"\nNaydovshiy ryadok v teksti: " + objRow.getMaxLenghtRow();

    

    cout<<"\nOchischennya texty.";
    
    objText.removeAll();
    cout<<"------------------\n\n"<<objText.ToString()<<"\n------------------\n";
}



Это сообщение отредактировал(а) ArniLand - 31.3.2010, 18:10
PM MAIL   Вверх
Albor
Дата 31.3.2010, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



А где реализация класса Row (row.cpp "пустой")? 
PM MAIL ICQ   Вверх
ArniLand
Дата 31.3.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



Albor,  виноват, исправил. Теперь как должно быть.
PM MAIL   Вверх
ИванМ
Дата 31.3.2010, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



массив texte не объявлен в классе Row, а вы к нему из него обращаетесь.

Добавлено через 2 минуты и 26 секунд
как я понимаю метод getMaxLenghtRow() возвращает максимальную по длине строку. А что он может делать в классе Row, который реализует одну единственную строку?
PM MAIL   Вверх
smalcom
Дата 31.3.2010, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Цитата

Пишу в VS 2008 professional

куплена или ворованная?

Цитата

Смысл ошибки я понимаю

если бы понимал, то темы не было бы.


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.