Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Асмик Александровна
Статус: Академик
Рейтинг: 7274
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2651
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2248
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1635
Дата выхода:20.02.2011, 21:00
Администратор рассылки:Киселёва Алёна aka Verena (Профессор)
Подписчиков / экспертов:319 / 188
Вопросов / ответов:1 / 1

Вопрос № 182217: Помогите пожалуйста решить данные задачи в С++, в консольной форме, если можно с обьяснениями, т.к я только начал изучать классы и хочу разобраться. Спасибо Задача 1 Разработать программу, реализующую механизм перегрузки функций и операц...



Вопрос № 182217:

Помогите пожалуйста решить данные задачи в С++, в консольной форме, если можно с обьяснениями, т.к я только начал изучать классы и хочу разобраться. Спасибо
Задача 1
Разработать программу, реализующую механизм перегрузки функций и операций для объектов, введенных пользователем.

Создать класс “система линейных уравнений”, определить для него операции:
a) решение системы методом Гаусса;
b) решение системы методом Крамара;
Продемонстрируйте выполнение операций с объектами этого класса.

Задача 2

Для проверки функционирования созданных классов написать программу, использующую эти классы, т.е использование механизма наследования. В программе должны быть продемонстрированы все свойства созданных классов.
Задание для решения
Список : бинарное дерево : n – арное дерево. Определить классы и их иерархию, а также продемонстрировать использование введенных конструкций при работе.

Задача 3

Организация програ мм с использованием виртуальных функций и абстрактных базовых классов
Написать программу создания базового класса num. В этом классе должно храниться целое и определена виртуальная функция shownum( ). Создайте два производных класса outhex и outoct, которые наследуют класс num. Функция shownum( ) должна быть переопределена в производных классах так, чтобы осуществлять вывод на экран значений, в шестнадцатеричной и восьмеричной системах счисления соответственно.

Отправлен: 15.02.2011, 09:52
Вопрос задал: pavell (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Micren (Профессор) :
Здравствуйте, pavell!
Программа к задаче 3. Компилировал GCC.
Код:
/* 
* File: main.cpp
* Author: Micren
*
* Created on 15 Февраль 2011 г., 16:31
*/

#include <iostream>
#include <iomanip>

// Классы согласно условия

class num
{
public:
num(int value = 0);
virtual void show(std::ostream &stream) const;
int value() const;
protected:
int _value;
};

class outhex : public num
{
public:
outhex(int value = 0);
outhex(const num& value);
virtual void show(std::ostream &stream) const;
};

class outoct : public num
{
public:
outoct(int value = 0 );
outoct(const num& value);
virtual void show(std::ostream &stream) const;
};


// Ф-я для вывода результатов
// Для демонстрирации полиморфизма используем ссылку или указатель

void print(const char* const msg, const num& val)
{
std::cout << msg;
val.show(std::cout);
std::cout << std::endl;
}

/*
*
*/
int main()
{
num number(10);
outhex hex(number);
outoct oct(number);

print("number=", number);
print("outhex=", hex);
print("outoct=", oct);

#ifdef _WIN32
system("pause");
#endif

return 0;
}

num::num(int value)
: _value(value)
{

}

void num::show(std::ostream &stream) const
{
stream << _value;
}

int num::value() const
{
return _value;
}

outhex::outhex(int value)
: num(value)
{

}
outhex::outhex(const num& value)
: num(value)
{
}

void outhex::show(std::ostream& stream) const
{
stream << std::hex << _value;
}

outoct::outoct(int value)
: num(value)
{

}

outoct::outoct(const num& value)
: num(value)
{
}

void outoct::show(std::ostream& stream) const
{
stream << std::oct << _value;
}

Результат работы:
Код:
number=10
outhex=a
outoct=12

Ответ отправил: Micren (Профессор)
Ответ отправлен: 15.02.2011, 18:05
Номер ответа: 265879
Украина, Краматорск

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 265879 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное