Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 14.03.2016
Сообщений: 1

Что нужно изменить?

14.03.2016, 19:27. Показов 614. Ответов 0

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

Представленный вариант:
Функция с переменным числом параметров получает: Строки
Функция обработки символа: Замена всех загл. (рус) на ~

Мой вариант(тот который мне нужен):
Функция с переменным числом параметров получает: Слова
Функция обработки символа: Все буквы строчные (англ)


Вот полный текст Задания: Переписать программу, разработанную в ходе выполнения лабораторной работы №3 с использованием классов и потоков. Для чего создать класс данных для хранения строк, слов или предложений (в зависимости от варианта задания). Разрешается не использовать переменное количество аргументов и вызовы по указателю. Для модификации требуемой по варианту задания разработанная функция должна быть представлена в виде метода данного класса. Для организации ввода/вывода переопределить соответствующие операторы потокового ввода/вывода (>> и <<). Выводы по лабораторной работе должны содержать сравнительный анализ программ (данной и разработанной в ЛР№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
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
/*#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}
*/
 
//---------------------------------------------------------------------------
 
#include <iostream>
#include <fstream>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
 
#pragma hdrstop
 
using namespace std;
 
//---------------------------------------------------------------------------7
 
class TStringConv
{
protected:
  char* cString;
  int   iStringLen;
  char cCharProcessing(char cInput);
public:
  void vProcessConv(void);
  TStringConv(int iStrLen = 0);
  ~TStringConv();
  friend ifstream& operator >> (ifstream& s, TStringConv& sc)
  {
    int iCharCount = 0;
    while((!s.eof()) && iCharCount < sc.iStringLen) {
    s.get(sc.cString[iCharCount++]);                     /* Чтение символ*/
    if(sc.cString[iCharCount-1] == '\n' || sc.cString[iCharCount-1] == '\r') {           /* Подсчет      */
     sc.cString[iCharCount] = '\0';
     if(sc.cString[iCharCount-1] != '\r') break;
    } //else iCharCount++;
    }
//    s.get(sc.cString,sc.iStringLen,'\n');
    return s;
  }
  friend ofstream& operator << (ofstream& s, TStringConv& sc)
  {
    s << sc.cString << endl;
    return s;
  }
};
 
typedef TStringConv* PTStringConv;
 
TStringConv::TStringConv(int iStrLen)
{
  iStringLen = iStrLen;
  if(iStringLen) cString = new char[iStringLen];
}
 
TStringConv::~TStringConv()
{
  if(iStringLen) delete cString;
}
 /*
istream& operator >> (istream& s, TStringConv& sc)
{
  s.get(sc.cString,sc.iStringLen,'\n');
  return s;
}
 
ostream& operator << (ostream& s, TStringConv& sc)
{
  s << sc.cString << endl;
  return s;
}  */
 
void TStringConv::vProcessConv(void)
{
  for(int j = 0;j < iStringLen && cString[j];j++) {
       char cChar = cCharProcessing(cString[j]);    /* Обработка    */
       cString[j] = cChar;
  }
}
 
TStringConv** ppcStringProcessing(TStringConv **ppscText,int iStrCount)
{
  for(int i = 0;i < iStrCount;i++)
         ppscText[i]->vProcessConv();            /* Обработка    */
  return ppscText;
}
 
#pragma argsused
int main(int argc, char* argv[])
{
   ifstream fileIn("Input.txt");                     /* Объявл.файлы */
                                                     /* Открытие Вх. */
                                                     /* Счетчики=0   */
   int iCharCount = 0, iStrMaxCharCount = 0, iStrCount = 0, i = 0, j = 0;
   TStringConv **ppscText;
   if (fileIn == NULL)  {                            /* Удачно?      */
      cerr << "Cannot open input file." << endl;     /* нет- Ошибка  */
      return 1;                                      /*      Возврат */
   }
   ofstream fileOut("Output.txt");                   /* Открытие Вых.*/
   if (fileOut == NULL) {                            /* Удачно?      */
      fileIn.close();                                /* нет- Закр.Вх.*/
      cerr << "Cannot open output file." << endl;    /*      Ошибка  */
      return 1;                                      /*      Возврат */
   }
   while (!fileIn.eof()) {                           /* Цикл подсчета*/
      char cChar;
      fileIn.get(cChar);                             /* Чтение символ*/
      if(cChar == '\n' || cChar == '\r') {           /* Подсчет      */
       if(iCharCount > iStrMaxCharCount) iStrMaxCharCount = iCharCount;
       iCharCount = 0;
       if(cChar != '\r') iStrCount++;
      } else iCharCount++;
   }
   iStrCount++;
   ppscText = new PTStringConv[iStrCount];
   if (ppscText == NULL)  {                           /* Удачно?      */
      cerr << "Cannot allocate memory." << endl;     /* нет- Ошибка  */
      fileIn.close();                                /* Закрытие Вх. */
      fileOut.close();                               /* Закрытие Вых.*/
      return 1;                                      /*      Возврат */
   }
   iStrMaxCharCount++;
   for(i=0;i<iStrCount;i++) {
      ppscText[i] = new TStringConv(iStrMaxCharCount);
      if (ppscText[i] == NULL)  {                    /* Удачно?      */
         cerr << "Cannot allocate memory." << endl; /* нет- Ошибка  */
         for(j = 0;j < i;j++)                        /*Освобождаем   */
             delete ppscText[j];                     /*память        */
             delete ppscText;                     /*память        */
         fileIn.close();                             /* Закрытие Вх. */
         fileOut.close();                            /* Закрытие Вых.*/
         return 1;                                   /*      Возврат */
      }
   }
   fileIn.clear();
   fileIn.seekg(0,ios_base::beg);
//   iStrCount = 0;
   int k = 0;
   while ((!fileIn.eof()) && k < iStrCount)        { /* Цикл чтения  */
      fileIn >> *(ppscText[k]);              /* Чтение строки*/
      k++;
   }
//   iStrCount++;
   ppcStringProcessing(ppscText,iStrCount);
   for(int i = 0;i < iStrCount;i++)
      fileOut << *(ppscText[i]);                     /* Вывод        */
   for(int i = 0;i < iStrCount;i++)                  /*Освобождаем   */
             delete ppscText[i];                     /*память        */
   delete ppscText;
   fileIn.close();                                   /* Закрытие Вх. */
   fileOut.close();                                  /* Закрытие Вых.*/
   cout << "All OK!" << endl;
   cin.get(); //getch();
   return 0;
}
 
char TStringConv::cCharProcessing(char cInput)
{
if(cInput >= 'А' && cInput <= 'Я')
      return 126;
   else return cInput;
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2016, 19:27
Ответы с готовыми решениями:

Не понимаю что нужно изменить
#include &quot;stdafx.h&quot; #include &quot;MyString.h&quot; int _tmain(int argc, _TCHAR* argv) { MyString s1=new MyString(&quot;I love&quot;); ...

Что нужно изменить, чтобы получился однонаправленный список?
Что нужно добавить или изменить, чтобы получился однонаправленный список? struct car{ char name; // название марки машины int top;...

В приложении Dev C++ не компилируется код, что нужно изменить?
#include &lt;iostream&gt; using namespace std; int main() { cout&lt;&lt;&quot;Avtor: Tsapenko K.V. &quot;; cout&lt;&lt;&quot;Lab1 SPZ\n&quot;; ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2016, 19:27
Помогаю со студенческими работами здесь

Что нужно изменить, чтобы был динамический массив?
Не нашел ничего дельного на эту тему. Как объявить переменную в данном случае, чтобы массив был динамическим? Не могу понять что делать....

что нужно изменить чтобы прога давала нормальный результат?
#include &lt;iostream&gt; using namespace std; int * enter_matrix(int n) { int * matrix_addres; matrix_addres=new int; cout...

Что нужно изменить в функции,чтобы Visual начал воспринимать
#include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;Windows.h&gt; using namespace std; void sravn(char s); void main() { ...

Что нужно изменить ,чтобы функция с методом Гаусса возвращала массив?
Вот пример кода: double gaus(int n, double c, double d) { int k,k1,kn,i,j; vector&lt;double&gt; t; double temp; for...

Обратная польская запись.Написал программу по алгоритму.Нужно кое-что изменить
Преподаватель дал мне &quot;алгоритм&quot; и сказал написать программу по этому алгоритму. &quot;Алгоритм&quot;:Нам понадобится стек для переменных...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru