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

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

Восстановить пароль Регистрация
 
PK91
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
29.05.2013, 18:21     производный класс #1
Помогите пожалуйста!!! Не получается сделать задание.
Нужно определить производный класс к вспомогательному классу по заданию. В основном классе добавить к полям вспомогательного класса два поля производных вспомогательных классов.
Задание: В производном классе элемент из драгоценного металла добавлено целое поле – процент примеси. При вычислении стоимости грамма, она уменьшается на данный процент. Метод основного класса определяет общую стоимость изделия по всем обычным элементам и из драгоценных материалов.
Вот полностью код программы, пыталась сделать, но не получилось (добавляла производный класс- строчки 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 18:21     производный класс
Посмотрите здесь:

C++ производный класс
Есть производный класс и базовый; при чём производный использует только ЧАСТЬ ресурсов базового, правильно ли это? C++
C++ производный класс 3D массив
Указатели в базовом классе на базовый класс и производный класс C++
Создать класс линия и производный класс отрезок C++
Разработать класс и производный класс C++
C++ Разработать производный от абстрактного класса Figure класс и класс, производный от производного
C++ Написать класс строка и производный класс, ее шифрующий

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igor921
Заблокирован
29.05.2013, 18:59     производный класс #2
С чем собственно проблема возникла?
PK91
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
29.05.2013, 19:09  [ТС]     производный класс #3
Не могу правильно написать производный класс и в основном классе добавить поля производного вспомогательного класса.
Yandex
Объявления
29.05.2013, 19:09     производный класс
Ответ Создать тему
Опции темы

Текущее время: 13:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru