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

Композиция классов. Не могу разобраться - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Логические операции http://www.cyberforum.ru/cpp-beginners/thread969687.html
Если есть условие: m =(n+2) или k = (n+4), и выполняетcя и первое и второе (n=2, m=4, k=6), то результат истина или ложь?
C++ Строго возрастающая макс. подпоследовательность Долго ломал голову над задачей. Наконец-то нашел код (он правда, на паскале). Переделал, все хорошо. Но вот не задача: никак не могу добиться, чтобы программа все-таки правильно вывела эту подпоследовательность. Прошу помощи :help: . (Кажется, что код большой. на самом деле там много оформления) #include <iostream> #include <time.h> #include <stdlib.h> using namespace std; int main() {... http://www.cyberforum.ru/cpp-beginners/thread969685.html
C++ Как ввести с клавиатуры элементы динамического массива?
int *mass=new int; for(int i=0;i<10;i++) { } Как ввести в цикле элементы массива , а потом вывести их на экран? Подскажите , пожалуйста .
Ошибка компиляции C++
Среда разработки Dev-C++, в коде при компиляции выскакивает ошибка типа " `ctrok' undeclared (first use this function) ". В чем проблема? #include <iostream> using namespace std; int main() { char strok; cout << "Ââåäèòå ñòðîêó: "; cin >> strok;
C++ Форумчани, подскажите статью http://www.cyberforum.ru/cpp-beginners/thread969673.html
Здравствуйте, можете подсказать статью (хорошую), в которой подробно будут объяснятся классы в С++. А то толковой статьи найти не могу, в которой будет все понятно и толково.
C++ Перезапись значений в матрице Удалите тему подробнее

Показать сообщение отдельно
Pozvalovs
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 3
05.10.2013, 18:56     Композиция классов. Не могу разобраться
С сентября начал изучение C++, но с нашими темпами не успеваю всё освоить. Собственно само задание:

Реализовать композицию классов из трёх классов:
Класс Computer, который состоит из полей: как минимум 2 параметра по вашему выбору, цена. Реализовать методы:
Konstruktor
SetComputer (присваивает значения полей)
PrintComputer
GetПоле (для каждого поля)

Класс Monitor, который состоит из полей: как минимум 2 параметра по вашему выбору, цена. Реализовать методы:
Konstruktor
SetMonitor (присваивает значения полей)
PrintMonitor
GetПоле(для каждого поля)

Класс Complect, который состоит из полей: name, computer, monitor. Реализовать методы:
Konstruktor
SetComplect (присваивает значения полей)
GetName
GetPrice (возвращает общую цену)
PrintComplect (включая цену)

Первые 2 класса как-то сделал, а вот создать 3-ий класс, который содержит объекты других классов никак не получается.

computer.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef COMPUTER_H
#define COMPUTER_H
 
class Computer
{
public: 
        Computer();
       void SetComputer(int,int,int);
       void PrintComputer();
       int GetHDD();
       int GetRAM();
       int Getcena();
private:
        int HDD;
        int RAM;
        int cena;
};
 
#endif
computer.cpp
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
#include <iostream>
#include "computer.h"
using namespace std;
 
Computer::Computer()
{
    HDD=0;
    RAM=0;
    cena=0;
}
    
void Computer::SetComputer(int H,int R,int c)
{
     HDD= (H>=0)? H : 0;
     RAM= (R>=0)? R : 0;
     cena= (c>=0)? c :0 ;
}
 
void Computer::PrintComputer()
{
     cout <<"Razmer zhestkogo diska = "<<HDD<<endl<<
     "Objem operativnoj pamjati = "<<RAM<<endl<<
     "Cena etogo kompjutera = "<<cena<<endl<<endl;
}
 
int Computer::GetHDD()
{ cout <<"HDD = "<<HDD<<endl; }
 
int Computer::GetRAM()
{cout <<"RAM = "<<RAM<<endl;}
 
int Computer::Getcena()
{ cout<<"Cena kompjutera = "<<cena<<endl;}
monitor.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef MONITOR_H
#define MONITOR_H
#include <iostream>
 
class Monitor
{
public:
       Monitor();
       void SetMonitor(int,int,int);
       void PrintMonitor();
       int GetDiag();
       int GetChastota();
       int Getcena();
private:
        int Diag;
        int Chastota ; 
        int cena;
};
 
#endif
monitor.cpp
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
#include <iostream>
#include "computer.h"
#include "monitor.h"
using namespace std;
 
Monitor::Monitor()
{
  Diag=0;
  Chastota=0;
  cena=0;
}
 
void Monitor::SetMonitor(int d, int ch, int c)
{ Diag = (d>=0)? d : 0;
  Chastota = (ch>=10)? ch : 0;
  cena = (c>=0) ? c : 0;
}
 
void Monitor::PrintMonitor()
{
     cout <<"Diagonalj monitora = "<<Diag<<endl
     <<"Chastota monitora = "<<Chastota<<endl
     <<"Cena etogo monitora = "<<cena<<endl<<endl;
}
 
int Monitor::GetDiag()
{
    cout <<"Diagonalj monitora = "<<Diag<<endl;
}
 
int Monitor::GetChastota()
{
    cout <<"Maksimalnaja chastota monitora = "<<Chastota<<endl;
}
 
int Monitor::Getcena()
{
    cout <<"Cena etogo monitora = "<<cena<<endl;
}
Дальше всё не правильно, но выкладываю то, что писал

complect.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef COMPLECT_H
#define COMPLECT_H
#include <iostream>
#include "computer.h"
#include "monitor.h"
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
class Complect 
{
public: 
        Complect();
       void SetComplect(int,int,int,int,int,int);
       int GetName();
       int GetPrice();
       void PrintComplect();
private:
        const char *Name;
        Computer comp;
        Monitor mon;
};
#endif
complect.cpp
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
#include <iostream>
#include "computer.h"
#include "monitor.h"
#include "complect.h"
#include <string>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
Complect::Complect()
{
 Name="Komplekt odin";
 comp = Computer();
 mon = Monitor();
}
 
void Complect::SetComplect(int a, int b,int c,int d,int e,int f)
{
 Computer::SetComputer(a,b,c);
 Monitor::SetMonitor(d,e,f);
}
 
void Complect::PrintComplect()
{
cout <<"Nazvanie komplekta = "<<Name<<endl;
//cout <<"Monik = "<<<<endl;
//cout <<"Komp = "<<comp<<endl;
}

Ещё есть Main, в котором я проверял работу методов, это не обязательно и делалось только для проверки.
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
#include <cstdlib>
#include <iostream>
#include "computer.h"
#include "monitor.h"
#include "complect.h"
using namespace std;
 
 
 
int main()
{
   Computer a, b;
   Monitor c, d;
   Complect k;
   a.SetComputer(10,1,1);
   a.PrintComputer();
   b.SetComputer (5,5,22);
   b.PrintComputer();
   c.SetMonitor(10,15,20);
   c.PrintMonitor();
   d.SetMonitor(5,5,62);
   d.PrintMonitor();
   k.PrintComplect();
   
   system("Pause");
   return 0;
}
Заранее благодарен за любую помощь. Если есть готовые коды подобных заданий - также буду благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru