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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PK91
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
#1

производный класс - C++

29.05.2013, 18:21. Просмотров 261. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста!!! Не получается сделать задание.
Нужно определить производный класс к вспомогательному классу по заданию. В основном классе добавить к полям вспомогательного класса два поля производных вспомогательных классов.
Задание: В производном классе элемент из драгоценного металла добавлено целое поле – процент примеси. При вычислении стоимости грамма, она уменьшается на данный процент. Метод основного класса определяет общую стоимость изделия по всем обычным элементам и из драгоценных материалов.
Вот полностью код программы, пыталась сделать, но не получилось (добавляла производный класс- строчки 49-55).
Код:
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
#include <string.h>
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
class Element
 {
   public:
   double CostElem(); 
   void Init( int v, double c,string n);
   void Display();
   string GetName(); 
   void Putname(string s); 
   Element(int v,double c);
   Element();
   private:
   string Name;
   int ves;
   double cost;
 };
 
void Element::Init(int v, double c,string n)
{
  ves=v;
  cost=c;
  Name=n;
}
 
string Element::GetName()
{
    return Name;
}
void Element::Putname(string s)
{
    Name=s;
}
void Element::Display()
{
    cout<<" \n"<<ves<<cost<<Name.c_str();
}
 
double Element::CostElem()
 {
  return ves*cost;
}
 
class ElDrag: public Element
{
private:
    int procprim;
public:
    double VichGram();
};
 
class Product
{
  public:
  Product(int v1, double c1,int v2, double c2,int v3, double c3,int k1,int k2,int k3,double cst,string n1,string n2,string n3);
  friend int ObkolElem( Product z); 
  double ObCost();
  Element SrElem();
 private:
 int kol1;
 int kol2;
 int kol3;
 double costSborka;
 Element E1;
 Element E2;
 Element E3;
};
 
Product::Product(int v1, double c1,int v2, double c2,int v3, double c3,int k1,int k2,int k3,double cst,string n1,string n2,string n3)
{
 E1.Init(v1,c1,n1);       
 E2.Init(v2,c2,n2);   
 E3.Init(v3,c3,n3);
 kol1=k1;
 kol2=k2;
 kol3=k3;
 costSborka=cst;
}
double Product::ObCost()
{
    double x;
    x=E1.CostElem()*kol1;
    x=x+E2.CostElem()*kol2;
    x=costSborka+x+E3.CostElem()*kol3;
    return x;
}  
Element Product::SrElem()
{
    double h1=E1.CostElem();
    double h2=E2.CostElem();
    double h3=E3.CostElem();
    if(h1 > h2 && h2 > h3) return E2;
    if(h2 > h1 && h1 > h3) return E1;
    return E3;
}
 
int ObkolElem(Product z)
{
    int k1,k2,k3,ok;
    k1=z.kol1;
    k2=z.kol2;
    k3=z.kol3;
    ok=k1+k2+k3;
    return ok;
}
 
int main(int argc, char* argv[])
{
 Element a;
 double k;
 string s;
 a.Init(2,234.5,"bolt");
 a.Putname(" gwozd \n");
 s=a.GetName();
 a.Display();
 Element b[8];
 int i,m;
 string s1;
 string s2;
 for(i=0;i<8;i++)
 {
     b[i].Init(i+1,i+2,"ghkgfk");
 }
 b[0].Putname("gaika");
 b[1].Putname("rejka");
 b[2].Putname("qwegfh");
 b[3].Putname("bolt");
 b[4].Putname("kqwe");
 b[5].Putname("fqwe");
 b[6].Putname("doska");
 b[7].Putname("qweo");
 s2="";
  for(i=0;i<8;i++)
 {
  s1=b[i].GetName();
  m=s1.find("qwe");
  if(m >= 0 && s1.length()<5)
  {
    s2=s2+s1;
  }
 }
s1.erase(4,6);
s2="123";
s1.insert(2,s2);
cout<<s2<<endl;
 double y;
 int l;
 Product z(10,3,7,8,3,7.5,5,3,2,15,"bolt","schurup","gwozd");
 y=z.ObCost();
 y=z.SrElem().CostElem();
 l=ObkolElem(z);
 cout<<"Obschaj stoimosy: "<<z.ObCost()<<endl;
 cout<<"Srednij element: "<< z.SrElem().GetName()<<z.SrElem().CostElem()<<endl;
 cout<<"Obschee kol-vo elementov: "<<l<<endl;
 return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 18:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос производный класс (C++):

Разработать производный от абстрактного класса Figure класс и класс, производный от производного - C++
Разработать базовый абстрактный класс Figure с пустым виртуальным методом print для вывода в дальнейшем полной информации об объекте: ...

Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? - C++
Ну то есть базовый класс A, с полями, допустим, a, b, c, d. И я проектирую производный класс B и я железно знаю, что он будет использовать...

Создать класс Point и производный класс ColoredPoint (цветная точка) - C++
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте производный класс ColoredPoint (цветная точка), в...

Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. - C++
Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты.

Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты - C++
Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты.

Создать базовый класс - Array и производный класс - Money для работы денежной суммы - C++
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для работы денежной суммы

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igor921
Заблокирован
29.05.2013, 18:59 #2
С чем собственно проблема возникла?
0
PK91
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
29.05.2013, 19:09  [ТС] #3
Не могу правильно написать производный класс и в основном классе добавить поля производного вспомогательного класса.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 19:09
Привет! Вот еще темы с ответами:

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки - C++
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...

Указатели в базовом классе на базовый класс и производный класс - C++
Пишу контейнер &quot;Бинарное дерево поиска&quot; для частотного словаря. С самим контейнером особо вопросов нету. Вопрос по поводу элементов в...

Наследование: базовый класс Квадрат, производный класс Пирамида - C++
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна стороны. Предусмотреть в классе методы...

Создать базовый класс Triad и производный класс vector3D - C++
Помогите пожалуйста с заданием. Часть кода(vector3D) сделал, вроде работает Нужно помочь с классом Triad. Вот полное задание: ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru