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

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

Войти
Регистрация
Восстановить пароль
 
haseki
3 / 3 / 1
Регистрация: 02.11.2013
Сообщений: 164
#1

ООП, простейшие классы - C++

28.04.2014, 09:13. Просмотров 207. Ответов 0
Метки нет (Все метки)

Задачи как таковой нет, просто создание системы классов с открытым наследованием. Классы описывают картинную галерею, методы осуществляют аукцион (продажа по максимальной цене), есть перегрузка оператора потокового вывода.
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/*///////////////////////////////////////////
ГЛАВНЫЙ ФАЙЛ ПРОГРАММЫ                     //
*////////////////////////////////////////////
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
/*ОПИСАНИЯ КЛАССОВ И ПРОТОТИПЫ МЕТОДОВ*/
 
 
typedef unsigned int ui; //Заменяем имя типа "unsigned int" на более лаконичное "ui".
class Gallery
{
private: //Закрытые элементы класса.
    char* Author; //Автор картины.
    char* Name; //Название картины.
    ui Year; //Год написания.
    char* Style; //Стиль.
 
 
public: //Открытые элементы класса.
    Gallery(void);
    Gallery(char* author, char* name = "", ui year = 0, char* style = "", ui price = 0); //Прототип конструктора (с параметрами по умолчанию).
 
    void setAuthor(char*); //Установить автора.
    char* getAuthor() const; //Считать автора.
    void setName(char*); //Установить название.
    char* getName() const; //Считать название.
    ui getYear() const; //Считать год.
    void setYear(ui); //Установить год.
    void setStyle(char*); //Установить стиль.
    char* getStyle() const; //Считать стиль.
 
 
    ~Gallery(); //Прототип деструктора.
};
 
class Exhibit :public Gallery
{
    ui Price; //Цена билета
public:
 
    void setPrice(ui); //Установить цену билета на выставку.
    ui getPrice() const; //Считать цену билета на выставку.
    void AddPrice(ui); //Увеличить цену.
    void SalePrice(ui); //Скидка на билет.
    Gallery Max_price(Gallery&); //Возвращает объект с максимальной ценой.
};
 
class Trade :public Gallery
{
    ui Stavka; //Цена ставки на картину.
    ui max = 0;
public:
 
    void Auction(ui); //Аукцион.
    friend ostream& operator<<(ostream& os, Trade& tr)
    {
        os << "КАРТИНА: " << endl;
        os << "Автор: " << tr.getAuthor() << "\n";
        os << "Название: " << tr.getName() << "\n";
        os << "Год: " << tr.getYear() << "\n";
        os << "Стиль: " << tr.getStyle() << "\n";
        os << "Цена: " << tr.max << "\n";
        return os;
    }
};
 
//Перегрузка конструкторов:
Gallery::Gallery(void) //Конструктор класса.
{
    Author = "";
    Name = "";
    Year = 0;
    Style = "";
 
}
 
Gallery::Gallery(char* author, char* name, ui year, char* style)
{
    Author = author;
    Name = name;
    Year = year;
    Style = style;
 
}
 
 
Gallery::~Gallery() //Деструктор класса.
{
 
}
 
void Gallery::setAuthor(char* author)
{
    Author = author;
}
 
char* Gallery::getAuthor() const
{
    return Author;
}
 
void Gallery::setName(char* name)
{
    Name = name;
}
 
char* Gallery::getName() const
{
    return Name;
}
 
ui Gallery::getYear() const
{
    return Year;
}
 
void Gallery::setYear(ui y)
{
    if (y > 1000)
        Year = y;
    else
        Year = 0;
 
}
 
void Gallery::setStyle(char* style)
{
    Style = style;
}
 
char* Gallery::getStyle() const
{
    return Style;
}
 
 
void Exhibit::setPrice(ui price)
{
    Price = price;
}
 
ui Exhibit::getPrice() const
{
    return Price;
 
}
 
void Exhibit::AddPrice(ui add)
{
    Price += add;
}
 
void Exhibit::SalePrice(ui sale)
{
    Price -= sale;
}
 
Exhibit Exhibit::Max_price(Exhibit& pic)
{
    if (Price < pic.getPrice())
    {
        return pic;
    }
    else return *this;
}
 
void Trade::Auction(ui stavka)
{
    ui n;
    cout << "Введите количество ставок: ";
    cin >> n;
    for (int i(0); i < n; i++)
    {
        cout << "Введите " << i - 1 << "-ую ставку: ";
        cout << "\n";
        cin >> stavka[i];
    }
    for (int i = 0; i < n; i++)
    {
        if (stavka[i] > max)
            max = stavka[i];
    }
    cout << "Картина продана за " << max << "$" << endl;
}
 
 
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Russian");
    system("pause");
    return 0;
}
В главном методе еще не созданы объекты, то есть классы и их методы еще не используются. Есть ошибки в описаниях методов (компилятор на них ругается), помогите, пожалуйста, их исправить.

Компилятор показывает ошибки в строках: 81, 162 и 180-185.

И еще - не могу описать деструктор
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 09:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ООП, простейшие классы (C++):

Простейшие классы - C++
Пожалуйста помогите решить: Составить описание класса для представления даты. Предусмотреть возможности установки даты и изменения...

ООП Классы - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;iomanip&gt; #include &lt;sstream&gt; #include &lt;limits&gt; using...

Классы и объекты в ооп и с++ - C++
Что такое классы и объекты в ооп и с++?

Начало ООП. Классы - C++
Здравствуйте.Читал про ссылки массивов на указатели, и указателей на массивы.Не могу понять как в этой программе как функции ссылаются на...

задание по ООП, классы, матрицы - C++
Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменением кол-ва строк и столбцов,...

ООП. Классы, наследование, векторы - C++
Никак не пойму как реализовать наследование допустим есть базовый класс животных там различные функции class Beast { public: ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 09:13
Привет! Вот еще темы с ответами:

В чем моя ошибка?(ООП, классы) - C++
Что изменить в файле functionss.h? Заранее спасибо!!! Задание: Определить класс «матрица». В класс включить два конструктора: 1)...

VS2012 классы, заголовочные файлы, ООП - C++
Написал хорошую программу, но всё в одном файле main.cpp. У меня есть около 12 классов, много наследования, std::vector-ов, и т.д. ...

ООП Классы Двумерный динамичесский массив не получается - C++
Задание: Описать класс для решения задачи. В классе предвидеть: 1. Дополнительный конструктор 2. Метод автоматической инициализации...

ООП Классы. Выделение памяти под строку char* - C++
Делал программу на освоение классов и тд. и наткнулся на такую вот штуку.При вводе с клавиатуры переменной Name типа char* программа...


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

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

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