Программная инженерия Нижний Новгород 017 Лабораторный


Разработка программного комплекса


Download 1.23 Mb.
Pdf ko'rish
bet73/87
Sana08.06.2023
Hajmi1.23 Mb.
#1463900
TuriУчебно-методическое пособие
1   ...   69   70   71   72   73   74   75   76   ...   87
Bog'liq
Pract ADS

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 Active; // обрабатываются только активные объекты 
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 X, Y; // координаты точки 
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 St; 
public: 
TChart() {} 
virtual ~TChart() { } 
TChartRoot *GetFirstPoint(void); // получить начальную точку 
TChartRoot *GetLastPoint(void); // получить конечную точку 
void SetFirstPoint(TChartRoot *pUnit); // вставить начальную точку 
void SetLastPoint (TChartRoot *pUnit); // вставить конечную точку 
virtual void Show(); // визуализация рисунка 
virtual void Hide(); // скрытие рисунка 
}; 


 
88 

Download 1.23 Mb.

Do'stlaringiz bilan baham:
1   ...   69   70   71   72   73   74   75   76   ...   87




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling