Написал программу по следующему задание:
Класс контейнер - абстракция текста, метод удаления одной, метод добавления строки, метод очистки текста, метод измерения самой длинной строки, метод вывода. Пишу в VS 2008 professional.
У меня возникли две проблемы:
1. Из класса text мне нужно перенести метод string getMaxLenghtRow() в класс Row и реализовать его в файлик Row.cpp, но после переноса мне выдает следующую ошибку, подскажите как ее исправить. Смысл ошибки я понимаю, я не понимаю как правильно организовать в программе чтобы не выбивало эту ошибку, покажите пожалуйста по возможности уже в исправленном коде как должно быть.
Цитата:
Row.cpp
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(15) : error C2065: 'texte' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(15) : error C2228: left of '.dataRow' must have class/struct/union
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(16) : error C2065: 'amountRows' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(18) : error C2065: 'texte' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(18) : error C2228: left of '.dataRow' must have class/struct/union
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(18) : error C2228: left of '.length' must have class/struct/union
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.cpp(20) : error C2065: 'texte' : undeclared identifier
d:\мои документы\visual studio 2008\projects\laba3_cpp\laba3_cpp\r ow.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";
}