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

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

Войти
Регистрация
Восстановить пароль
 
tubus1993
1 / 1 / 0
Регистрация: 15.04.2011
Сообщений: 17
#1

Наследование и двусвязный список - C++

17.11.2011, 22:46. Просмотров 847. Ответов 1
Метки нет (Все метки)

1.Постронить точка->отрезок->треугольник.Вывести на экран рисунок.
Я ее почти закончил,делал по Лафоре.Но проблема в том что делаю на dev++,а там нет библиотеки <graphics.h> и <msoftcon.h> .И я не знаю какие функции использовать чтобы нарисовать треугольник

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
#include<iostream>
#include<conio.h>
#include<msoftcon.h>  //не рабочая библиотека    
 
using namespace std;
 
class point
{
public:
int x1,y1;//координаты точки
point();// конструктор для инициализации коодинат 
}
class line : public point
{
public:
line();// конструктор
int  x2,y2;
}
class triangle: public line
{
public:
triangle()// конструктор
int x3,y3;
 
}
 
int main()
{
    triangle h;
    init_graphics(); //не рабочая функция     
    triangle tri(); //вписать координаты
    getch();
    return 0;
 
}
2. Дан непустой двусвязный список. Удалить из списка все элементы с
нечётными значениями и вывести указатель p2 на начало
преобразованного списка. Если в результате удаления элементов список
окажется пустым, то положить p2 = NULL. После удаления элементов из
списка освобождать память, занимаемую этими элементами.


тут проблема с указателями,совершенно запутался

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
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
////////////////////////////////////////////////////////////////
class smallobj               
   {
   private:
      int somedata;
      public:
        smallobj* p1;
        smallobj* p2;  
      void setdata(int d)    
         { somedata = d;}
      void showdata()                  //выводит все числа
         { cout << " " << somedata;}
      void deldata(int k); //удаляет нечетные
      void textdata();   //выводит на экран только четные,
    };
    void smallobj::deldata(int k)
    {
         smallobj *m=new smallobj();//создал указатель на элемент
         if(k/2)  
         {
          
         }                                       //тут,я так понял надо сделать что-то с указателями
    }
    
    void smallobj::textdata()  
    {
       cout <<" " <<somedata;
    }
////////////////////////////////////////////////////////////////
int main()
   {
   srand(time(NULL));       
   smallobj s1;   
   int k,n;
   cout<<"Vvedite kol-vo elementov ";
   cin>>k;
   for(int i=0;i<k;i++)
   {
   n=rand()%10;   
   s1.setdata(n);
   s1.deldata(n);
   s1.showdata();
   s1.textdata();
   }
   getch();
   return 0;
   }
Добавлено через 3 часа 35 минут
поправил чуть-чуть
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование и двусвязный список (C++):

виртуальный оператор (двусвязный список, наследование) - C++
Здравствуйте! Поставлена задача реализовать двусвязный список, способный хранить объекты классов Circle и Rectangle, которые, как...

Переделать двусвязный список в двусвязный кольцевой - C++
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это запрограммировать? и второй вопрос как обеспечить вставку...

Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список - C++
спасайте Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список. Информация о работнике...

Двусвязный список (в конец двусвязного списка добавить другой список) - C++
здравствуйте, подскажите пожалуйста, как в конец двусвязного списка добавить другой список?

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

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов - C++
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный список студентов. Помогите пожалуйста,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
17.11.2011, 23:20 #2
По поводу первой задачи.
1. Эти библиотеки есть только у сильно устаревшего компилятора, который вряд ли кто использует. Если это тестовое задание, нет нужды рисовать объекты. Достаточно вывести их данные.
2. Некорректное наследование. Линия не ведет себя как точка, а треугольник не ведет себя как линия. Тут более уместно отношение включения.

Например.
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
#include <iostream>
#include <cmath>
 
class Point {
 public:
  Point(int x, int y) : x_(x), y_(y) {}
  Point(const Point &point)
    : x_(point.getX()), y_(point.getY()) {}
  const int getX() const { return x_; }
  const int getY() const { return y_; }
  void setX(int value) { x_ = value; }
  void setY(int value) { y_ = value; }
  float distanceTo(const Point &point) const {
    return(sqrt(pow(point.getX() - getX(), 2.) +
      pow(point.getY() - getY(), 2.)));
  }
 private:
  int x_;
  int y_;
};
 
std::ostream &operator<<(std::ostream &stream, const Point &point) {
  return stream << "[" << point.getX() << ":" << point.getY() << "]";
}
 
class Line {
 public:
  Line(const Point &a, const Point &b) : a_(a), b_(b) {}
  Line(const Line &line) : a_(line.getA()), b_(line.getB()) {}
  const Point &getA() const { return a_; }
  const Point &getB() const { return b_; }
  void setA(const Point &value) { a_ = value; }
  void setB(const Point &value) { b_ = value; }
  float length() const {return a_.distanceTo(b_); }
 private:
  Point a_;
  Point b_;
};
 
std::ostream &operator<<(std::ostream &stream, const Line &line) {
  return stream << "(" << line.getA() << " - " << line.getB() <<
    ", l = " << line.length() << ")";
}
 
class Triangle {
 public:
  Triangle(const Point &a, const Point &b, const Point &c)
    : a_(a), b_(b), c_(c) {}
  Triangle(const Triangle &other)
    : a_(other.getA()), b_(other.getB()), c_(other.getC()) {}
  const Point &getA() const { return a_; }
  const Point &getB() const { return b_; }
  const Point &getC() const { return c_; }
  void setA(const Point &value) { a_ = value; }
  void setB(const Point &value) { b_ = value; }
  void setC(const Point &value) { c_ = value; }
 private:
  Point a_, b_, c_;
};
 
std::ostream &operator<<(std::ostream &stream, const Triangle &triangle) {
  return stream << "(" << triangle.getA() << ", " << triangle.getB() <<
    ", " << triangle.getB() << ")";
}
 
int main(int argc, char *argv[]) {
  Triangle a(Point(0, 0), Point(0, 1), Point(1, 0));
  std::cout << a << std::endl;
  return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 23:20
Привет! Вот еще темы с ответами:

Двусвязный список - C++
Вот решил написать двусвязный список. Написаны только две функции решил попробовать работает или нет, оказалось, что нет. Компилятор...

Двусвязный список - C++
Подскажите в чем ошибка, почему не выводит элементы списка в обратном порядке (выводит только один элемент) #include &lt;fstream&gt; ...

Двусвязный список - C++
Привет, народ. Помогите плиз найти ошибку. #include &quot;iostream&quot; #include &quot;cmath&quot; using namespace std; struct elem { int...

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


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

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

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