AKB Forums

Go Back   AKB Forums > Technical sections > Languages, Compilers and Interpreters > C/C++
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Aug 10, 2007, 21:56   #1
Младенец
 
Join Date: Aug 2007
Location: mariupol
Posts: 3
Rep Power: 0
Reputation: 10
Пожалуйста помогите с заданием...

Пожалуста помогите разобраться. Я только только начал изучать С++ и нас уже нагружают такими задачами. Я разобрался только с простейшими консольными приложениями в классах плохо разбираюсь, точнее ни как. Работаю в Visual C++ 6.
Спасибо всем.
Создать базовый класс Picture, который содержит информацию о примитиве векторной графики (координаты xl,yl, x2,y2 ограничивающего прямоугольника, в котором будет рисоваться фигура; функцию Scale(...), рисующую примитив). На основе базового класса создать классы Reet. Ell. Line, которые рисуют соответственно прямоугольник, эллипс и линию. В основной программе создать массив элементов и с помощью клавиатуры управлять масштабом изображения. Доступ ко всем полям класса организовать только через методы класса.
valmer is offline   Reply With Quote Quote selected
Old Aug 10, 2007, 23:18   #2
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,619
Rep Power: 5
Reputation: 82
Send a message via ICQ to AvDav
Code:
class Picture {
protected:
int x1, y1, x2, y2;
public:
 Picture(int a=0, int b=0, int c=200, int d=200) : x1(a), y1(b), x2(c), y2(d){}
 virtual void Draw(HDC) = 0;
 void SetBounds(int a, int b, int c, int d) {x1=a; y1=b; x2=c; y2=d;}
 void GetBounds(int& a, int& b, int& c, int& d) const {a=x1; b=y1; c=x2; d=y2;} 
 virtual ~Picture() {}
};

class Ellipse : public Picture {
public:
 Ellipse(int a, int b, int c, int d) : Picture(a, b, c, d) {}
 void Draw(HDC hdc) {::Ellipse(hdc, a, b, c, d);}
};

class Rect : public Picture {
public:
 Rect(int a, int b, int c, int d) : Picture(a, b, c, d) {}
 void Draw(HDC hdc) {::Rectangle(hdc, x1, y1, x2, y2);}
};

class Line : public Picture {
public:
 Line(int a, int b, int c, int d) : Picture(a, b, c, d) {}
 void Draw(HDC hdc) {::MoveTo(hdc, x1, y1); ::LineTo(hdc, x2, y2);}
};

class Engine {
std::vector<Picture*> shapes;
public:
 void ReDraw(HDC hdc) {std::for_each(shapes.begin(), shapes.end(), std::bind2nd(std::mem_fun(&Picture::Draw), hdc);}
 void AddShape(int a, int b, int c, int d) {
  switch(rand()%3) {
    case 0: shapes.push_back(new Ellipse(a, b, c, d)); break;
    case 1: shapes.push_back(new Rect(a, b, c, d)); break;
    case 2: shapes.push_back(new Line(a, b, c, d)); break;
  }
 }
};
Вобщем тут естественно не вся реализация, я попробовал в общих чертах описать механизм, думаю полезнее будет почитать о программировании в среде виндовс и С++ чтоб суметь окончательно справиться с задачей, а так по ходу дела будут конкретные вопросы - можно уже задавать на форуме.
__________________
Deutschland, Deutschland über alles
Über alles in der Welt,

Wenn es stets zu Schutz und Trutze
Brüderlich zusammenhält,

Von der Maas bis an die Memel,
Von der Etsch bis an den Belt.


Last edited by AvDav : Aug 10, 2007 at 23:28.
AvDav is offline   Reply With Quote Quote selected
Old Aug 11, 2007, 07:04   #3
Грустно...
 
Agregat's Avatar
 
Join Date: Aug 2002
Location: Там, где всегда идут дожди
Posts: 21,403
Rep Power: 10
Reputation: 133
Send a message via ICQ to Agregat Send a message via MSN to Agregat
Ва Давид, какой позор... почему координаты протектед? Они должны быть приватными, а доступ к ним осуществлять через протектед мембер функшн.

Кроме того, условие явно некорректно передано, так как суть задачи, судя по именам функций является маштабирование, чего не решено

Зачем учиться, если нету возможности решить элементарную задачу?
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!
Agregat is offline   Reply With Quote Quote selected
Old Aug 11, 2007, 15:27   #4
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,619
Rep Power: 5
Reputation: 82
Send a message via ICQ to AvDav
Мог бы еще к ГДИ придраться, типа откуда знаем что не на консоли рисуем
__________________
Deutschland, Deutschland über alles
Über alles in der Welt,

Wenn es stets zu Schutz und Trutze
Brüderlich zusammenhält,

Von der Maas bis an die Memel,
Von der Etsch bis an den Belt.

AvDav is offline   Reply With Quote Quote selected
Old Aug 17, 2007, 21:59   #5
Младенец
 
Join Date: Aug 2007
Location: mariupol
Posts: 3
Rep Power: 0
Reputation: 10
Спасибо за помощь, попробую разобраться.
А к тому, зачем учиться если не получаются простые задачи объясню: Учусь заочно в филиале ХНУРЭ, по програмированию (как и по другим предметам) одна лекция 45 мин. за пол-года, преподы приезжают в наш город только на сессию, спросить не у кого, книг прикупил, а толку? учусь благодаря таким как вы , спрашиваю, а потом разбираюсь тогда хоть что-то ясно становится. Еще раз спасибо.
Посоветуйте пожалуйста толковую книгу для совершенно самостоятельного изучения С++.

Last edited by valmer : Aug 17, 2007 at 22:09.
valmer is offline   Reply With Quote Quote selected
Old Aug 17, 2007, 22:34   #6
Какое небо, бля, Багдад!
 
knightmare's Avatar
 
Join Date: Oct 2005
Location: Ереван
Posts: 1,647
Rep Power: 3
Reputation: 68
Quote:
Originally Posted by valmer View Post
Посоветуйте пожалуйста толковую книгу для совершенно самостоятельного изучения С++.
Страуструп, "Язык программирования C++", из первых рук, так сказать.
__________________
мордой об лавку
LISP is the only language that is truly beautiful.
d
.

Хочу трахнуть Nissan Skyline R34, и ездить на Alessandra Ambrosio
knightmare is offline   Reply With Quote Quote selected
Old Aug 17, 2007, 22:40   #7
Дикообраз-безобраз
 
AvDav's Avatar
 
Join Date: Jul 2004
Location: У самого синего моря
Posts: 2,619
Rep Power: 5
Reputation: 82
Send a message via ICQ to AvDav
Эффективное программирование на С++, Эндрю Кениг и Барбара Му.
Язык программирования С++, Бьерн Страуструп.
www.rsdn.ru
__________________
Deutschland, Deutschland über alles
Über alles in der Welt,

Wenn es stets zu Schutz und Trutze
Brüderlich zusammenhält,

Von der Maas bis an die Memel,
Von der Etsch bis an den Belt.

AvDav is offline   Reply With Quote Quote selected
Old Aug 19, 2007, 05:17   #8
Младенец
 
Join Date: Aug 2007
Location: mariupol
Posts: 3
Rep Power: 0
Reputation: 10
Спасибо огромное, буду искать.
valmer is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Помогите запрограммировать цветного скользкого колобка с серебряным низом и дигикамер AMG Fun 1 Dec 26, 2005 13:18
Помогите, пожалуйста, с задачкой... Chmok Science and Education 10 Mar 17, 2005 13:43
помогите пожалуйста. GeorgioArmeni General 2 Sep 1, 2004 13:18
Пожалуйста, ПОМОГИТЕ! Ally_Z Jobs 37 Jun 28, 2002 04:42
Пожалуйста, ПОМОГИТЕ! Photographer Jobs 0 Jun 22, 2002 04:17


All times are GMT. The time now is 08:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link