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

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

Войти
Регистрация
Восстановить пароль
 
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
#1

Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка - C++

22.02.2014, 06:55. Просмотров 706. Ответов 7
Метки нет (Все метки)

Всем доброе утро
задача:
Плоская геометрическая фигура:1. Круг (целочисленные координата центра окружности, радиус)
2. Прямоугольник (целочисленные координаты левого верхнего и правого нижнего углов) Цвет фигуры (перечислимый тип) = {красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый}
Контейнер на основе двунаправленного линейного списка.
можете помочь,как для начала сделать?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 06:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка (C++):

Пример использование стека на основе массива и на основе двунаправленного списка - C++
здраствуте, можете привести примеры использывания стека на основе массива(1 код) и стек на основе двунаправленного списка(2...

Сортировка двунаправленного линейного списка по алгоритму Хоара - C++
ПОМОГИТЕ СРОЧНО!!!! нужно отсортировать двунаправленный линейный список по алгоритму Хоара менять местами можно только указатели!! код...

Реализовать стек на массиве с использованием двунаправленного списка - C++
здраствуйте, может кто-то пожалуйста привести реализацию примера стека, реализованого на массиве с использиванием...

Создание стека на основе линейного списка - C++
В функции main разработать программу работы с символьным стеком, реализующую операции добавления и удаления элементов из стека и...

Создать абстрактный класс Vehicle. На его основе реализовать классы: - C++
Создать абстрактный класс Vehicle. На его основе реализовать классы Car (автомобиль), Bicycle (велосипед) и Lorry (грузовик). Классы должны...

Получить указатель на элемент двунаправленного списка, добавить значение в начало списка и очистить его - C++
Нужно создать двунаправленный список //вроде так, но не уверен struct Double_List {//структура данных int Data;...

7
zvoronz
271 / 239 / 21
Регистрация: 29.05.2012
Сообщений: 889
22.02.2014, 07:03 #2
Что контейнер?
Вам нужно реализовать классы фигур и поместить в контейнер?
Можно задачу как то написать что бы хоть связно было.
Или про контейнер это номер 3-ри?
0
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
22.02.2014, 07:07  [ТС] #3
Да, реализовать и поместить в контейнер!
Для контейнера:
• Заполнение контейнера данными, поступающими из входного пото-ка. Полученный элемент должен быть размещен в контейнере любым из способов, выбранных программистом.
• Вывод значений всех элементов в выходной поток. Выводятся параметры элементов, размещенных в контейнере. Порядок вывода элементов определяется порядком размещения элементов в контейнере. Вывод осуществляется в стандартный поток и в файл, указанный в командной строке.
0
zvoronz
271 / 239 / 21
Регистрация: 29.05.2012
Сообщений: 889
22.02.2014, 07:19 #4
1. Это у классов Круг и Прямоугольник нужно сделать общего предка Фигура с виртуальным методом например GetProperties.
2. Реализовать эти классы (по минимуму это поля, конструктор и метод GetProperties)
3. Объявить std::list<Фигура> lst; и наполнить его экземплярами классов Круг и Прямоугольник.
4. В цикле перебрать все элементы листа и вызывать у каждого GetProperties которая к примеру возвращает строку, а вы её потом уже на консоль и в файл отправляете.
1
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
22.02.2014, 07:21  [ТС] #5
А можно помочь кодом?
0
zvoronz
271 / 239 / 21
Регистрация: 29.05.2012
Сообщений: 889
22.02.2014, 07:51 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <string>
#include <list>
#include <cstdio>
 
using namespace std;
 
class Figure
{
public:
    virtual std::string GetProperties() = 0;
};
 
class Circle : public Figure
{
    int x, y, r;
public:
    Circle(int x, int y, int r):x(x),y(y),r(r)
    {      
    }
    std::string GetProperties()
    {
        char buf[100];
        sprintf(buf,"circle: x=%d y=%d r=%d", x, y, r);
        return std::string(buf);
    }
};
 
class Rectangle : public Figure
{
    int x1, y1, x2, y2;
public:
    Rectangle(int x, int y, int x1, int y1):x1(x),y1(y),x2(x1),y2(y1)
    {      
    }
    std::string GetProperties()
    {
        char buf[100];
        sprintf(buf,"rectangle: x1=%d y1=%d x2=%d y2=%d", x1, y1, x2, y2);
        return std::string(buf);
    }
};
 
 
int main()
{
    
    std::list<Figure*> lst;
    std::list<Figure*>::iterator lstit;
    
    lst.push_back(new Circle(10, 5, 12));
    lst.push_back(new Circle(10, 15, 22));
    lst.push_back(new Rectangle(104, 15, 212, 134));
    lst.push_back(new Circle(12, 5, 7));
    lst.push_back(new Rectangle(106, 85, 132, 334));
    lst.push_back(new Rectangle(1034, 785, 542, 324));
    lst.push_back(new Rectangle(102, 35, 512, 634));
    
    
    for(lstit = lst.begin(); lstit != lst.end(); ++lstit)
        std::cout << (*lstit)->GetProperties() << std::endl;
    
   
   return 0;
}
1
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
22.02.2014, 07:57  [ТС] #7
Спасибо большое!!!!!!
0
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
25.02.2014, 14:59  [ТС] #8
А если еще к этому заданию добавилось еще такое:
1.Каждый абстрактный тип, функция, класс, метод размещается в своей единице компиляции. При этом описание артефакта по возможности отделено от его реализации (размещены в разных файлах).
2. Обобщение, построенное на основе косвенного связывания через универсальный указатель (void* в языке C++).
Тогда не подскажите каким образом изменится код?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2014, 14:59
Привет! Вот еще темы с ответами:

Шаблон двунаправленного списка - C++
Добрый день! Пишу программу &quot;библиотека&quot;, которая включает в себя типы данных Книга и Читатель соответственно: const int...

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

Реализация Двунаправленного списка - C++
Ребят, что он хочет от меня, ошибка компиляции, понять не могу в чем проблема, у меня еще просто компилятор не пишет причину ошибки а...

Удаление из двунаправленного списка - C++
Программа компилируется, добавляет элементы в список, но когда доходит до удаления вылетает. #include &lt;iostream&gt; #include &lt;cstring&gt; ...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
25.02.2014, 14:59
Ответ Создать тему
Опции темы

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