24.11.2014 Views

Программирование на С++ - eDrive

Программирование на С++ - eDrive

Программирование на С++ - eDrive

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

29<br />

Series1–>Assign (myForm1–>Series1); }<br />

void __fastcall TmyForm1::Button2Click (TObject *Sender)<br />

{ QuickReport1–>Preview (); }<br />

Задачи<br />

1. Используя метод Clear компонента Series, предоставить пользователю<br />

возможность пересчета данных с обновлением диаграммы при повторном<br />

<strong>на</strong>жатии кнопки Расчет.<br />

2. Организовать проверку корректности исходных и расчетных данных, используя<br />

константы MAXDOUBLE и MINDOUBLE или MAXFLOAT и MIN-<br />

FLOAT из файла заголовка values.h.<br />

3. Организовать защиту программы от аварийного завершения, используя<br />

механизм обработки исключений.<br />

4. Выполнить сохранение исходных данных в текстовом файле и чтение их из<br />

файла с помощью компонентов TStringList, TSaveDialog и TOpenDialog.<br />

Работа 12. Наследование<br />

Задание<br />

Для освоения техники взаимодействия базовых и производных классов создать<br />

проект, в котором в<strong>на</strong>чале реализовать базовый (Shape) и производный<br />

(Circle) классы по данному ниже описанию. Затем разработать собственный<br />

производный класс фигуры, заданной в табл. 1, c теми же методами, что и<br />

Circle: рисованием, закрашиванием и перемещением.<br />

Рекомендации<br />

1. Базовый класс. Для создания классов в дополнение к форме ввести в проект<br />

новый модуль (Unit) из библиотеки шаблонов (File.New) и подключить<br />

(File.Include Unit Hdr…) его к форме, а форму – к нему. В файле заголовка<br />

модуля объявить абстрактный базовый класс Shape:<br />

class Shape<br />

{ protected:<br />

TColor penColor, brushColor;<br />

public:<br />

Shape (TColor p, TColor b) { penColor = p; brushColor = b; }<br />

virtual void Draw () = 0;<br />

virtual void Move (int x, int y) = 0;<br />

virtual void Fill () = 0;<br />

static void Clear (); };

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!