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

Классы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разжуйте определенную часть написания программы. В частности enum. http://www.cyberforum.ru/cpp-beginners/thread399956.html
Дело в том, что нужно написать программу, в которой вводиться с клавиатуры Название месяца на английском, а выводится у кого из друзей и когда выводится день рождения (текст вообщем). Сложность состоит в том, что программу нужно написать с помощью 16-ти дополнительных ф-ций, из которых 12-это просто вывод текста для каждого месяца, 1-на ф-ция (должна быть void) для вывода сообщения для ввода...
C++ создание string в namespece std В руки попала программа. Необходимо вместо фиксированных аргументов "to be or not to be", "beer", "bread", "milk" брать какой-нибудь string. А создать его не могу. Вроде и библиотека подключена... Помогите пожалуйста. // recurstring.cpp: определяет точку входа для консольного приложения. // /* написать консольное приложение, которое будет работать с последовательностями слов. Вывести... http://www.cyberforum.ru/cpp-beginners/thread399955.html
Построение таблицы значений функции y=f(x) для x на отрезке [a;b] с шагом h C++
Помогите, пожалуйста, исправить следующую ситуацию: при a=-2, b=1 и h=0.3 на экран не выводится значение функции в крайней точке отрезка f(1) :gsad: #include <iostream> #include <cmath> using namespace std; double f(double x); int main() { setlocale(LC_ALL,"rus_rus.1251"); double a;
Найти в массиве тройку смежных чисел с максимальной суммой. C++
считает только сумму первых трех элементов, а должен считать макс.сумму трех смежных элементов. //--------------------------------------------------------------------------- #include<conio.h> #include<stdio.h> #include<math.h> #include <vcl.h> #pragma hdrstop //---------------------------------------------------------------------------
C++ программа, которая обрабатывает текстовый файл http://www.cyberforum.ru/cpp-beginners/thread399933.html
Здравствуйте! помогите пожалуйста написать программу (чистый С), которая: 1. считывает содержание текстового файла input.txt; 2. сохраняет только слова (которые состоят исключительно из букв) и их количество в динамическую структуру данных, в которой слова упорядочены в алфавитном порядке; 3. удаляет из структуры слова, которые состоят только из больших букв; 4. выводит содержание структуры в...
C++ Сортировка Студентам задания 9_2 на методы сортировки массивов Составить программу упорядочения первых N, N ≤12, элементов массива X. Вид сортировки, а также метод сортировки и операторы внешнего и внутреннего циклов, которые следует использовать в программе, указаны для каждого варианта в расположенной ниже таблице. При отладке использовать начальные значения N и массива X, а также выполнять форматный... подробнее

Показать сообщение отдельно
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
06.12.2011, 08:56     Классы
Набросал вам програмку с классами круг и квадрат. что непонятно спрашивайте. по этому подобию можете добавить еще класс прямоугрльник и доработать нужные вам методы. Протестировал в среде Windows. Работает корректно.

абстрактный класс Shape (фигура)
Shape.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
24
25
26
27
28
#ifndef SHAPE_H_
#define SHAPE_H_
 
class Shape {
public:
    Shape(const float &, const float &);
 
    virtual void draw() const = 0;            //pure virtual function. each shape need to have it's own
    virtual void setShapeParams() = 0;        // -//-//-//-//-//-//-// -
    virtual void changeSize() = 0;
 
    virtual void move(); //wee can use one function to move all our shapes
 
 
    float getAseX() const;
    float getAseY() const;
 
    void setAseX(const float &);
    void setAseY(const float &);
 
    virtual ~Shape();
 
private:
    float aseX;
    float aseY;
};
 
#endif /* SHAPE_H_ */


имплементация класса Shape
Shape.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>
using std::cout;
using std::cin;
using std::endl;
 
#include "Shape.h"
 
Shape::Shape(const float & x, const float & y) : aseX(x), aseY(y){
}
 
float Shape::getAseX() const {
    return aseX;
}
 
float Shape::getAseY() const {
    return aseY;
}
 
void Shape::setAseX(const float &x) {
    this->aseX = x;
}
 
void Shape::setAseY(const float &y) {
    this->aseY = y;
}
 
void Shape::move() {
    float userValue;
    cout <<  "Please enter new X value" << endl;
    cin >> userValue;
    setAseX(userValue);
    cout <<  "Please enter new Y value" << endl;
    cin >> userValue;
    setAseY(userValue);
}
 
Shape::~Shape() {
    // TODO Auto-generated destructor stub
}


объявление класса Circle (круг)
Circle.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
24
#ifndef CIRCLE_H_
#define CIRCLE_H_
 
#include "Shape.h"
 
class Circle: public Shape {
public:
    Circle(const float & = 0, const float & = 0, const float & = 1);
 
    virtual void draw() const;
    virtual void setShapeParams();
    virtual void changeSize();
 
    float getRadius() const;
    void setRadius(const float &);
 
    virtual ~Circle();
 
 
private:
    float radius;
};
 
#endif /* CIRCLE_H_ */


имплементация класса Circle
Circle.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
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include "Circle.h"
 
Circle::Circle(const float &x, const float &y, const float &r) :
        Shape(x, y) {
    setRadius(r);
}
 
float Circle::getRadius() const {
    return radius;
}
 
void Circle::setRadius(const float &r) {
    this->radius = r;
}
 
void Circle::draw() const {
    cout << " AXE X  :: " << this->getAseX() << endl;
    cout << " AXE Y  :: " << this->getAseY() << endl;
    cout << " RADIUS :: " << this->getRadius() << endl;
}
 
void Circle::setShapeParams() {
    float userValue;
    cout << "Please enter X ::\n>";
    cin >> userValue;
    this->setAseX(userValue);
 
    cout << "Please enter Y ::\n>";
    cin >> userValue;
    this->setAseY(userValue);
 
    cout << "Please enter RADIUS ::\n>";
    cin >> userValue;
    this->setRadius(userValue);
}
 
void Circle::changeSize() {
    float userValue;
    cout << "Please enter RADIUS ::\n>";
    cin >> userValue;
    this->setRadius(userValue);
}
 
Circle::~Circle() {
    // TODO Auto-generated destructor stub
}


объявление класса Square (квадрат)
Square.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 SQUARE_H_
#define SQUARE_H_
 
#include "Shape.h"
 
class Square: public Shape {
public:
    Square(const float & = 0, const float & = 0, const float & = 1);
 
    virtual void draw() const;
    virtual void setShapeParams();
    virtual void changeSize();
 
    float getSideSize() const;
    void setSideSize(const float &);
 
    virtual ~Square();
 
private:
    float sideSize;
};
 
#endif /* SQUARE_H_ */


имплементация класса Square
Square.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
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include "Square.h"
 
Square::Square(const float &x, const float &y, const float &side) :
        Shape(x, y) {
 
}
 
void Square::draw() const {
    cout << " AXE X       :: " << this->getAseX() << endl;
    cout << " AXE Y       :: " << this->getAseY() << endl;
    cout << " SIDE SIZE   :: " << this->getSideSize() << endl;
}
 
void Square::setSideSize(const float &size) {
    this->sideSize = size;
}
 
float Square::getSideSize() const {
    return sideSize;
}
 
void Square::setShapeParams() {
    float userValue;
    cout << "Please enter X ::\n>";
    cin >> userValue;
    this->setAseX(userValue);
 
    cout << "Please enter Y ::\n>";
    cin >> userValue;
    this->setAseY(userValue);
 
    cout << "Please enter Side Size ::\n>";
    cin >> userValue;
    this->setSideSize(userValue);
}
 
void Square::changeSize() {
    float userValue;
    cout << "Please enter Side Size ::\n>";
    cin >> userValue;
    this->setSideSize(userValue);
}
 
Square::~Square() {
    // TODO Auto-generated destructor stub
}


запускаемся тут
shape_main.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
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
#include <cstdlib>
using std::system;
 
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <string>
using std::string;
 
#include "Shape.h"
#include "Circle.h"
#include "Square.h"
 
void printShapeValues(const Shape * const);
void setUserShapeParams(Shape * const);
 
int main() {
 
    string shapeType;
    int userSelected;
    bool exit = false;
 
    while (!exit) {
        system("CLS");
        Shape * shape;
        Circle newCircle;
        Square newSquare;
 
        cout << "Please select shape\n1 :: Circle\n2 :: Square\n3 :: Exit\n>";
        cin >> userSelected;
        switch (userSelected) {
        case 1:
            shapeType = "Circle";
            shape = &newCircle;
            break;
        case 2:
            shapeType = "Square";
            shape = &newSquare;
            break;
        default:
            exit = true;
            break;
        }
        if (!exit) {
            cout << "\nUse default values or set new ?\n1 :: Default\n2 :: Set new\n>";
            cin >> userSelected;
            if (userSelected == 2) {
                setUserShapeParams(shape);
            }
            cout << "\nCurrent Shape  :: " << shapeType << endl;
            cout << "Current Params :: \n";
            printShapeValues(shape);
 
            cout << "\nWould you like to move " << shapeType << " ?\n1 :: Yes\n2 :: No\n>";
            cin >> userSelected;
            switch (userSelected) {
            case 1:
                shape->move();
                cout << "New X and Y values :: \n";
                printShapeValues(shape);
                cout << "\nPress any key to continue";
                cin.clear();
                cin.ignore(100,'\n');
                cin.get();
                break;
            default:
                break;
            }
        }
 
    }
    return 0;
}
 
void setUserShapeParams(Shape * const shape) {
    shape->setShapeParams();
}
 
void printShapeValues(const Shape * const shape) {
    shape->draw();
}


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