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

Помогите отредактировать прогу с классами!!! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание меню в консольном приложении http://www.cyberforum.ru/cpp-beginners/thread191098.html
Здравствуйте! Нужно создать меню. Каждый пункт в меню - программа, т.е. в меню можно выбирать какую программу запустить. Подскажите пожалуйста как это реализовать, с пояснениями, пожалуйста
C++ Создать класс Animal Создать класс Animal, содержащий следующие элементы: - поле «вес» float Mass; - поле «пол» char* Sex; - поле «окрас» char* Color; - поле «возраст» int Age; - метод получения веса float GetMass(); - метод получения пола char* GetSex(); - метод получения возраста int GetAge(); - метод получения окраски char* GetColor(); - конструктор с параметрами Animal(float Mass, char* Sex,... http://www.cyberforum.ru/cpp-beginners/thread191087.html
прямое включение C++
здраствуйте! у меня небольшой вопрос по методу прямого включения. Нужно отсортиовать первый рядок матрицы по убыванию)вот код: void Sort_Insertion(int** y, int n , int m) { int i,j,k,*b; b= new int ; for (i=1; i<m; i++) { for (k=0; k<n; k++) {
Подсчет латинских букв C++
надо подсчитать количество идущих подряд чисел и слова которые состоят только из латинских букв,с чтислами вроде получилось а вот с буквами как то не очень ,кто знает в чем проблема помогите . Буду благодарен если поможете оптимизировать программу и сделать ее более корректной и лаконичной. Вот листинг #include <iostream> #include <cctype> #include <conio.h> using namespace std;
C++ Массивы. http://www.cyberforum.ru/cpp-beginners/thread191067.html
Нужно написать 3 задачи на Borland С++. Желательно в самом простом написании. Вот задачи: ЗАДАНИЕ. Задав одномерный массив из n вещественных или целых элементов реализовать обработку массива, как указано в варианте. Длина массива N задается пользователем. Исходные данные задать самостоятельно, учитывая формат элементов массива A. Исходные данные должны вводиться с проверкой на область...
C++ последовательность задан массив a; предполагается что в нем есть последовательность эл-ов упоряд-ых по убыв. найти и удалить упор послед содержащюю более 5 элементов. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.11.2010, 19:59     Помогите отредактировать прогу с классами!!!
Вот Ваш код (посмотрите в нем коментарии):
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
using namespace std;
class point
{
protected:
int x,y;char cvet[20];
public:
        int getx(){return x;};
        int gety(){return y;}
        
        point(int a,int b,char cv[20]){x=a,y=b,strcpy(cvet,cv);}
 
        virtual void print()
        {cout<<"точка"<<"x="<<getx()<<"y="<<gety()<<endl;
        };
virtual double dlina()
{return 0;};
virtual double plosad()
{return 0;};
 
        
};
 
//---------------------------------------------------------------------------------
class circle:public point
        
{
protected:
        int radius;
public:
 
        circle(int a, int b, char cv[20],int rad):point(a,b,cv){radius=rad;};
        void print(){cout<<"окружность:"<<"x="<<getx()<<"y="<<gety()<<"радиус="<<radius<<endl;};
 
 
 double dlina()
 {
         double z;
  z=2*3,14*radius;
  return z;
 };
 double plosad()
{
                double q;
                 q=3,14*radius*radius;
        return q;
 };
};
//---------------------------------------------------------------------------------
class pramaya:
        public point
{
protected:
        int x2,y2;
public:
        
        pramaya(int a, int b,char cv[20] ,int x3,int y3):point(x,y,cvet){x2=x3;y2=y3;};
        void print(){cout<<"прямая"<<"начальные координаты:("<<getx()<<","<<gety()<<")"<<"конечные координаты:("<<x2<<","<<y2<<")"<<endl;
        };
        double dlina()
        {
        double z;
    z= sqrt(double ((x2-getx())*(x2-getx())+(y2-gety())*(y2-gety())));
 
    return z;
        }
        double plosad()
        {return 0;};
 
 
};
 
//---------------------------------------------------------------------------------
class maspoint
{
        point **mas;
int n;
public:
        maspoint(char name[20])
        {
                FILE *in;
        
        
        int k=0,a,b,rad,x3,y3;
char line[255], type[10],cv[20];
 
 
 
if ((in=fopen(name,"r"))!=NULL)
{
        int k=0;// открыли файл k=0
        while(!feof(in))
        {
                fgets(line,255,in);
            k++;
        };
        n=k;//здесь k=5 
// а всего лишь забыли здесь написать:  k=0;
        fclose(in);
        mas=new point *[n];
        in=fopen(name,"r");
        
        while(!feof(in))
        {
                fscanf(in,"%s",type);
        fscanf(in,"%d",&a);
        fscanf(in,"%d",&b);
                if(strcmp(type,"point")==0)
                {  fscanf(in,"%s",cv);
    mas[k]=new point(a,b,cv);
}
 
        if(strcmp(type,"pramaya")==0)
{
        fscanf(in,"%d",&x3);
    fscanf(in,"%d",&y3);
    fscanf(in,"%s",cv);
    mas[k]=new pramaya(a,b,cv,x3,y3);//это выполняется когда k=5 и k=8
}
if (strcmp(type,"circle")==0)
{fscanf(in,"%d",&rad);
fscanf(in,"%s",cv);
mas[k]=new circle(a,b,cv,rad);//это выполняется когда k=6 и k=7
}
k++;
        };
        fclose(in);
}
 
else
{
        cout<<"нет файла"<<endl;
n=0;
mas=NULL;
};
        }
 
void print()
{
        for(int i=0;i<n;i++)// когда мы выводим на печать, то начинаем с mas[0] - а он есть?
                mas[i]->print();
};
double summadlin()
{
        double s=0;
for(int i=0;i<n;i++)
s+=mas[i]->dlina();
return s;
}
 
double summaplosad()
{
        double s=0;
for(int i=0;i<n;i++)
s+=mas[i]->plosad();
return s;
}
 
};
 
//---------------------------------------------------------------------------------
void main()
{
        setlocale (LC_ALL, "Russian");
        char fname[20];
        cout<<"введите имя файла"<<endl;
        cin>>fname;
        maspoint m(fname);
        m.print();
        cout<<"сумма длин="<<m.summadlin()<<endl<<"сумма площадей="<<m.summaplosad()<<endl;
getch();
}
Но это еще не все ошибки. Теперь посмотрите на результат вычисления.
 
Текущее время: 22:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru