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

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

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

Сортировка двунаправленного списка C++
C++ Сортировка двунаправленного линейного списка по алгоритму Хоара
C++ Создать абстрактный класс Vehicle. На его основе реализовать классы:
Swap для двунаправленного списка C++
Вложенные структуры. Ошибка с создании вложенного двунаправленного списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
22.02.2014, 07:03     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка #2
Что контейнер?
Вам нужно реализовать классы фигур и поместить в контейнер?
Можно задачу как то написать что бы хоть связно было.
Или про контейнер это номер 3-ри?
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
22.02.2014, 07:07  [ТС]     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка #3
Да, реализовать и поместить в контейнер!
Для контейнера:
• Заполнение контейнера данными, поступающими из входного пото-ка. Полученный элемент должен быть размещен в контейнере любым из способов, выбранных программистом.
• Вывод значений всех элементов в выходной поток. Выводятся параметры элементов, размещенных в контейнере. Порядок вывода элементов определяется порядком размещения элементов в контейнере. Вывод осуществляется в стандартный поток и в файл, указанный в командной строке.
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
22.02.2014, 07:19     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка #4
1. Это у классов Круг и Прямоугольник нужно сделать общего предка Фигура с виртуальным методом например GetProperties.
2. Реализовать эти классы (по минимуму это поля, конструктор и метод GetProperties)
3. Объявить std::list<Фигура> lst; и наполнить его экземплярами классов Круг и Прямоугольник.
4. В цикле перебрать все элементы листа и вызывать у каждого GetProperties которая к примеру возвращает строку, а вы её потом уже на консоль и в файл отправляете.
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
22.02.2014, 07:21  [ТС]     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка #5
А можно помочь кодом?
zvoronz
 Аватар для zvoronz
270 / 237 / 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;
}
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
22.02.2014, 07:57  [ТС]     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка #7
Спасибо большое!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2014, 14:59     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка
Еще ссылки по теме:

C++ Сортировка двунаправленного списка
C++ Нахождение и изменение элемента двунаправленного кольцевого списка
C++ Удаление из двунаправленного списка

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

Или воспользуйтесь поиском по форуму:
Нюша123
1 / 1 / 0
Регистрация: 11.10.2013
Сообщений: 63
25.02.2014, 14:59  [ТС]     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка #8
А если еще к этому заданию добавилось еще такое:
1.Каждый абстрактный тип, функция, класс, метод размещается в своей единице компиляции. При этом описание артефакта по возможности отделено от его реализации (размещены в разных файлах).
2. Обобщение, построенное на основе косвенного связывания через универсальный указатель (void* в языке C++).
Тогда не подскажите каким образом изменится код?
Yandex
Объявления
25.02.2014, 14:59     Реализовать классы фигур и поместить в контейнер на основе двунаправленного линейного списка
Ответ Создать тему
Опции темы

Текущее время: 23:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru