Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для koshka1
4 / 4 / 0
Регистрация: 07.06.2011
Сообщений: 132

Как построить диаграмму класов по исходному коду

05.05.2012, 17:21. Показов 1625. Ответов 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
180
181
182
183
184
185
186
187
188
189
190
191
using System;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form // Клас першої форми програми.
    {
        public string[] temp = new string[10], temp2 = new string[10];
        public Form1() { InitializeComponent(); } // виконати ініціалізацію форми
        private void button1_Click(object sender, EventArgs e) // подія натиснення кнопки «Перейти до моделювання».
        {
            Form2 form = new Form2();
            // Загружаємо в пам'ять значення текстових полів.
            temp = new string[] { textBox1.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox2.Text };
            temp2 = new string[] { textBox10.Text, textBox9.Text, textBox8.Text, textBox7.Text, textBox6.Text, textBox11.Text };
 
            VNZ clas = new VNZ(temp, temp2);
            if (clas.error == false) { form.temp = temp; form.temp2 = temp2; form.Show(); this.Hide(); }
        }
    }
}
 
public partial class Form2 : Form
    {
        public Form2() {  InitializeComponent(); }
        public string[] temp = new string[10], temp2 = new string[10]; //масиви для передачі даних з першої форми
        public int count = 1;
        VNZ clas;
        public string[,] predmet = new string[5, 3]; // квадратний масив для предметів.
        public string[,] rasspisanie = new string[6, 6]; // масив розкладу
        private void Form2_Load(object sender, EventArgs e) // подія загрузки форми
        {
            clas = new VNZ(temp, temp2); // створюєм клас VNZ
            for (int i = 0; i <= 4; i++) comboBox6.Items.Add(clas.getprepodov()[i]); // заповнення списку викладачів
        }
        private void button1_Click(object sender, EventArgs e) // подія додавання 5 предметів
        {
            if (comboBox2.Text != "" && comboBox1.Text != "" && textBox1.Text != null)
            {
                comboBox5.Items.Add(textBox1.Text); // додаю в список новий предмет           
                if (count == 5) 
                {
                    groupBox1.Enabled = false; groupBox2.Enabled = true; // якщо введено 5 предметів – заблокується додав. предметів, розблокується додавання розкладу
                    clas.takenav(predmet);// отправляю масив в объект
                } 
                // загружаємо в пам'ять значення предметів
                predmet[count - 1, 0] = textBox1.Text; predmet[count - 1, 1] = comboBox2.Text; predmet[count - 1, 2] = comboBox1.Text;
                count++;
                textBox1.Text = null; comboBox1.SelectedIndex = -1; comboBox2.SelectedIndex = -1; // обнуляємо поля блоку навч. Плану
           }
            else MessageBox.Show("Введіть всі поля!!!");
        }
        private void button2_Click(object sender, EventArgs e) // подія додавання 
        {
            if (comboBox3.Text != null && comboBox4.Text != null && comboBox5.Text != null && comboBox6.Text != null)
            {
                if (rasspisanie[Convert.ToInt32(comboBox3.Text), Convert.ToInt32(comboBox4.Text)] != null)
                {
                    if (MessageBox.Show("Ця пара вже зайнята. Замінити?", "Зробіть ваш вибір", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        rasspisanie[Convert.ToInt32(comboBox3.Text), Convert.ToInt32(comboBox4.Text)] = comboBox5.Text + " [" + comboBox6.Text + "]";
                    }
                    else goto m;
                }
                rasspisanie[Convert.ToInt32(comboBox3.Text), Convert.ToInt32(comboBox4.Text)] = comboBox5.Text + " [" + comboBox6.Text + "]";
            m:comboBox3.SelectedIndex = -1; comboBox4.SelectedIndex = -1; comboBox5.SelectedIndex = -1; comboBox6.SelectedIndex = -1;
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            Form3 form = new Form3();
            form.rasspisanie = rasspisanie;
            form.clas = clas;
            form.Show();
        }
    }
public partial class Form3 : Form
    {
        public VNZ clas;
        public Form3() { InitializeComponent(); }
        public string[,] rasspisanie = new string[6, 6]; // масив розкладу
        private void asd(DataGridView abe, int asf)
        {
            for (int i = 0; i <= 4; i++)
            {
                try
                {
                    object a = clas.print_rozklad(asf, i);
                    abe.Rows.Add((1 + i).ToString() + ".", a.ToString());
                }
                catch
                {
                    abe.Rows.Add((1 + i).ToString() + ".", "");
                }
            }
        }
 
        private void Form3_Load(object sender, EventArgs e)
        {
            // виводиться список предметів
            for (int i = 0; i <= 4; i++)
            {
                object a = clas.print_predmet(i); string[] b = a.ToString().Split(';');
                dataGridView5.Rows.Add(b[0], b[1], b[2]);
            }
            clas.takeroz(rasspisanie);
            // виводжу розклад на понеділок
            asd(dataGridView1, 1);
            // виводжу розклад на вівторок
            asd(dataGridView2, 2);
            // виводжу розклад на середу
            asd(dataGridView3, 3);
            // виводжу розклад на четвер
            asd(dataGridView4, 4);
        }
    }
/* Оголошую клас VNZ */
public class VNZ 
{
    public bool error = false; // якщо в обробці виникає помилка, ця змінна присвоює значення true
    Rozklad rozklad; Kaf2 opus; Navplan clas; 
    public VNZ(string[] a, string[] b)  // публічна функція (конструктор) виклику внутр. класів.
    {
        if (a.Contains("") != true && b.Contains("") != true) // перевіряєм, чи є в масивах вільне місце
        {
            error = false;
            opus = new Kaf2(a, b); // створюєм екземпляр класу
        }
        else
        {
            error = true;
            MessageBox.Show("Заповніть всі поля!"); // виводимо alert(Виводитьмодальне вікно з повідомленням)
        }
    }
    public string[] getprepodov() // отримуємо для 2 форми список викладачів
    {
        return new string[] { "Вик. " + opus.info[1], "Лаб. " + opus.info[3], "Доц. " + opus.info[6], "Проф. " + opus.info[7], "Зав. " + opus.info[8] };
    }
    public void takenav(string[,] pred) // передаю через публичну функцію дані внутрішньому обєкту
    {
        clas = new Navplan(pred);
    }
    public void takeroz(string[,] roz) // передаю через публичну функцію дані внутрішньому обєкту
    {
        rozklad = new Rozklad(roz);
    }
 
    public object print_predmet(int a)
    {
        return clas.print(a);
    }
    public object print_rozklad(int a, int b)
    {
        return rozklad.print(a, b);
    }
 
    private class Kaf1
    {
        public string[] info = new string[100]; // строковий масив
        public Kaf1(string[] a) // конструктор класу Kaf1
        {
            for (int i = 0; i <= 4; i++) this.info[i] = a[i]; //Вводжу в класс Kaf1 фам. студента, назв. групи, прізвище викладача, секретаря, лаборанта
        }
    }
    private class Kaf2 : Kaf1 // клас Kaf який наслідує клас VNZ
    {
        public Kaf2(string[] a, string[] b) : base(a) // конструктор дочірнього  класу
        {
            for (int i = 0; i <= 5; i++) this.info[i + 5] = b[i]; //Вводжу в клас Kaf2 прізв. доцента, професора, зав. кафедри, старости, вводим випуск. кафедру и обслуг. кафедру.
        }
    }
 
    private class Navplan
    {
        public string[,] predmet = new string[5, 3];
        public Navplan(string[,] pred)
        {
            predmet = pred;
        }
        public object print(int a) { return predmet[a, 0] + ";" + predmet[a, 1] + ";" + predmet[a, 2] + ";"; }
    }
    private class Rozklad
    {
        public string[,] rasspisanie = new string[6, 6];
        public Rozklad(string[,] pred1)
        {
            rasspisanie = pred1;
        }
        public object print(int a, int b) { return rasspisanie[a, b]; }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2012, 17:21
Ответы с готовыми решениями:

Построить диаграмму классов по исходному коду
помогите пожалуста кто может построить диаграму классов по исходному коду, у меня в StarUML диаграма почему то строиться не хочет, а другие...

Как пройтись по чужому исходному коду ?
visual studio 2008 есть большой многофайловый проект и мне нужно изучить его исходный код как пройтись по его коду от начала до конца?...

Как добавлять заголовочные файлы к исходному коду?
Я в програме (array.h)написал класс, и теперь хочу использовать в новой программе, есть ли способ его скопировать автоматически?(или...

3
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
05.05.2012, 19:14
Правой кнопкой по нужному проекту в окошке Solution Explorer. Пункт View Class Diagram. В проект добавиться файл ClassDiagram1.cd и сразу откроется. Но эта диаграмма будет не сильно соответствовать требованиям UML.
0
 Аватар для koshka1
4 / 4 / 0
Регистрация: 07.06.2011
Сообщений: 132
07.05.2012, 20:37  [ТС]
это в Vision Studio?
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
07.05.2012, 23:35
koshka1, нет, это в Visual Studio.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2012, 23:35
Помогаю со студенческими работами здесь

Вопрос по исходному коду
доброго времени суток.. Тут писал от балды себе развлекательную интерелектуальную игрушку на консоли и столкнулся с проблемой, при выборе...

Составить программу VB по исходному коду
дан код , нужно по нему составить программу. сможете сделать, очень нужно Private Sub Command1_Click() Picture1.Cls ...

Разделение по строкам и исходному коду
Есть код, который отвечает за то чтобы в диапазоне не повторялось слово: Set Rng =...

Блок схема по исходному коду
Добрый вечер! Не могли бы вы составить блок схему по исходному коду? или посоветовать какую скачать для этого программу??? Заранее спасибо!...

Создать форму по исходному коду
Здраствуйте!Нужно создать форму приложения по готовому исходному коду .cpp , .h файлов. Помогите пожалуйста.Выручайте!Сам я в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru