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

Классы. Фигуры. Наследование - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти номер минимального непарного элемента рядка, у которого пятый элемент равняется последнему http://www.cyberforum.ru/cpp-beginners/thread1035339.html
Помогите пожалуйста составить прогу. Дан массив R(8,8) Найти номер минимального непарного элемента рядка, у которого пятый элемент равняется последнему.
C++ По заданным подстановкам на множестве и последовательности из нулей и единиц построить подстановку кто нибудь знает как решаются задачки на Построение циклической структуры подстановки.??помогите пожалуйста,с чего начинать?? По двум заданным подстановкам f0 и f1 на множестве A и последовательности m1, m2, … , mq из нулей и единиц построить подстановку , вычислить ее циклическую структуру и напечатать http://www.cyberforum.ru/cpp-beginners/thread1035336.html
C++ Крестики нолики, нужно немного дописать
Помогите пожалуйста. Нужно дописать код что бы пользователь не смог вводить уже введенное(выбранное). Если выбрали нолик, то туда уже нельзя поставить крестик. Помогите пожалуйста, заранее огромное спасибо. не понимаю как доделать(( #include <iostream> using namespace std; void main() { setlocale( LC_ALL,"");
Вывести время года по номеру месяца C++
Я должен ввести номер месяца, а программа должна вывести время года. Например: ввожу 11, а выводит осень. (с использованием кейсов) Заранее очень благодарен, спасибо)
C++ Struct vedomost http://www.cyberforum.ru/cpp-beginners/thread1035310.html
Проверьте, пожалуста, на правильную конфигурацию код. В сведения хранится информация по задолженностям студентов: ФИО., Группа, курс, предмет. Написать программу удаления из ведомости информации о студентах, аннулировав задолженности. struct vedomost { char familiya; char imya; char otchestvo; char group;
C++ построение графика на си++ Здравствуйте. Такая вот задача: построить график зависимости температуры в разрезе окна(то есть, как она зависит при движении от внешнего стекла, к внутреннему, но не в этом суть). Разбиваю окно на сетку m*n, нахожу значения температур в каждой ячейке, но не знаю, как построить график этой самой зависимости. Мне нужен лишь хороший совет, как это реализовать на си++. подробнее

Показать сообщение отдельно
Лев Борисов
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 99
10.12.2013, 00:46     Классы. Фигуры. Наследование
Создан абстрактный класс Point - ось в трёхмерном пространстве с начальной точкой и высотой.
Производный от него Параллелепипед - принимает два параметра (координаты Х У) для установки противоположной начальной точкой вершиной.
Производный от Параллелепипеда - Тетраэдр - принимает ещё два параметра (координаты Х У третьего угла).

Проблема: как установить все четыре параметра в Тетраэдре, если виртуальная функция установки параметров принимает только два значения. Так же имеются фигуры Конус, Цилиндр, Пирамида, тут проблем нет.

Помогите, пожалуйста!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Point {
// Спецификаторы доступа к элементам
public:                                         // Доступны при любом обращении программы к объекту класса Time
                                                // Открытые методы / Открытый интерфейс услуг класса / Прототипы
                                                // Будут использоваться "клиентами" класса
    Point(int = 0, int = 0, int = 0, int = 0);  // Конструктор
                                                // Инициализирует данные-элементы объекта этого класса
    void setPoint (int, int, int, int);         // "Set" - установить
    void greet() const;                         // Сообщение о введении начальных параметров
    virtual void greet_2() const = 0;           // Чисто виртуальная функция печати предложения ввода параметров
    virtual void print() const = 0;             // Чисто виртуальная функция печати имени класса
    virtual void setParameter(int, int) = 0;    // Чисто виртуальная функция установки параметров
    virtual float getArea() const = 0 ;         // Чисто виртуальная функция подсчёта площади
protected:                                      // Доступны для производных классов
    int x0, y0, z0, high;                       // Координаты начальной точки
};                                              // Высота
C++
1
2
3
4
5
6
7
8
9
10
class Parallelepiped : public Point {   // Открытое наследование (Тип наследования)
public:
    Parallelepiped(int = 0, int = 0, int = 0, int = 0, int = 0, int = 0);
    virtual void print() const;
    virtual void greet_2() const;
    virtual void setParameter(int, int);// Установка противоположной вершины
    virtual float getArea() const;      // Вычисление площади
protected:                              // Доступны только функциям-элементам (методам) этого класса
    int x1, y1;
};
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
// PARALLELEPIPED.CPP
// Функции-элементы / Методы класса Parallelepiped
#include "StdAfx.h"
#include "iostream"
#include <cmath> 
#include "Parallelepiped.h"
 
using namespace std; 
 
/* Конструктор Parallelepiped вызывает конструктор Point с инициализаторами элементов,
затем инициализирует координаты второй точки */
Parallelepiped::Parallelepiped(int x_1, int y_1, int x, int y, int z, int h)
: Point(x, y, z, h)                             // Вызов конструктора базового класса
{ x1 = x_1; y1 = y_1; }
 
void Parallelepiped::print() const
{ cout << "\n\tПараллелепипед"; }
 
void Parallelepiped::greet_2() const
{ cout << "\tВведите координаты противоположной вершины: "; }
 
void Parallelepiped::setParameter(int x_1, int y_1)
{ x1 = x_1; y1 = y_1; }
 
// Вычисление площади класса Parallelepiped
float Parallelepiped::getArea() const
{ return abs((x1 - x0) * (y1 - y0)); }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// TETRAHEDRON.H
// Определение класса Tetrahedron
 
#ifndef TETRAHEDRON_H
#define TETRAHEDRON_H
#include "Parallelepiped.h"
 
class Tetrahedron : public Parallelepiped { 
                                            // Открытое наследование (Тип наследования)
public:
    Tetrahedron(int = 0, int = 0, 
                int = 0, int = 0, 
                int = 0, int = 0, 
                int = 0, int = 0);
    virtual void print() const;
    virtual void greet_2() const;
    virtual void setParameter(int, int);;   // Установка координат двух вершин
    virtual float getArea() const;          // Вычисление площади
private:
    int x2, y2;
};
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
// TETRAHEDRON.CPP
// Функции-элементы / Методы класса Tetrahedron
#include "StdAfx.h"
#include "iostream"
#include <cmath> 
#include "Tetrahedron.h"
 
using namespace std; 
 
/* Конструктор Tetrahedron вызывает конструктор Point с инициализаторами элементов
с помощью инициализаторов элемента и задаёт начальное значение радиуса */
Tetrahedron::Tetrahedron(int x_2, int y_2, int x1, int y1, int x, int y, int z, int h)
: Parallelepiped(x1, y1, x, y, z, h)
{ x2 = x_2; y2 = y2; }
 
void Tetrahedron::print() const
{ cout << "\n\tТетраэдр"; }
 
void Tetrahedron::greet_2() const
{ cout << "\tВведите координаты противоположной вершины: "; }
 
void Tetrahedron::setParameter(int x_2, int y_2)
{ x2 = x_2; y2 = y_2; }
 
// Вычисление площади класса Tetrahedron
float Tetrahedron::getArea() const
{ return 1.0 * abs( (x1 - x0) * (y2 - y0) - (x2 - x0) * (y1 - y0)) / 2; }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru