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

Конструктор классов, Visual Studio 2008 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задание по работе с массивами http://www.cyberforum.ru/cpp-beginners/thread319500.html
Задание по работе с массивами: Вводится массив и некоторое число X. Сколько в массиве интервалов, куда попадает заданное число. я сам не совсем понимаю, что тут нужно сделать, подскажите пожалуйста.
C++ игра шахматы Пришлите кто нибудь исходник игры Шахматы на С++!!! пожалуйста очень надо))))))))))) Добавлено через 19 секунд очень надо)) http://www.cyberforum.ru/cpp-beginners/thread319485.html
Найти номер первой из строк, содержащих хотя бы один положительный элемент. C++
Помогите please/// Уплотнить заданную матрицу, удаляя из нее строки и столбы, заполненными нулями - это я сделал... осталось - Найти номер первой из строк, содержащих хотя бы один положительный элемент.
Ошибка при компиляции C++
написал программу: #include <iostream> using namespace std; void Vvod (int *A, int n) { for (int i=0;i<n;i++) { cin>>A; } }
C++ Вывод множества http://www.cyberforum.ru/cpp-beginners/thread319473.html
Есть программа, помогите добавить вывод в программу. Вывод какой гость, к кому сходил в гости. Я так понимаю в эту программу нужно добавить циклический вывод - но недогоню( Сама задача: Дано следующее описание: type nаmе=(Вася, Володя, Ира, Марина, Миша, Наташа, Оля, Света, Юля); gosti=set of name; group=array of gosti; Написать программу, определяющую, есть в группе g:group хотя бы один...
C++ Определить какие студенты сдали предметы на 5 помогите создать массив записей (5 записей) студентов ФИО и их оценки по 3м предметам и определить какие студенты сдали на 5. Примерный алгоритм как то так объяснили struct zap.fio строки(1) i | fio | b1 | b2 | b3 | строки(2) i | fio | b1 | b2 | b3 | ..... в программирование плохо щарю а прагу на зачет надо подробнее

Показать сообщение отдельно
Алина_258
0 / 0 / 0
Регистрация: 10.06.2011
Сообщений: 11

Конструктор классов, Visual Studio 2008 - C++

14.06.2011, 15:20. Просмотров 1324. Ответов 8
Метки (Все метки)

Добрый день))

Помогите разобраться с ошибками.

В участке кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Перегрузка конструктора копирование  по умолчанию
Text (char ttext)
{
    //delete str[];
    //в прееменнуб длины записывает длину слова
    size = strlen(ttext.str);
    //заводим символьную переменную с вычисленны м размером
    str = new char[size+1];
    //заводим числовой массив частоты слов
    k= new int[size+1];
    //копируем в str строку
    strcpy(str,ttext.str);
    //возвращаемуказатель *this
    return *this;
}
Компилятор выдаёт ошибки:
Ошибка 5 error C2062: тип "char" не требуется k:\учёба\разработка и стандартизация\la3\la3\la3.cpp 48 la3
Ошибка 6 error C2143: синтаксическая ошибка: отсутствие ";" перед "{" k:\учёба\разработка и стандартизация\la3\la3\la3.cpp 49 la3
Ошибка 7 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) k:\учёба\разработка и стандартизация\la3\la3\la3.cpp 49 la3


Сам программный код:

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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
//подключаемые файлы
#include <ctype>
#include <fstream>
//
#include <windows>
#include <iomanip>
#include "stdafx.h"
#include <string.h>
#include <locale>
#include <stdio.h>
#include <iostream>
//подключение поля namespase
using namespace std;
 
//класс текст
class Text
{
    //скрытые элементы класса
private:
    //указатель на слово
    char* str;
    //разсер
    int size;
    //количество овторений
    int* k;
     //буфер
 
public:  
    //Функция возврата массива символов 
    const char* Show(void);
 
    //Функция сортировки слов (по возрастанию)
    void SortWord(void);
 
    //Перегрузка конструктора копирование  по умолчанию
    Text (char ttext);
    //Конструктор по умолчанию
    Text();    
    //Деструктор класса
    ~Text();
};
 
//Перегрузка конструктора копирование  по умолчанию
Text (char ttext)
{
    //delete str[];
    //в прееменнуб длины записывает длину слова
    size = strlen(ttext.str);
    //заводим символьную переменную с вычисленны м размером
    str = new char[size+1];
    //заводим числовой массив частоты слов
    k= new int[size+1];
    //копируем в str строку
    strcpy(str,ttext.str);
    //возвращаемуказатель *this
    return *this;
}
 
//Функция возврата массива символов 
const char* Text::Show(void)  // константный символьный указатель на функцию класса возвращает значение str
{
    int Word = 0; //Счетчик слов
    char** ArrWord = new char*[size+1]; //Массив слов
    char *buffer = new char[size+1]; //Буферная переменная
    char *ptr = buffer; //Указатель на буферную переменную
    memset(buffer,0,size+1); //Обнулим буфрную переменную
    char *pl;
    char c = ' ';
 
     for (int i=0; i <= strlen(str); i++) //Обойдем по-символьно всю строку
    
 
        *pl = *strrchr(str, c);
 
        int i = 0;
 
        if (!pl) //Если не пробел
        {
            char *ptr;
            *ptr++ = str[i]; //Пишим в буферную переменную и сдвигаем указатель
            i++;
 
        }
        else 
            if (strlen(buffer)>0) //Если же управляющий или разделитель и длина буферной переменной >0
        {
            ArrWord[Word] = new char[size+1]; //Выделим память под слово
            strcpy(ArrWord[Word++],buffer); //Скопируем буферную переменную в слово
            memset(buffer,0,size+1); //Обнулим память буферной переменной
            ptr = buffer; //Поставим указатель на начало буферной переменной
        }
            else {}
 
 
    char buf='0';
    const char *buff = &buf;
    strcpy(str,ArrWord[0]);
    strcpy(str, buff);
    strcpy(str, ArrWord[Word]);
 
//const int Word;
    //const int kо=k[0];
    //const int kw=k[Word];
 
    //struct stroka
    //{char str;
    //int ko;
    //int   kw;};
 
    return  str;
    k[0];
    k[Word];
}
 
//Функция сортировки слов (по возрастанию)
void Text::SortWord(void)
{        
 
    int Word = 0; //Счетчик слов
    char** ArrWord = new char*[size+1]; //Массив слов
    char *buffer = new char[size+1]; //Буферная переменная
    char *ptr = buffer; //Указатель на буферную переменную
    memset(buffer,0,size+1); //Обнулим буфрную переменную
    char *pl;
    char c = ' ';
 
    for (int i=0; i <= strlen(str); i++) //Обойдем по-символьно всю строку
    {
 
 
        *pl = *strrchr(str, c);
 
        if (!pl) //Если не пробел
        {
            char *ptr;
            *ptr++ = str[i]; //Пишим в буферную переменную и сдвигаем указатель
            k[i]=1;
        }
        else 
            if (strlen(buffer)>0) //Если же управляющий или разделитель и длина буферной переменной >0
        {
            ArrWord[Word] = new char[size+1]; //Выделим память под слово
            strcpy(ArrWord[Word++],buffer); //Скопируем буферную переменную в слово
            memset(buffer,0,size+1); //Обнулим память буферной переменной
            ptr = buffer; //Поставим указатель на начало буферной переменной
        }
            else {}
 
    }
    for (int i=0; i<Word-1; i++) /*в цикле обходим все лова*/
    {for (int j=1; j<Word; j++)
 
        {if (ArrWord[i]==ArrWord[j]) /*если слова под обоими объектами одинаковы */
    {k[i] = k[i] + 1;}/* количество повторений увеличиваем на 1*/
}}
 
    //const char *bufer= &buffer;
 
    //int k[size] = {1};
 
    //int str_len = strlen(buffer);
 
    //int i;
   // for(i = 0; i < str_len; i++)
   // {
   //     k[(unsigned char)str[i]]++;
   // }
 
 
    memset(str,0,size+1); //Обнулим строку
    //Сортируем слова по длине
 
    //char Arrword[100];
 
    for (int i = 0; i<Word-1; i++)//Обойдем весь массив слов
    {
        int mkol=k[i];//mkol присваивается значение k текущее
        char * Max =  ArrWord[i];// символьной переменной Max присваивается указатель на пермененную с индексом i массива Arrword
        int pos = i; // значению целочисленной переменной pos присваивается значение i
 
        for (int j=i; j<Word; j++) //Обойдем все слова с i 
        {
            if (mkol < k[pos])
            {
               Max =  ArrWord[j];
                mkol = k[j];
                pos = j;
            }
 
 
if (ArrWord[i]==Max)
{}
else
{strcpy(buffer, ArrWord[i]);
strcpy (ArrWord[i],ArrWord[j]);
strcpy (ArrWord[j], buffer);
}
 
                Max =  ArrWord[i];
                mkol = k[i];
                pos = i;
strcat(str,ArrWord[i]);
                }
        if ( (i+1) != Word) strcat(str," ");
    }
    for (int i = 0; i<Word; i++)
    {
        delete[] ArrWord[i];
    }
    delete [] buffer;
    delete [] ArrWord;
}
 
//Деструктор класса
Text::~Text()
{
    delete[] str;
}
 
 
// главный код программы
int _tmain(int argc, _TCHAR* argv[])
{
    //поключение русского языка
    setlocale(LC_ALL, "Russian");
    
    //Тестирование класса Text
    //инициализируем k
 
char ttext;
cout<<"введите текст"<< endl;
cin>> ttext;
//char * Value= &ttext;
    Text K(ttext);
    //выполняе выполнение функции для K объекта с текстом 
    K.SortWord();
    //печатаем результат
    std::cout<<K.Show()<<std::endl;
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru