Программная инженерия Нижний Новгород 017 Лабораторный
Разработка программного комплекса
Download 1.23 Mb. Pdf ko'rish
|
Pract ADS
- Bu sahifa navigatsiya:
- 3.2. Спецификации классов С учетом предложенных к реализации алгоритмов спецификации классов могут состоять в следующем. Класс FTRAN
- TFormValue.h ): define FormLen 40 template class TFormValue
- TChartRoot.h ): class TChartRoot
- TChartPoint
- TChartGroup
- TChart
3. Разработка программного комплекса
3.1. Структура С учетом рассмотренных выше предложений к реализации целесообразной представляется следующая структура программы: FTRAN.h, FTRAN.cpp – модуль с классом для формульного транслятора; TFormValue.h – шаблонный класс для формульных значений; TChartRoot.h – шаблонный базовый абстрактный класс; TChartPoint.h – класс для точки; TChartGroup.h – класс для составного геометрического объекта; TChart.h, TChart.cpp – модуль с классами конструируемого геометрического объекта и линии; TPlexTestkit.cpp – модуль программы тестирования, UserComm.h, UserComm.cpp – модуль функций, реализующих визуальный диалоговый интерфейс для взаимодействия с пользователем. На рис. 6 показаны отношения между классами: стрелками с незакрашенным треугольником показаны отношения наследования (базовый класс – производный класс), ромбовидными стрелками – отношения ассоциации (класс-владелец – класс-компонент), обычными стрелками показано наличие поля типа указатель на другой класс. 86 Схема взаимодействия классов 3.2. Спецификации классов С учетом предложенных к реализации алгоритмов спецификации классов могут состоять в следующем. Класс FTRAN для формульного транслятора: class FTRAN { protected: unsigned char Buffer[SIZE_POST]; public: int expression(char *text); int computing(double vars[], double *result); }; Шаблонный класс для формульных значений (TFormValue.h): #define FormLen 40 template class TFormValue: public TDatValue { private: FTRAN ft; // формульный транслятор protected: TValue Value; // значение char Formula[FormLen]; // формула для вычисления значения double Param; // значение параметра формулы virtual void Print(ostream &os); public: TFormValue(TValue val = 0, const char *f = ""); virtual ~TFormValue(); void SetValue(TValue val = 0, const char *f = ""); void SetFormula(const char *f = ""); // установить формулу TValue GetValue(); // получить значение TFormValue& operator=(const TValue &val); // перегрузка присваивания TFormValue& operator=(const TFormValue &fval); // перегрузка = operator TValue() const; TValue GetValue(double par); // вычислить и вернуть значение TDatValue* GetCopy() { return new TFormValue(Value, Formula); } }; Шаблонный базовый абстрактный класс (TChartRoot.h): class TChartRoot: public TDatValue { protected: int Visible; // видимость TFormValue virtual void Print(ostream &os) { }; public: TChartRoot(); virtual ~TChartRoot(); int IsVisible(void) const; // проверка визуальности int IsActive (void) const; // проверка активности void SetActiveValue(int val = 1, char *f = NULL); virtual void Show() = 0; // визуализация объекта virtual void Hide() = 0; // скрытие объекта virtual void CalcParams(double t = -1) // вычислить параметры { if (t >= 0) Active.GetValue(t); } 87 virtual void ViewTimeShot(double t = -1); // визуадизация объекта }; Класс TChartPoint для точки: class TChartPoint: public TChartRoot { protected: TFormValue public: TChartPoint(int a = 0, int b = 0); virtual ~TChartPoint(); int GetValueX(void); int GetValueY(void); void SetValueX(int val = 0, char *f = NULL); void SetValueY(int val = 0, char *f = NULL); virtual void Show(); // визуализация объекта virtual void Hide(); // скрытие объекта virtual void CalcParams(double t = -1); // вычислить параметры virtual TDatValue* GetCopy(); // создание копии }; Класс TChartGroup для составного геометрического объекта: class TChartGroup: public TChartRoot { protected: TDatList Group; // список графических элементов группы public: TChartGroup() { } virtual ~TChartGroup(); void InsUnit(TChartRoot *pUnit); // вставить объект в группу virtual void Show(); // визуализация объекта virtual void Hide(); // скрытие объекта virtual void CalcParams(double t = -1); // вычислить параметры virtual TDatValue* GetCopy(); // создание копии }; Класс TChart для конструируемого геометрического объекта: class TChart; class TChartLine // класс для методов отрисовки рисунков { TChart *pLine; // линия TChartPoint *pFp; // начальная точка TChartPoint *pLp; // конечная точка friend class TChart; }; class TChart: public TChartGroup { protected: stack public: TChart() {} virtual ~TChart() { } TChartRoot *GetFirstPoint(void); // получить начальную точку TChartRoot *GetLastPoint(void); // получить конечную точку void SetFirstPoint(TChartRoot *pUnit); // вставить начальную точку void SetLastPoint (TChartRoot *pUnit); // вставить конечную точку virtual void Show(); // визуализация рисунка virtual void Hide(); // скрытие рисунка }; |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling