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

Опять они ... классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа, которая ищет в данном текстовом файле строки, которые имеют непарное количество слов http://www.cyberforum.ru/cpp-beginners/thread309297.html
Помогите сделать программу,плиз: Программа, которая ищет в данном текстовом файле строки, которые имеют непарное количество слов
C++ dll? где можно почитать про DLL как стэк увеличить кучи и т.д. http://www.cyberforum.ru/cpp-beginners/thread309294.html
4 задания, очень нужно C++
Ситуация оч.сложная, помогите пожалуйста, с задачами. 1. Дана функция и известно, что она монотонна на Найти приближенное решение уравнения f(x)=0 с точностью до 0.001 на этом отрезке или сообить, что решения нет. Для решения задачи определить в программе функцию float f(float x) и переменные а и b, например, так float a = 0; float b = 2; float f(float x) {
Написать программу, которая определяет учеников, чей рост больше r C++
Написать программу, которая определяет учеников в классе, чей рост превышает значение r. Данные хранить в двумерном массиве.
C++ Дан файл f , компоненты которого являются действительными числами. http://www.cyberforum.ru/cpp-beginners/thread309282.html
Дан файл f , компоненты которого являются действительными числами. Найти: А) сумму компонент файла f ; Б) произведение компонент файла f ; В) сумму квадратов компонент файла f ; Г) модуль суммы и квадрат произведения компонент файла f; Д) последнюю компоненту файла.
C++ Дан текст; выяснить, является ли этот текст: А) идентификатором Б) десятичной записью целого числа Дан текст; выяснить, является ли этот текст: А) идентификатором Б) десятичной записью целого числа подробнее

Показать сообщение отдельно
gorgutz1234
3 / 3 / 1
Регистрация: 02.03.2010
Сообщений: 75
31.05.2011, 17:02     Опять они ... классы
Привет всем!Мне очень нужна ваща помощь в исправлении ошибок в классе.
Вот сам класс
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
#pragma argsused
#include <iostream.h>
#include <conio.h>
#include <string.h>
class _string
  { protected:
  char *str;
  int len;
  public:
  _string()
  {
   str=new char;    //constructor without parametrs
   str[0]='\0';
   len=0;
  }
 
  _string(char *st)
  {int i=0;
   while (st[i]!='\0')   //constructor with C string
   i++;
   len=i;
   str=new char[i];
   strcpy(str,st);
   }
 
  _string(char st)         //construcnor for symbol
  {   str=new char;
      str[0]=st;
      str[1]='\0';
      len=1;
   }
 
  _string(_string &str1)  //copy constructor
 {   str=new char;
     len=str1.len;
     strcpy(str,str1.str);
 }
 void show ()
 {
  cout<<str<<"   "<<len<<endl;
 }
 int dlina(char *st)
 {
 int i;
 while (st[i]!='\0')
 i++;
 len=i;
 return len;
  }
 char *clear(char *st)   //function clear
    {
    st[0]='\0';
     strcpy(str,st);
     return str;
     }
 };
 //~_string() { delete str; len=0;}  //destructor
 
 
 
  class bit_string: public _string    //child
  {
  public:
  bit_string()
  {                //constructor  without parametrs
  _string();
  }
 
  bit_string(char *st):_string(st)
  {
 
     int i=0;
 
     while (str[i]!='\0')
        {if ((str[i]!='0') && (st[i]!='1')&& (st[i]!='-')) {
                                             str[0]='\0';
                                             len=0;
                                             break;
                                            }
                                            i++;
         }
   }
 
   bit_string(char st):_string(st)         //construcnor for symbol
   {
   //_string(st)
   if  ((str[0]!='0') && (str[0]!='1')) {str[0]='\0';
                                len=0; }
   }
   bit_string(bit_string &str1):_string(str1)  //copy constructor
 {   str=new char;
     len=str1.len;
     strcpy(str,str1.str);
 }
  
  // ~string() { delete str; }; 
 
    char *negative_number ()
     { int *mas;
        mas=new int [10];                              //convert to negative number
        int i,l,dl,smart;
      if (str[0]=='-') {i=1;
                      while (str[i]!='\0') {
                                         if (str[i]=='0') str[i]='1';
                                         if (str[i]=='1') str[i]='0';
                                         i++;
                                         l+=i;
                                         }
                        i=0;
                        int a,b,c,s;
                        c=atoi(str);
                        while (b>0)
                        {
                        a=c % 10;
                        b=c / 10;
                        c=b;
                        mas[l]=a;
                        l=l-1;
                        }
                        smart=0;
                        s=0;
                        for (i=l;i>0;i--)
                        {
                        s=mas[i]+1;
                        if (s=1) {mas[i]=1; smart=0;}
                        if (s=2) {mas[i]=0; smart=1;}
                        if (s=3) {mas[i]=1; smart=1;}
                        if (smart==0) break;
                        }
                       }
        while (l>i)
     {itoa( mas[i],str,10);
     return str;
     };
 
 bit_string operator == (bit_string *str1)
   {
    if (strcmp(str,str1->str))
      return false;
     };
 bit_string operator = (bit_string *str1)
 {
 };
 bit_string operator + (bit_string *str1)
 { int mas1,mas2,a1,a2,b1,b2,s,sn=0,l1,l2,i,j,l;
   int *m1,*m2,*m;
   m1=new int [10];
   m2=new int [10];
   m=new int [10];
   mas1=atoi (str1->str);
   mas2=atoi (str);
    l1=strlen(str1->str);
    l2=strlen(str);
   l=l1+l2;
   sn=0;
   for (i=l;l-1<i;i++)
   {
   a1=mas1 % 10;       // mod
   a2=mas2 % 10;
   b1=mas1 / 10;       // div
   b2=mas2 / 10;
   mas1=b1;
   mas2=b2;
   m1[l1]=a1;
   m2[l2]=a2;
   l1--;
   l2--;
   }
   for (i=l;i>0;i--)
   {
   s=m2[l2]+m1[l1]+sn;
   if (s==0) {m[i]=0; sn=0;}
   if (s==1) {m[i]=1; sn=0;}
   if (s==2) {m[i]=0; sn=1;}
   if (s==3) {m[i]=1; sn=1;}
   l1--;
   l2--;
   }                   i=0;
   while (l>i)
     {itoa( m[i],str,10);
                                   i++;}
     return str;
 }
 };
 
int main(int argc, char* argv[])
{
 bit_string s1;
 s1.show();
 bit_string s2("-0101");
 s2.negative_number();
 s2.show();
 bit_string s3(s2);
 s3.show();
 bit_string s4('k');
 s4.show();
 getch();
 
 return 0;
Собсно ошибка вроде в процедуре negative_cod(перевод в дополнительный код)
и в других местах кому несложно пожалуйста помогите исправить недачоты.
Срывается автомат из него.Буду очень признателен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru