Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
makaroshka
2 / 2 / 0
Регистрация: 17.09.2013
Сообщений: 139
1

Работа с массивами и конструктором

19.09.2016, 23:17. Просмотров 434. Ответов 3
Метки нет (Все метки)

Задание:
В программе должно быть не менее двух классов связанных отношением наследования.
Наличии конструктора обязательно
Если все точки плоскости,заданные своими координатами,попадают в круг радиусом Р и центром в начале координат, определить их среднюю абсциссу и ординату,иначе распечатать номера точек,не попавших в заданный круг.
Мой код:
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
 
    public partial class Form1 : Form
    {
        public int n;
        public int r, X_sr, Y_sr, k;
        public int[] x;
        public int[] y;
        public Form1()
        {
            InitializeComponent();
            dataGridView1.ColumnCount = 5;
            dataGridView1.RowCount = 2;
            if (dataGridView1.Rows[0].Cells[0].Value == null || textBox2.Text == "")
            {
                button1.Enabled = false;
                button2.Enabled = false;
 
            }
            else {
                button1.Enabled = true;
                button2.Enabled = true;
            }
   
 
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                dataGridView1.Columns[i].HeaderCell.Value
                    = i.ToString();
                dataGridView1.Columns[i].Width = 50;
            }
            dataGridView1.Rows[0].HeaderCell.Value
        = "X";
            dataGridView1.Rows[1].HeaderCell.Value
                = "Y";
        }
       
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        public void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
        private void dataGridView1_CellClick(object sender,
    DataGridViewCellEventArgs e)
        {
            if (dataGridView1.Rows[0].Cells[1].Value == null || textBox2.Text == "")
            {
                button1.Enabled = false;
                button2.Enabled = false;
 
            }
            else {
                button1.Enabled = true;
                button2.Enabled = true;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            label3.Text = "";
            for (int i = 0; i < n; i++)
               
                if ((Math.Pow(Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value), 2) + Math.Pow(Convert.ToInt32(dataGridView1.Rows[1].Cells[i].Value), 2)) <= (r * r))
                {
                    k++;
                }
            if (k < n)
            {
                for (int i = 0; i < n; i++)
                    if ((Math.Pow(Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value), 2) + Math.Pow(Convert.ToInt32(dataGridView1.Rows[1].Cells[i].Value), 2)) > (r * r))
                           label3.Text += string.Format("{0,-12}{1,-12:f4}{2,-12:f4}\n", i, Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value), Convert.ToInt32(dataGridView1.Rows[1].Cells[i].Value));
 
 
            }
            else
            {
                for (int i = 0; i < n; i++)
                {
                    X_sr = X_sr + Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value);
                    Y_sr = Y_sr + Convert.ToInt32(dataGridView1.Rows[1].Cells[i].Value);
                }
 
                X_sr = X_sr / n;
                Y_sr = Y_sr / n;
 
                label3.Text += string.Format("{0,-12}{1,-12:f4}\n", X_sr, Y_sr);
 
            }
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                n = Convert.ToInt32(textBox1.Text);
            }
            dataGridView1.ColumnCount = n;
                      
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                dataGridView1.Columns[i].HeaderCell.Value
                    = i.ToString();
                dataGridView1.Columns[i].Width = 50;
            }
            dataGridView1.Rows[0].HeaderCell.Value
        = "X";
            dataGridView1.Rows[1].HeaderCell.Value
                = "Y";
 
        }
        public void AddWindow()
        {
            Form2 f = new Form2(this);
            f.ShowDialog();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            AddWindow();
        }
 
        private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView1.Rows[0].Cells[1].Value == null || textBox2.Text == "")
            {
                button1.Enabled = false;
                button2.Enabled = false;
 
            }
            else {
                button1.Enabled = true;
                button2.Enabled = true;
            }
        }
 
 
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            if (textBox2.Text != "") { 
            r = Convert.ToInt32(textBox2.Text); }
            if (dataGridView1.Rows[0].Cells[0].Value == null || textBox2.Text == "")
            {
                button1.Enabled = false;
                button2.Enabled = false;
 
            }
            else {
                button1.Enabled = true;
                button2.Enabled = true;
            }
        }
 
        private void label3_Click(object sender, EventArgs e)
        {
 
        }
        
    }
}
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
 
    public partial class Form2 : Form
    {
        int r1,n2 = 0;
        double[,] matrs;
 
        public Form2(Form1 f1)
        {
            matrs = new double[f1.dataGridView1.RowCount, f1.dataGridView1.ColumnCount];
            InitializeComponent();
        if (f1.textBox2.Text != null)
                r1 = Convert.ToInt32(f1.textBox2.Text);
            
            n2 = f1.n;
          
                for (int i = 0; i < f1.dataGridView1.RowCount; i++)
                {
                    for (int j = 0; j < f1.dataGridView1.ColumnCount; j++)
                    {
                   
                        matrs[i, j] = Convert.ToDouble(f1.dataGridView1.Rows[i].Cells[j].Value);
                    }
                }
  
            
        
 
    }
 
        private void Form2_Load(object sender, EventArgs e)
        {
 
            //TrackBar для масштаба
            trackBar3.Minimum = 10;
            trackBar3.Maximum = 50;
   
      
  
        }
 
        private void btn_BUILD_Click(object sender, EventArgs e)
        {
            pnl_GRAPH.Refresh();
            //Передаем все необходимые инпуты в функцию CreateGraph которая посроит на панельки график
            CreateGraph(trackBar3.Value, r1);
        }
 
        public void CreateGraph(int grids, int radius1)
        {
    
            Graphics graph = pnl_GRAPH.CreateGraphics();
            //Это карандашы от тонкого до толстого для сетки и фигур
            Pen bold_pen = new Pen(Brushes.Black, 3);
            Pen middle_pen = new Pen(Brushes.Black, 2);
            Pen think_pen = new Pen(Brushes.Black, 1);
 
            //Масштаб
            int scale = pnl_GRAPH.Height / grids;
 
            //начало координат
            Point X0Y0 = new Point(pnl_GRAPH.Width / 2, pnl_GRAPH.Height / 2);
 
            //Строим ось Х
            graph.DrawLine(middle_pen, new Point(0, pnl_GRAPH.Height / 2), new Point(pnl_GRAPH.Width, pnl_GRAPH.Height / 2));
            //Строим ось Y
            graph.DrawLine(middle_pen, new Point(pnl_GRAPH.Width / 2, 0), new Point(pnl_GRAPH.Width / 2, pnl_GRAPH.Height));
           
 
            //Строим координатную сетку вдоль Х
            for (int i = 0; i <= pnl_GRAPH.Height; i++)
            {
                graph.DrawLine(think_pen, new Point(0, i * scale), new Point(pnl_GRAPH.Width, i * scale));
            }
            //Строим координатную сетку вдоль Y
            for (int i = 0; i <= pnl_GRAPH.Width; i++)
            {
                graph.DrawLine(think_pen, new Point(i * scale, 0), new Point(i * scale, pnl_GRAPH.Height));
            }
            //Масштабируем радиусы
            radius1 = radius1 * scale;
            // radius2 = radius2 * scale;
            //Рисуем наши окружности
            graph.DrawEllipse(bold_pen, new Rectangle(new Point(X0Y0.X - radius1, X0Y0.Y - radius1), new Size(2 * radius1, 2 * radius1)));
            //Строим точки
            for (int i = 0; i < n2; i++)
 
            { 
                graph.FillRectangle(Brushes.Red, X0Y0.X + Convert.ToInt32(matrs[0,i])* scale, X0Y0.Y - Convert.ToInt32(matrs[1, i]) * scale, 3, 3);
              
            }
           
            
        }
 
        private void groupBox2_Enter(object sender, EventArgs e)
        {
 
        }
 
        private void label3_Click(object sender, EventArgs e)
        {
 
        }
 
        private void trackBar3_Scroll(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(trackBar3, trackBar3.Value.ToString());
            label1.Text = string.Format("Маштаб: {0}", trackBar3.Value);
            label1.Update();
        }
    }
}
Куда тут пихать еще классы и конструктор?
0
Миниатюры
Работа с массивами и конструктором  
Вложения
Тип файла: zip WindowsFormsApplication2.zip (75.3 Кб, 3 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2016, 23:17
Ответы с готовыми решениями:

Работа с массивами
В колл-центре ведётся журнал исходящих звонков. Каждому звонку соответствует...

Работа с массивами
Допустим есть два массива. float arr и float Pts. Первый может быть любых...

Работа с массивами
появилась такая проблема... не знаю как написать чтобы выполнялись этих 2...

Массивы. Работа с массивами
Доброго времени суток форумчане. Назрел вопрос. У меня берутся данные из...

Работа с массивами используя форму
замечание. Задачи из данного пункта решить двумя способами, используя...

3
Sanya_sa
Модератор
727 / 707 / 306
Регистрация: 03.02.2015
Сообщений: 4,503
Записей в блоге: 8
Завершенные тесты: 3
20.09.2016, 09:14 2
Во вторую форму public Form2(Form1 f1) передавайте только необходимые данные для построения.
0
makaroshka
2 / 2 / 0
Регистрация: 17.09.2013
Сообщений: 139
20.09.2016, 11:06  [ТС] 3
Я вот это не знаю куда запихнуть: В программе должно быть не менее двух классов связанных отношением наследования.
Наличии конструктора обязательно
0
Igr_ok
389 / 366 / 179
Регистрация: 04.08.2015
Сообщений: 1,002
20.09.2016, 11:42 4
Цитата Сообщение от makaroshka Посмотреть сообщение
В программе должно быть не менее двух классов связанных отношением наследования.
Точка. Имеет координаты x,y.
Круг. Имеет координаты x,y и радиус R. Разве наследование не очевидно?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2016, 11:42

Работа с массивами виндовс приложение
Даны массивы Q и W состоящие из n элементов. Постройте массив G, каждый элемент...

Работа с одномерными массивами и матрицами
Написать приложение, реализующее работу с массивами: а) Определить количество...

Работа с массивами в Windows Forms
Задача следующая. Создать приложение которое предлагает пользователю задать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru