![]() | |
| | #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, которые рисуют соответственно прямоугольник, эллипс и линию. В основной программе создать массив элементов и с помощью клавиатуры управлять масштабом изображения. Доступ ко всем полям класса организовать только через методы класса. |
| | |
| | #2 |
| Дикообраз-безобраз | 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. |
| | |
| | #3 |
| Грустно... | Ва Давид, какой позор... почему координаты протектед? Они должны быть приватными, а доступ к ним осуществлять через протектед мембер функшн. Кроме того, условие явно некорректно передано, так как суть задачи, судя по именам функций является маштабирование, чего не решено ![]() Зачем учиться, если нету возможности решить элементарную задачу?
__________________ http://аvitya.livejournal.com Хотели, как лучше, а получилось даже хуже... Лозунг шахматиста: На каждый шах - ответим матом! |
| | |
| | #4 |
| Дикообраз-безобраз | Мог бы еще к ГДИ придраться, типа откуда знаем что не на консоли рисуем ![]()
__________________ 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. |
| | |
| | #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. |
| | |
| | #6 |
| Какое небо, бля, Багдад! Join Date: Oct 2005 Location: Ереван
Posts: 1,647
Rep Power: 3 Reputation:
68 | Страуструп, "Язык программирования C++", из первых рук, так сказать.
__________________ мордой об лавку LISP is the only language that is truly beautiful. d . Хочу трахнуть Nissan Skyline R34, и ездить на Alessandra Ambrosio |
| | |
| | #7 |
| Дикообраз-безобраз | Эффективное программирование на С++, Эндрю Кениг и Барбара Му. Язык программирования С++, Бьерн Страуструп. 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. |
| | |
![]() |
| Thread Tools | |
| Display Modes | |
| |
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 |