public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1 (b)"; form.SetDefaultVals(new System.Drawing.Size(800, 700)); var tmpbutt = BeautyfyForms.AddButton("Очистить дерево", new Point(0, 10), (o, k) => { _tree = new BranchingTree(); treeViewer.Clear(); _addedWords.Items.Clear(); }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(200, 10), (o, k) => { MessageBox.Show("Задача № 1b. Параграф 6.3, Реализация структуры \"Лес\" "); })); tmpbutt = BeautyfyForms.AddButton("Добавить значение", new Point(0, 40), (o, k) => { if (string.IsNullOrEmpty(_addInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _addInput.Text; if (_tree.AddWord(text)) { if (!_addedWords.Items.Contains(text)) { _addedWords.Items.Add(text); } } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Удалить значение", new Point(0, 70), (o, k) => { if (string.IsNullOrEmpty(_deleteInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _deleteInput.Text; _tree.DeleteWord(text); _addedWords.Items.Remove(text); treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Проверить значение", new Point(0, 100), (o, k) => { if (string.IsNullOrEmpty(_checkInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _checkInput.Text; if (_tree.WordExists(text)) { MessageBox.Show("Существует"); } else { MessageBox.Show("Не существует"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Отобразить деревце", new Point(0, 140), (o, k) => { treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт ", new Point(0, 180), (o, k) => { var keys = new List <string>(); Helper.LoadFile("Список слов", "wordlst", keys); if (keys.Count > 0) { _tree = new BranchingTree(); treeViewer.Clear(); _addedWords.Items.Clear(); foreach (var key in keys) { if (_tree.AddWord(key)) { if (!_addedWords.Items.Contains(key)) { _addedWords.Items.Add(key); } } } } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Экспорт ", new Point(80, 180), (o, k) => { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = string.Format("{0} (*.{1})|*.{1}", "Луч", "branchview"); if (saveFile.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); Task.Run(() => { System.IO.File.WriteAllText(saveFile.FileName, _tree.getTreeView(_addXToEnd.Checked, false)); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сохранено!"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт .index ", new Point(160, 180), async(o, k) => { OpenFileDialog openDic = new OpenFileDialog(); openDic.Multiselect = false; openDic.Filter = string.Format("{0} (*.{1})|*.{1}", "Index файл", "index"); if (openDic.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); var openedFile = System.IO.Path.ChangeExtension(openDic.FileName, null); var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; _timerProgress.Start(); var state = await Task.Run(() => LoadIndexFile(indexFile, baseFile)); if (state != false) { MessageBox.Show("Готово! Дерево загружено."); } else { MessageBox.Show("Ошибка загрузки дерева."); return; } _timerProgress.Stop(); _progress.Value = _progress.Maximum; _buttonsToHide.ForEach(x => x.Enabled = true); } }); //_buttonsToHide.Add(tmpbutt); //form.Controls.Add(tmpbutt); _progress = BeautyfyForms.AddProgressBar(new Point(300, 180), form.Size, 0, 10); form.Controls.Add(_progress); _timerProgress = BeautyfyForms.CreateTimer((sender, EventArgs) => { if (_progress.Value >= _progress.Maximum) { _progress.Value = 0; } else { _progress.Value = _progress.Value + 1; } }); _addInput = BeautyfyForms.CreateTextBox(new Point(150, 43), false); form.Controls.Add(_addInput); _deleteInput = BeautyfyForms.CreateTextBox(new Point(150, 73), false); form.Controls.Add(_deleteInput); _checkInput = BeautyfyForms.CreateTextBox(new Point(150, 103), false); form.Controls.Add(_checkInput); treeViewer = BeautyfyForms.CreateMLTextBox(new Point(5, 250 + 5), 780, 400); form.Controls.Add(treeViewer); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(150, 145), "Добавлять Х в качестве null-ветвей", true, 190)); _addXToEnd = BeautyfyForms.CreateCheckBox(new Point(340, 140), false); form.Controls.Add(_addXToEnd); _addedWords = BeautyfyForms.AddListBox(new Point(500, 20), new Size(200, 250)); _addedWords.MouseDoubleClick += (x, y) => { if (_addedWords.SelectedItem != null) { MessageBox.Show(_addedWords.SelectedItem.ToString()); } }; form.Controls.Add(_addedWords); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1 и 2"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton("Инициализация", new Point(0, 10), (o, k) => { _inputG.Text = "64"; //G _inputA.Text = "122"; //H _inputM.Text = "607"; //P if (!_autoFindN.Checked) { _inputN.Text = "101";//N } Log("Инициализовали параметры стандартными значениями"); })); form.Controls.Add(BeautyfyForms.AddButton("Очистить лог", new Point(0, 43), (o, k) => { logLstBox.Items.Clear(); })); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(150, 10), (o, k) => { MessageBox.Show("Задача № 1 и 2. ρ - метод Полларда (обычный и параллельный) \r\n Найти такой х, что g^x = a % m "); })); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(310, 10), "g", true, 10)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(410, 10), "a", true, 25)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(520, 10), "m", true, 30)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(640, 10), "n", true, 30)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(705, 10), "Автоподбор n", true, 100)); _inputG = BeautyfyForms.CreateTextBox(new Point(270, 33), false); _inputG.Text = "0"; form.Controls.Add(_inputG); _inputA = BeautyfyForms.CreateTextBox(new Point(380, 33), false); _inputA.Text = "0"; form.Controls.Add(_inputA); _inputM = BeautyfyForms.CreateTextBox(new Point(490, 33), false); _inputM.Text = "0"; form.Controls.Add(_inputM); _inputN = BeautyfyForms.CreateTextBox(new Point(600, 33), false); _inputN.Text = "0"; form.Controls.Add(_inputN); _autoFindN = BeautyfyForms.CreateCheckBox(new Point(740, 33), false); _autoFindN.CheckedChanged += (o, k) => { if (_autoFindN.Checked) { _inputN.ReadOnly = true; _inputN.Text = "-1"; } else { _inputN.ReadOnly = false; _inputN.Text = "0"; } }; form.Controls.Add(_autoFindN); logLstBox = BeautyfyForms.AddListBox(new Point(0, 150 + 5), form.Size); logLstBox.MouseDoubleClick += (x, y) => { if (logLstBox.SelectedItem != null) { MessageBox.Show(logLstBox.SelectedItem.ToString()); } }; form.Controls.Add(logLstBox); form.Controls.Add(BeautyfyForms.AddButton(" Поехали (обычный) ", new Point(410, 63), (o, k) => { ParseAndRunPollard(false); })); form.Controls.Add(BeautyfyForms.AddButton(" Поехали (параллельный) ", new Point(410, 93), (o, k) => { ParseAndRunPollard(true); })); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Алгоритм Диксона - Курсовая работа"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(40, 10), "Число для факторизации (2 - 2147483647)", true, 250)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(70, 56), "Кол-во потоков (1-100)", true, 150)); _inputNumber = BeautyfyForms.CreateNumericUpDown(new Point(70, 33), 2, 2147483647, false); _inputNumber.Value = 2; form.Controls.Add(_inputNumber); _inputThreads = BeautyfyForms.CreateNumericUpDown(new Point(70, 79), 1, 100, false); _inputThreads.Value = 1; form.Controls.Add(_inputThreads); form.Controls.Add(BeautyfyForms.AddButton("Инициализация", new Point(300, 20), (o, k) => { _inputNumber.Value = 2; _inputThreads.Value = 1; Log("Инициализовали параметры стандартными значениями"); })); form.Controls.Add(BeautyfyForms.AddButton(" Факторизовать ", new Point(290, 55), (o, k) => { ParseAndRunDixon(); })); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(280, 90), "Считать кол-во операций", true, 150)); _calculateOperations = BeautyfyForms.CreateCheckBox(new Point(350, 105), false); form.Controls.Add(_calculateOperations); form.Controls.Add(BeautyfyForms.AddButton(" О программе ", new Point(545, 20), (o, k) => { string buffer = "Курсовая работа по предмету `Математические основы защиты информации и информационная безопасность`" + '\n'; buffer += "Алгоритм Диксона." + '\n'; buffer += "Данный алгоритм предназначен для факторизации натуральных чисел" + '\n'; buffer += "Выполнил: " + ConfigurationManager.AppSettings["Author"] + ", группа " + ConfigurationManager.AppSettings["Group"]; MessageBox.Show(buffer); })); form.Controls.Add(BeautyfyForms.AddButton("Очистить лог", new Point(550, 55), (o, k) => { logLstBox.Items.Clear(); })); form.Controls.Add(BeautyfyForms.AddButton("Кол-во операций -> буфер обмена", new Point(470, 90), (o, k) => { var researchData = new List <string>(); foreach (string item in logLstBox.Items) { if (item.Contains("Общее кол-во выполненых операций")) { researchData.Add(item); } } if (researchData.Count > 0) { System.Windows.Forms.Clipboard.SetText(string.Join("\r\n", researchData)); MessageBox.Show("Скопировано!"); } else { MessageBox.Show("Подходящие сообщения отсутствуют."); } })); logLstBox = BeautyfyForms.AddListBox(new Point(0, 150 + 5), form.Size); logLstBox.MouseDoubleClick += (x, y) => { if (logLstBox.SelectedItem != null) { MessageBox.Show(logLstBox.SelectedItem.ToString()); } }; form.Controls.Add(logLstBox); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 2"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); var tmpbutt = BeautyfyForms.AddButton("Очистить дерево", new Point(0, 10), (o, k) => { _tree = new BinaryTree <int?, SelfOrganizeIndexNode>(null, default(SelfOrganizeIndexNode)); treeViewer.Clear(); }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(200, 10), (o, k) => { MessageBox.Show("Задача № 2. Параграф 6.2.2, алгоритм D (удаление узла дерева)"); })); tmpbutt = BeautyfyForms.AddButton("Сгенерировать дерево (N элементное)", new Point(0, 40), (o, k) => { if (string.IsNullOrEmpty(_randomInput.Text)) { MessageBox.Show("Введите кол-во элементов для добавления"); return; } if (string.IsNullOrEmpty(_randomMin.Text)) { MessageBox.Show("Введите минимальное число"); return; } if (string.IsNullOrEmpty(_randomMax.Text)) { MessageBox.Show("Введите максимальное число"); return; } int min = 0, max = 0; try { min = int.Parse(_randomMin.Text); max = int.Parse(_randomMax.Text); } catch { MessageBox.Show("Пределы не валидны"); return; } var text = _randomInput.Text; int res; if (int.TryParse(text, out res)) { if (Math.Abs(min - max) < res) { MessageBox.Show("Cлющай, став нармалные пределы, окда?"); return; } _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); treeViewer.Clear(); Task.Run(() => { _tree = new BinaryTree <int?, SelfOrganizeIndexNode>(null, default(SelfOrganizeIndexNode)); GenerateRandomTree(res, min, max); }).ContinueWith(result => { treeViewer.BeginInvoke(new MethodInvoker(() => treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : "")); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сгенерили!"); } else { MessageBox.Show("Это было не число, да?.."); return; } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Удалить значение", new Point(0, 70), (o, k) => { if (string.IsNullOrEmpty(_singleInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _singleInput.Text; int res; if (int.TryParse(text, out res)) { //RemoveNode(res); RemoveNodeRewritten(res); if (_tree == null) { _tree = new BinaryTree <int?, SelfOrganizeIndexNode>(null, default(SelfOrganizeIndexNode)); } //funny but let`s skip this~ treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; } else { MessageBox.Show("Это было не число, да?.."); return; } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Отобразить деревце", new Point(0, 100), (o, k) => { treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт ", new Point(0, 140), (o, k) => { var keys = new List <int>(); Helper.LoadFile("Список ключей", "keylst", keys); foreach (var key in keys) { AddNewValue(key, default(SelfOrganizeIndexNode)); } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Экспорт ", new Point(80, 140), (o, k) => { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = string.Format("{0} (*.{1})|*.{1}", "Бинарное деревце", "btree"); if (saveFile.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); Task.Run(() => { System.IO.File.WriteAllText(saveFile.FileName, _tree.getTreeView(_addXToEnd.Checked, false)); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сохранено!"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт .index ", new Point(160, 140), async(o, k) => { OpenFileDialog openDic = new OpenFileDialog(); openDic.Multiselect = false; openDic.Filter = string.Format("{0} (*.{1})|*.{1}", "Index файл", "index"); if (openDic.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); var openedFile = System.IO.Path.ChangeExtension(openDic.FileName, null); var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; _timerProgress.Start(); var state = await Task.Run(() => LoadIndexFile(indexFile, baseFile)); if (state != false) { MessageBox.Show("Готово! Дерево загружено."); } else { MessageBox.Show("Ошибка загрузки дерева."); return; } _timerProgress.Stop(); _progress.Value = _progress.Maximum; _buttonsToHide.ForEach(x => x.Enabled = true); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); _progress = BeautyfyForms.AddProgressBar(new Point(300, 140), form.Size, 0, 10); form.Controls.Add(_progress); _timerProgress = BeautyfyForms.CreateTimer((sender, EventArgs) => { if (_progress.Value >= _progress.Maximum) { _progress.Value = 0; } else { _progress.Value = _progress.Value + 1; } }); _randomInput = BeautyfyForms.CreateTextBox(new Point(290, 43), false); _randomInput.Text = "20"; form.Controls.Add(_randomInput); _randomMin = BeautyfyForms.CreateTextBox(new Point(400, 43), false); _randomMin.Text = "1"; form.Controls.Add(_randomMin); _randomMax = BeautyfyForms.CreateTextBox(new Point(510, 43), false); _randomMax.Text = "100"; form.Controls.Add(_randomMax); _singleInput = BeautyfyForms.CreateTextBox(new Point(150, 73), false); form.Controls.Add(_singleInput); treeViewer = BeautyfyForms.CreateMLTextBox(new Point(5, 250 + 5), 780, 200); form.Controls.Add(treeViewer); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(150, 105), "Добавлять Х в качестве null-ветвей", true, 190)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(330, 20), "N", true, 10)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(430, 20), "Min", true, 25)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(540, 20), "Max", true, 30)); _addXToEnd = BeautyfyForms.CreateCheckBox(new Point(340, 100), false); form.Controls.Add(_addXToEnd); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 4"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton("Случайное уравнение", new Point(0, 10), (o, k) => { var tuple = SelectRandomEquation(); _inputH.Text = tuple.Item1.ToString(); _inputG.Text = tuple.Item2.ToString(); _inputP.Text = tuple.Item3.ToString(); Log("Инициализовали параметры заготовленными значениями"); })); form.Controls.Add(BeautyfyForms.AddButton("Очистить лог", new Point(0, 43), (o, k) => { logLstBox.Items.Clear(); })); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(170, 10), (o, k) => { MessageBox.Show("Задача № 4 Алгоритм Полига-Хеллмана \r\n Найти такой х, что H = G^x (mod P) "); })); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(310, 10), "H", true, 10)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(410, 10), "G", true, 25)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(520, 10), "P", true, 30)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(705, 100), "Очищать лог", true, 100)); _inputH = BeautyfyForms.CreateTextBox(new Point(270, 33), false); _inputH.Text = "0"; form.Controls.Add(_inputH); _inputG = BeautyfyForms.CreateTextBox(new Point(380, 33), false); _inputG.Text = "0"; form.Controls.Add(_inputG); _inputP = BeautyfyForms.CreateTextBox(new Point(490, 33), false); _inputP.Text = "0"; form.Controls.Add(_inputP); _keepLog = BeautyfyForms.CreateCheckBox(new Point(740, 115), false); form.Controls.Add(_keepLog); logLstBox = BeautyfyForms.AddListBox(new Point(0, 150 + 5), form.Size); logLstBox.MouseDoubleClick += (x, y) => { if (logLstBox.SelectedItem != null) { MessageBox.Show(logLstBox.SelectedItem.ToString()); } }; form.Controls.Add(logLstBox); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(380, 63), "H = G^x (mod P)", true, 100)); form.Controls.Add(BeautyfyForms.AddButton(" Поехали ", new Point(380, 93), (o, k) => { ParseAndRunPohligHellman(); })); }