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

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

edrive.narod.ru
from edrive.narod.ru More from this publisher
24.11.2014 Views

28 Рекомендации 1. Разработка интерфейса пользователя. Создать проект и разместить в форме необходимые поля для ввода данных, кнопки Расчет и Отчет и элемент управления Chart с вкладки Additional. В редакторе свойства Series- List элемента управления Chart нажать кнопку Add столько раз, сколько серий диаграммы должно быть выведено на экран. Здесь же полезно воспользоваться кнопкой Title, чтобы подписать каждую кривую. Оси распределяются между сериями диаграммы на вкладке Series в разделе General 2. Разработка функций. В файле кода формы объявить требуемые функции. Программировать эти функции и обработчик кнопки Расчет, перенося необходимые фрагменты текста из технического задания и редактируя их. 3. Построение диаграмм. В класс формы добавить функцию построения диаграммы и определить ее в файле кода формы, используя метод AddXY компонента Series, например: void TmyForm1::myPlot (double point, double time) { Series1–>AddXY (time, point); } Вызовом этой функции завершать каждую итерацию расчета. 4. Формирование отчета. Выбрать в меню File команду New и на вкладке New открыть Report. Подключить отчет к форме и форму к отчету (File.Include Unit Hdr…). В списке свойств отчета Bands установить в true свойство HasTitle, а в свойстве ReportTitle указать имя автора, группу и вариант. С вкладки QReport панели компонентов поместить в заголовок отчета два элемента управления QRSysData и инициализировать свойство Data первого из них константой qrsReportTitle, а второго – константой qrsDate. Полосу данных занять элементом управления QRImage. В редакторе свойства Chart элемента управления QRChart кнопкой Add добавить необходимое число серий диаграммы Series. 5. Управление отчетом. Подготовить обработчик события отчета OnNeed- Data, в котором свойство Chart диаграммы отчета инициализировать диаграммой из формы, а каждую серию диаграммы отчета – соответствующей серией диаграммы формы. Открывать отчет из главной формы с использованием метода Preview, например: void __fastcall TQuickReport1::QuickRepNeedData (TObject *Sender, bool &MoreData) { QRChart1–>Chart–>Assign (myForm1–>Chart1);

29 Series1–>Assign (myForm1–>Series1); } void __fastcall TmyForm1::Button2Click (TObject *Sender) { QuickReport1–>Preview (); } Задачи 1. Используя метод Clear компонента Series, предоставить пользователю возможность пересчета данных с обновлением диаграммы при повторном нажатии кнопки Расчет. 2. Организовать проверку корректности исходных и расчетных данных, используя константы MAXDOUBLE и MINDOUBLE или MAXFLOAT и MIN- FLOAT из файла заголовка values.h. 3. Организовать защиту программы от аварийного завершения, используя механизм обработки исключений. 4. Выполнить сохранение исходных данных в текстовом файле и чтение их из файла с помощью компонентов TStringList, TSaveDialog и TOpenDialog. Работа 12. Наследование Задание Для освоения техники взаимодействия базовых и производных классов создать проект, в котором вначале реализовать базовый (Shape) и производный (Circle) классы по данному ниже описанию. Затем разработать собственный производный класс фигуры, заданной в табл. 1, c теми же методами, что и Circle: рисованием, закрашиванием и перемещением. Рекомендации 1. Базовый класс. Для создания классов в дополнение к форме ввести в проект новый модуль (Unit) из библиотеки шаблонов (File.New) и подключить (File.Include Unit Hdr…) его к форме, а форму – к нему. В файле заголовка модуля объявить абстрактный базовый класс Shape: class Shape { protected: TColor penColor, brushColor; public: Shape (TColor p, TColor b) { penColor = p; brushColor = b; } virtual void Draw () = 0; virtual void Move (int x, int y) = 0; virtual void Fill () = 0; static void Clear (); };

28<br />

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

1. Разработка интерфейса пользователя. Создать проект и разместить в<br />

форме необходимые поля для ввода данных, кнопки Расчет и Отчет и элемент<br />

управления Chart с вкладки Additional. В редакторе свойства Series-<br />

List элемента управления Chart <strong>на</strong>жать кнопку Add столько раз, сколько серий<br />

диаграммы должно быть выведено <strong>на</strong> экран. Здесь же полезно воспользоваться<br />

кнопкой Title, чтобы подписать каждую кривую. Оси распределяются<br />

между сериями диаграммы <strong>на</strong> вкладке Series в разделе General<br />

2. Разработка функций. В файле кода формы объявить требуемые функции.<br />

Программировать эти функции и обработчик кнопки Расчет, перенося необходимые<br />

фрагменты текста из технического задания и редактируя их.<br />

3. Построение диаграмм. В класс формы добавить функцию построения диаграммы<br />

и определить ее в файле кода формы, используя метод AddXY<br />

компонента Series, <strong>на</strong>пример:<br />

void TmyForm1::myPlot (double point, double time)<br />

{ Series1–>AddXY (time, point); }<br />

Вызовом этой функции завершать каждую итерацию расчета.<br />

4. Формирование отчета. Выбрать в меню File команду New и <strong>на</strong> вкладке<br />

New открыть Report. Подключить отчет к форме и форму к отчету<br />

(File.Include Unit Hdr…). В списке свойств отчета Bands установить в true<br />

свойство HasTitle, а в свойстве ReportTitle указать имя автора, группу и вариант.<br />

С вкладки QReport панели компонентов поместить в заголовок отчета<br />

два элемента управления QRSysData и инициализировать свойство<br />

Data первого из них константой qrsReportTitle, а второго – константой<br />

qrsDate. Полосу данных занять элементом управления QRImage. В редакторе<br />

свойства Chart элемента управления QRChart кнопкой Add добавить<br />

необходимое число серий диаграммы Series.<br />

5. Управление отчетом. Подготовить обработчик события отчета OnNeed-<br />

Data, в котором свойство Chart диаграммы отчета инициализировать диаграммой<br />

из формы, а каждую серию диаграммы отчета – соответствующей<br />

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

метода Preview, <strong>на</strong>пример:<br />

void __fastcall TQuickReport1::QuickRepNeedData (TObject *Sender,<br />

bool &MoreData)<br />

{ QRChart1–>Chart–>Assign (myForm1–>Chart1);

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

Saved successfully!

Ooh no, something went wrong!