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

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

Задача 2

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

Задача 3

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

Обсуждение

Неизвестный
15.02.2011, 11:32
общий
Если вы действительно хотите разобраться, то попытайтесь решить сами и выкладывайте что у вас получилось. А мы вас поправим
давно
Старший Модератор
17042
808
15.02.2011, 11:32
общий
Задавая три не связанных между собой вопроса в одной форме, помните, что экспреты имеют право ответить лишь на один из них, оставив остальные без внимания.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Неизвестный
15.02.2011, 18:05
общий
это ответ
Здравствуйте, 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
Неизвестный
15.02.2011, 19:51
общий
Цитата: 321399
классы только начинаю учить, так быстро за две недели, я не могу разобраться, или написать, что-то, да и помочь разобраться некому, ну задачи нужны уже теперь. Большое Спасибо хоть за одну решенную, задачу, мне же нужно пять решить за две недели
Форма ответа