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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
#1

Объектно ориентированное программирование. - C++

24.05.2011, 19:10. Просмотров 2350. Ответов 22
Метки нет (Все метки)

Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи:
1) Создание и редактирование классов. Нужно создать класс "арифметическое выражение" с компонентными данными: 1-й аргумент, 2-й аргумент, знак арифметического выражения(перечислимого типа +, -, *,/). Определить компонентные функции: получение каждого элемента класса по отдельности, изменение значения операндов,вычисление значения выражения, вывод на экран в формате "арг1 операция арг2 = результат".
2)Перегрузка стандартных операций. Нужно описать класс "квадрат" с компонентными данными: координаты центра,длина стороны. Перегрузить операции: <<, префиксный --(декремент длины стороны), !=(проверка на неравенство длин сторон квадратов), +=(увеличение на n координат центра).
3)Наследование и полиморфизм.Виртуальные функции. Нужно создать базовый класс - работник и производные классы - служащий с почасовой оплатой, служащий в штате и служащий с процентной ставкой. Определить функцию начисления зарплаты.
4)Шаблоны классов. Нужно разработать шаблон класса где поля могут иметь различные типы данных(некоторые поля могут быть статическими)Предусмотреть наличие в классе указанных методов и перегруженных операций.Название класса - линейное уравнение; поля - коэффициенты, корень; методы - изменение значений полей, вывод в формате (ax+b=0), решение уравнения; перегружаемые операции - <=(сравнение корней двух уравнений), префиксный ++(инкремент каждого коэффициента).
5)Обработка исключений. Необходимо создать три массива a,b и c размерами соответственно n1, n2, n3 (размеры массивов не равны). В массив a занести значения f(x)= 1/(x^2-1), x принадлежит отрезку от -2 до 0, дельта x равен 0,1. Массив b заполнить случайными числами среди них должны быть и отрицательные числа и нули. Массив c формируется согласно правилу ci=ai-!-2/(bi-1+1). Предусмотреть и обработать возникающие при этом исключительные ситуации( деление на ноль, выход за диапазон индексов массива и т.п.).
6)Разработка приложений с использованием типа string. Дана строка слов. Подсчитать,какая из букв встречается наибольшее(наименьшее) количество раз, а так же, общее количество разных букв в строке.
7)Использование стандартной библиотеки шаблонов STL. Сформировать стек из записей: наименование продукта, калорийность единицы продукта, количество продукта. Найти самый калорийный продукт, найти сумму калорийности всех продуктов. В массив перенести только те продукты чья калорийность ниже средней.
Вот все задачи...кто может посмотрите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объектно ориентированное программирование. (C++):

Объектно-ориентированное программирование в С++ ? - C++
Книга Р. Лафоре - Объектно-ориентированное программирование в С++ как вам ?

Объектно-ориентированное программирование - C++
Помогите мне отредактировать программу...У меня есть исходники..Склеить нужно.... Класс Данные класса Методы ...

Объектно-ориентированное программирование - C++
На основе объектного подхода создать программу которая рассчитывает значения степенных функций y=sqr(x), корень 3, 4, 5 степеней. В...

Объектно-ориентированное программирование - C++
Составить описание класса одномерных массивов строк, каждая строка которых задается длиной и указателем на выделенную для нее память....

Объектно ориентированное программирование - C++
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и редактирование классов. Нужно создать класс...

Объектно-ориентированное программирование - C++
Кто силён и мне поможет? Объектно-ориентированное программирование 1. Объявить класс по приведенному ниже заданию в соответствии с...

22
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
29.05.2011, 12:58 #16
sheill, По какой задаче? Про стек? Что значит пустое окно?
0
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
29.05.2011, 13:40  [ТС] #17
ForEveR, Да про стек. Появляется консоль и надпись нажмите для продолжения, после нажатия окно закрывается.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
29.05.2011, 14:50 #18
sheill, Ну да. Все верно) Там вывода-то и нет. Сам не сможешь дописать?))
0
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
29.05.2011, 14:52  [ТС] #19
ForEveR, Я пока не совсем разобрался, может поможешь?
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
29.05.2011, 16:07 #20
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
#include <iostream>
#include <string>
#include <stack>
#include <deque>
#include <numeric>
#include <vector>
#include <functional>
#include <algorithm>
 
namespace my
{
        template<class T, class container = std::deque<T> >
        class stack:public std::stack<T, container>
        {
        public:
                typedef typename container::iterator iterator;
                typedef typename container::const_iterator const_iterator;
 
                iterator begin() {return c.begin();}
                iterator end() {return c.end();}
                const_iterator begin() const {return c.begin();}
                const_iterator end() const {return c.end();}
        };
}
 
class Product
{
public:
        Product(const std::string& title_,
                        double en_price_,
                        int numb_):title(title_), en_price(en_price_), numb(numb_)
        {
        }
        const std::string& getTitle() const {return title;}
        double getEnPrice() const {return en_price;}
        int getNumb() const {return numb;}
        void setTitle(const std::string& title_) {title = title_;}
        void setEnPrice(double en_price_) {en_price = en_price_;}
        void setNumb(int numb_) {numb = numb_;}
private:
        std::string title;
        double en_price;
        int numb;
};
 
std::ostream& operator <<(std::ostream& os, const Product& obj)
{
     os << "Title: " << obj.getTitle() << '\n'
         << "EnPrice: " << obj.getEnPrice() << '\n'
         << "Numb: " << obj.getNumb() << '\n';
}
 
double operator +(double en_pr, Product prod)
{
        return en_pr + prod.getEnPrice();
}
 
struct EnPricesCompare:public std::binary_function<Product, Product, bool>
{
        result_type operator () (const first_argument_type& first, const second_argument_type& second)
        {
                return first.getEnPrice() < second.getEnPrice();
        }
};
 
template<class StackType>
double enPriceSum(const StackType& stck)
{
        return std::accumulate(stck.begin(), stck.end(), 0.0);
}
 
template<class StackType>
double enPriceMiddle(const StackType& stck)
{
        return enPriceSum(stck) / stck.size();
}
 
template<class StackType>
Product getMax(const StackType& stck)
{
        return *std::max_element(stck.begin(), stck.end(), EnPricesCompare());
}
 
struct EnPriceCompare:public std::unary_function<Product, bool>
{
public:
        EnPriceCompare(double m_p):middle_price(m_p)
        {
        }
        result_type operator () (const argument_type& pr)
        {
                return pr.getEnPrice() < middle_price;
        }
private:
        double middle_price;
};
 
namespace my
{
        template<class InIt, class OutIt, class Pr1>
        inline OutIt copy_if(InIt First, InIt Last, OutIt Dest, Pr1 Pred)
        {
                while(First != Last)
                {
                        if(Pred(*First))
                        {
                                *Dest=*First;
                                ++Dest;
                        }
                        ++First;
                }
                return Dest;
        }
};
 
template<class StackType, class Cont, class Pred>
void copyProducts(const StackType& stck, Cont& cont, Pred pred)
{
        my::copy_if(stck.begin(), stck.end(), std::back_inserter(cont), pred);
}
 
int main()
{
        my::stack<Product> prod_stack;
        prod_stack.push(Product("1", 10, 5));
        prod_stack.push(Product("2", 5, 6));
        prod_stack.push(Product("3", 7, 10));
        Product prod = getMax(prod_stack);
        std::cout << "Product with max energ price\n" << prod << '\n';
        std::cout << "Sum is: " << enPriceSum(prod_stack) << '\n';
        double middle = enPriceMiddle(prod_stack);
        std::cout << "Middle is: " << middle << '\n';
        std::vector<Product> prod_vec;
        copyProducts(prod_stack, prod_vec, EnPriceCompare(middle));
        std::cout << "Products with energ price less than middle\n";
        std::copy(prod_vec.begin(), prod_vec.end(), std::ostream_iterator<Product>(std::cout, "\n"));
}
1
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
29.05.2011, 17:40  [ТС] #21
ForEveR, в 51 строчка ошибка51) : error C4716: 'operator<<' : must return a value
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
29.05.2011, 17:45 #22
return os;
0
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
29.05.2011, 19:52  [ТС] #23
pito211, Спасибо!
0
29.05.2011, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 19:52
Привет! Вот еще темы с ответами:

Объектно-ориентированное программирование C++ - C++
подскажите пожалуйста литературу,видео конал на You tube, или ещо что то для изучения объектно-ориентированное программирование на С++,...

Функции Объектно-ориентированное программирование - C++
Переделать задачу так, чтобы в ней присутствовали функции объектно-ориентированное программирование. То есть использовать классы,...

Объектно-ориентированное программирование: Разработка класса строка - C++
НУЖНА ПОМОЩЬ Разработка класса строка Задание Разработать класс String определив для него методы: • копирования строк,...

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++
Мне надо решение упражнений из книги Р. Лафоре &quot;Объектно-ориентированное программирование в С++&quot;. Хотя бы какая-то часть


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

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

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