Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Министерство Образования и Науки Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
Новосибирский Государственный Технический Университет
Кафедра ПМт
Расчетно-графическое задание
по объектно-ориентированному программированию
Факультет: ПМИ
Группа: ПМИ - 21
Студент: Давыдов Д.В.
Преподаватель: Еланцева И.Л.
Новосибирск 2013
Цель работы
Изучить средства работы с диаграммой классов и создания прототипа кода на языке С++, предоставляемые системой Enterprise Architect.
1. Ознакомиться с назначением и элементами диаграммы классов, технологией разработки диаграмм классов и создания прототипа кода классов на языке С++ в системе Enterprise Architect.
2. Составить диаграмму классов, соответствующую графической системе, разработанной в лабораторных работах № 4, 5, и произвести автоматическую генерацию прототипа кода разработанных классов.
2.1. Поместить на диаграмму классы геометрических фигур и шаблон контейнера.
2.2. Специфицировать атрибуты и операции классов, а также отношения, существующие между классами.
2.3. Произвести автоматическую генерацию прототипа кода разработанных классов.
2.4. Сгенерированный код сравнить с кодом, полученным в лабораторных работах № 4, 5. В случае необходимости внести исправления в диаграмму классов и повторить генерацию кода.
4. Оформить отчет, содержащий постановку задачи, разработанную диаграмму классов и текст прототипа кода.
5. Защитить РГЗ, ответив на вопросы преподавателя.
Сгенерированный код:
Класс «Rec_crod». (Прямоугольник)
///////////////////////////////////////////////////////////
// Rec_cord.h
// Implementation of the Class Rec_cord
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#if !defined(EA_389A3A29_F36F_4ecd_931D_1CD50AA62924__INCLUDED_)
#define EA_389A3A29_F36F_4ecd_931D_1CD50AA62924__INCLUDED_
class Rec_cord
{
public:
Rec_cord();
virtual ~Rec_cord();
virtual void color(HDC WIN, HWND window) =0;
void input(RECT rt, FILE* file);
protected:
int x1;
int x2;
int y1;
int y2;
int test(int x1, int y1, int x2, int y2, RECT rt);
};
#endif // !defined(EA_389A3A29_F36F_4ecd_931D_1CD50AA62924__INCLUDED_)
///////////////////////////////////////////////////////////
// Rec_cord.cpp
// Implementation of the Class Rec_cord
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#include "Rec_cord.h"
Rec_cord::Rec_cord(){
}
Rec_cord::~Rec_cord(){
}
void Rec_cord::input(RECT rt, FILE* file){
}
int Rec_cord::test(int x1, int y1, int x2, int y2, RECT rt){
return 0;
}
Класс «Rec_cont». (контур)
///////////////////////////////////////////////////////////
// Rec_cont.h
// Implementation of the Class Rec_cont
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#if !defined(EA_3F04F163_6777_43b1_978F_C8E98C6EA8D6__INCLUDED_)
#define EA_3F04F163_6777_43b1_978F_C8E98C6EA8D6__INCLUDED_
#include "Rec_cord.h"
#include "col.h"
class Rec_cont : public Rec_cord
{
public:
Rec_cont();
virtual ~Rec_cont();
void color(HDC WIN, HWND window);
int get_cord_X1(Rec_cont X1);
int get_cord_X2(Rec_cont X1);
int get_cord_Y1(Rec_cont X1);
int get_cord_Y2(Rec_cont X1);
void set_cord_X1(int x1);
void set_cord_X2(int x2);
void set_cord_Y1(int y1);
void set_cord_Y2(int y2);
void set_pencolor(int rp, int gp, int bp);
protected:
col pen;
};
#endif // !defined(EA_3F04F163_6777_43b1_978F_C8E98C6EA8D6__INCLUDED_)
///////////////////////////////////////////////////////////
// Rec_cont.cpp
// Implementation of the Class Rec_cont
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#include "Rec_cont.h"
Rec_cont::Rec_cont(){
}
Rec_cont::~Rec_cont(){
}
void Rec_cont::color(HDC WIN, HWND window){
}
int Rec_cont::get_cord_X1(Rec_cont X1){
return 0;
}
int Rec_cont::get_cord_X2(Rec_cont X1){
return 0;
}
int Rec_cont::get_cord_Y1(Rec_cont X1){
return 0;
}
int Rec_cont::get_cord_Y2(Rec_cont X1){
return 0;
}
void Rec_cont::set_cord_X1(int x1){
}
void Rec_cont::set_cord_X2(int x2){
}
void Rec_cont::set_cord_Y1(int y1){
}
void Rec_cont::set_cord_Y2(int y2){
}
void Rec_cont::set_pencolor(int rp, int gp, int bp){
}
Класс «Rec_ful». (закрашенная)
///////////////////////////////////////////////////////////
// Rec_ful.h
// Implementation of the Class Rec_ful
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#if !defined(EA_E4C398CA_893A_496a_8D66_EB7F662EE863__INCLUDED_)
#define EA_E4C398CA_893A_496a_8D66_EB7F662EE863__INCLUDED_
#include "Rec_cont.h"
#include "Rec_brush.h"
class Rec_ful : public Rec_cont, public Rec_brush
{
public:
Rec_ful();
virtual ~Rec_ful();
void Clean(RECT rt, HDC WIN, HWND window);
void color(HDC WIN, HWND window);
};
#endif // !defined(EA_E4C398CA_893A_496a_8D66_EB7F662EE863__INCLUDED_)
///////////////////////////////////////////////////////////
// Rec_ful.cpp
// Implementation of the Class Rec_ful
// Created on: 23-дек-2010 17:40:02
// Original author: Iver
///////////////////////////////////////////////////////////
#include "Rec_ful.h"
Rec_ful::Rec_ful(){
}
Rec_ful::~Rec_ful(){
}
void Rec_ful::Clean(RECT rt, HDC WIN, HWND window){
}
void Rec_ful::color(HDC WIN, HWND window){
}
Класс «Rec_brush». (кисть)
///////////////////////////////////////////////////////////
// Rec_brush.h
// Implementation of the Class Rec_brush
// Created on: 23-дек-2010 17:40:00
// Original author: Iver
///////////////////////////////////////////////////////////
#if !defined(EA_BA85C97F_19A6_45de_8BF6_E189CCC3F69F__INCLUDED_)
#define EA_BA85C97F_19A6_45de_8BF6_E189CCC3F69F__INCLUDED_
#include "col.h"
class Rec_brush
{
public:
Rec_brush();
virtual ~Rec_brush();
void set_brushcolor(int rb, int gb, int bb);
protected:
col brush;
};
#endif // !defined(EA_BA85C97F_19A6_45de_8BF6_E189CCC3F69F__INCLUDED_)
///////////////////////////////////////////////////////////
// Rec_brush.cpp
// Implementation of the Class Rec_brush
// Created on: 23-дек-2010 17:40:00
// Original author: Iver
///////////////////////////////////////////////////////////
#include "Rec_brush.h"
Rec_brush::Rec_brush(){
}
Rec_brush::~Rec_brush(){
}
void Rec_brush::set_brushcolor(int rb, int gb, int bb){
}
Класс «Rec_combo». (вложенные)
///////////////////////////////////////////////////////////
// Rec_combo.h
// Implementation of the Class Rec_combo
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#if !defined(EA_645F9EE8_2568_47f6_9C9B_23D693C8D937__INCLUDED_)
#define EA_645F9EE8_2568_47f6_9C9B_23D693C8D937__INCLUDED_
#include "Rec_ful.h"
#include "Rec_cont.h"
class Rec_combo : public Rec_ful
{
public:
Rec_combo();
virtual ~Rec_combo();
void color_input(HDC WIN, HWND window);
void input_c(RECT rt, FILE* file);
int test_input();
protected:
Rec_cont *A;
};
#endif // !defined(EA_645F9EE8_2568_47f6_9C9B_23D693C8D937__INCLUDED_)
///////////////////////////////////////////////////////////
// Rec_combo.cpp
// Implementation of the Class Rec_combo
// Created on: 23-дек-2010 17:40:01
// Original author: Iver
///////////////////////////////////////////////////////////
#include "Rec_combo.h"
Rec_combo::Rec_combo(){
}
Rec_combo::~Rec_combo(){
}
void Rec_combo::color_input(HDC WIN, HWND window){
}
void Rec_combo::input_c(RECT rt, FILE* file){
}
int Rec_combo::test_input(){
return 0;
}
Класс «stack.h». (шаблон-контейнер)
///////////////////////////////////////////////////////////
// stack.h
// Implementation of the Class stack
// Created on: 23-дек-2010 15:35:46
// Original author: Iver
///////////////////////////////////////////////////////////
#if !defined(EA_35DBD6D0_E78E_4d32_BACB_913E6A312502__INCLUDED_)
#define EA_35DBD6D0_E78E_4d32_BACB_913E6A312502__INCLUDED_
template<class Type>
class stack
{
public:
struct list
{
public:
list* next;
Type rec;
};
stack(){
}
~stack(){
}
void Add(Type W, HDC WIN, HWND window, RECT rt){
}
void Del(HDC WIN, HWND window, RECT rt){
}
int empty(){
return 0;
}
void FIND(HDC WIN, HWND window, RECT rt, int X1, int X2, int Y1, int Y2){
}
void PRINT(FILE* file){
}
private:
list* head;
};
#endif // !defined(EA_35DBD6D0_E78E_4d32_BACB_913E6A312502__INCLUDED_)
Закрытые атрибуты классов:
int x1, y1, x2, y2; - координаты прямоугольника
int test(int x1, int y1, int x2, int y2, RECT rt); - тест на вложенность в экран
col pen; - цвет пера
col brush; - цвет кисти
Rec_cont A; - контур прямоугольника
Открытая часть классов:
set-функции:
void set_cord_X1(int x1); - координата Х1
void set_cord_X2(int x2); - координата Х2
void set_cord_Y1(int y1); - координата У1
void set_cord_Y2(int y2); - координата У2
void set_move_un(RECT rt, HDC WIN, HWND window); - движение прямоугольника
void set_pencolor(int rp, int gp, int bp); - цвет пера
void set_brushcolor(int rb, int gb, int bb); - цвет кисти
get-функции:
int get_cord_X1(Rec_cont X1); - координата Х1
int get_cord_X2(Rec_cont X1); - координата Х2
int get_cord_Y1(Rec_cont X1); - координата У1
int get_cord_Y2(Rec_cont X1); - координата У2
int test_input(); - проверка вложености фигур
void input_c(RECT rt, FILE*file); - ввод для контура
void color_input(HDC WIN, HWND window); - Рисование вложеных фигур
void color(HDC WIN, HWND window); - рисование прямоугольников
void Clean(RECT rt, HDC WIN, HWND window); - очистка экрана
void input(RECT rt, FILE*file); - ввод координат
Диаграмма классов геометрических фигур
Фрагмент файла Rec_cord.h
class Rec_cord
{
public:
Rec_cord();
virtual ~Rec_cord();
virtual void color(HDC WIN, HWND window) =0;
void input(RECT rt, FILE* file);
protected:
int x1;
int x2;
int y1;
int y2;
int test(int x1, int y1, int x2, int y2, RECT rt);
};
Фрагмент файла Rec_cont.h
class Rec_cont : public Rec_cord
{
public:
Rec_cont();
virtual ~Rec_cont();
void color(HDC WIN, HWND window);
int get_cord_X1(Rec_cont X1);
int get_cord_X2(Rec_cont X1);
int get_cord_Y1(Rec_cont X1);
int get_cord_Y2(Rec_cont X1);
void set_cord_X1(int x1);
void set_cord_X2(int x2);
void set_cord_Y1(int y1);
void set_cord_Y2(int y2);
void set_pencolor(int rp, int gp, int bp);
protected:
col pen;
};
Фрагмент файла Rec_ful.h
class Rec_ful : public Rec_cont, public Rec_brush
{
public:
Rec_ful();
virtual ~Rec_ful();
void Clean(RECT rt, HDC WIN, HWND window);
void color(HDC WIN, HWND window);
};
Фрагмент файла Rec_brush.h
class Rec_brush
{
public:
Rec_brush();
virtual ~Rec_brush();
void set_brushcolor(int rb, int gb, int bb);
protected:
col brush;
};
Фрагмент файла Rec_combo.h
class Rec_combo : public Rec_ful
{
public:
Rec_combo();
virtual ~Rec_combo();
void color_input(HDC WIN, HWND window);
void input_c(RECT rt, FILE* file);
int test_input();
protected:
Rec_cont *A;
};
Вывод: сгенерированный код не отличается от желаемого, основные функции совпадают. Следовательно, диаграмма простроена правильно.