Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 6
Регистрация: 04.12.2011
Сообщений: 179
1

Разработка классов для графических объектов на основе композиционного взаимодействия

25.11.2012, 16:55. Показов 1190. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите, пожалуйста исправить код.
вот задание такое:Разработка классов для графических объектов на основе композиционного взаимодействия
Постановка задачи.
Требуется разработать небольшую библиотеку классов для графических объектов, взаимодействующих на основе композиции. Исходные данные – созданные в заданиях 1 и 2 классы для объектов Окружность и Прямоугольник. Библиотека должна включать следующий минимальный набор классов:
 класс точек
 класс окружностей, использующий класс точек
 класс прямоугольников, также использующий класс точек
 класс простой детали, состоящей из окружности внутри прямоугольника



компилятор ошибок не находит, но рисунок не отображается.

мой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Bitmap bitmap;
        public Form1()
        {
            InitializeComponent();
            bitmap = new Bitmap(this.Width, this.Height);
        }
        int _a, _x, _y;
 
        
        //класс точек, вводим х и у
        class Points
        {
            int x, y;
            public Points(int X, int Y) { x = X; y = Y; }
            //методы вывода значения х, у
            public int pointX() { return x; }
            public int pointY() { return y; }
        }
        //класс прямоугольников
        class Rectangles
        {
            private int a1, a2;
            Points a; //координаты верхней левой точки 
            //координаты точки, высота, ширина
            public Rectangles(Points _a, int _a1, int _a2)
            { a1 = _a1; a2 = _a2; a = _a; }
            //рисует прямоугольник
            public void ShowRect(Graphics g, Points _a, int b1, int b2)
            {
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                g.DrawRectangle(new Pen(Brushes.Red, 3), a.pointX(), a.pointY(), b1, b2);
            }
        }
        //класс окружности
        class Circles
        {
            int R;
            Points P;
            //вывод значения радиуса   //как к нему обращаться???
             public Circles(Points _P, int _R)
            { P = _P; R = _R; }
            //окружность рисует
            public void ShowCircle(Graphics g, Points _P, int _R)
            {
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                g.DrawRectangle(new Pen(Brushes.Red, 3), _P.pointX() + _R, _P.pointY() + _R, 2 * _R, 2 * _R);
            }
        }
        //основная фигура
        class Shape
        {
            Circles circ;
            Rectangles Rect;
            public Shape(Circles circ, Rectangles Rect)
            {
                this.circ = circ; this.Rect = Rect;
            }
 
            public void ShowShape(Rectangles _Rect, Circles circ, Graphics g, Points _P, int _a)
            {
                Rect.ShowRect(g, _P, _a, _a);
                circ.ShowCircle(g, _P, _a);
            }
 
        }private void Detal_Click_1(object sender, EventArgs e)
        {
            bitmap = new Bitmap(this.Width, this.Height);
            Graphics g = Graphics.FromImage(bitmap);
            int x0, y0, a;
            Random rnd = new Random();
            a = rnd.Next(0, 50); ; _a = a;
            x0 = rnd.Next(0, 200); _x = x0;
            y0 = rnd.Next(0, 200); _y = y0;
            Points A = new Points(x0, y0);
            Circles circ = new Circles(A, a);
            Rectangles Rect = new Rectangles(A, a, a);
            Shape t = new Shape(circ, Rect);
            t.ShowShape(Rect, circ, g, A, a);
        }
        // переместить фигуру
        private void ShowDetal_Click(object sender, EventArgs e)
        {
            int x0, y0, a, dx, dy;
            Random rnd = new Random();
            dx = rnd.Next(1, 20); dy = rnd.Next(1, 20);
            x0 = _x + dx; y0 = _y + dy;
            a = _a;
            Points A = new Points(x0, y0);
            Circles circ = new Circles(A, a);
            Rectangles Rect = new Rectangles(A, a, a);
            Shape t = new Shape(circ, Rect);
            Graphics g = Graphics.FromImage(bitmap);
            t.ShowShape(Rect, circ, g, A, a);
        }
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2012, 16:55
Ответы с готовыми решениями:

Разработка с использованием простейших классов и объектов - C++
Разработать функцию определения А3 для заданного элемента а и подпрограмму, которая использует эту...

Разработка с использованием простейших классов и объектов
.Розробиты метод-член класса для определения минимального и максимального элементов одномерного...

Библиотека для рисования графических объектов в С++
Подскажите пожалуйста библиотеку, аналог graphics.h для С++, просто я пишу в Visual Studio 2010 и...

Разработка внешней компоненты для взаимодействия с базой данных MySQL
Добрый день. Задача: Разработка внешней компоненты для взаимодействия с базой данных MySQL....

0
25.11.2012, 16:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2012, 16:55
Помогаю со студенческими работами здесь

Создать иерархию классов для моделирования взаимодействия “Магазин-склад- Заказчик”
Для проверки функционирования созданных классов написать программу, использующую эти классы. В...

Как применить метод Dispose() для графических объектов?
Здравствуйте, подскажите как использовать метод Dispose(). Мне нужно удалить графические объекты с...

List для объектов двух классов
Есть родительский класс Cars и унаследованный PriceCars. Есть класс, в котором создаётся коллекция...

Разработка дополнительных методов для объектов
Помогите создать функцию, которая будет заменять несколько последних элементов массива, после чего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru