private void fileInput_Click(object sender, EventArgs e) { try { var file = new OpenFileDialog(); file.Filter = "Text file|*.txt"; if (file.ShowDialog() == DialogResult.OK) { StreamReader sr = new StreamReader(file.FileName); string dataInput = sr.ReadToEnd(); sr.Close(); Input = MatrixInitialazer.Input(dataInput, Input, sim.Checked); epsBox.Enabled = true; iterBox.Enabled = true; var tmp = new FormatFactory(); var value = tmp.formats[formatBox.SelectedItem.ToString()]; fileInputedSLAE.matrix = FormatFactory.Init(value, Input, Input.symmetry); var a = FormatFactory.PatternRequired(formatBox.SelectedItem.ToString()); fileInputBtn.Text = file.FileName; fileInputNotNull = true; CheckedChanged(inputCheckedImg, inputChecked = true); } } catch (Exception) { MessageBox.Show("Неправильный формат входного файла.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static IMatrix Init(Formats type, MatrixInitialazer initialazer, bool symmetry) { try { if (symmetry) { switch (type) { case Formats.Coordinational: return(new SymmetricCoordinationalMatrix(initialazer.row, initialazer.column, initialazer.gg, initialazer.size)); case Formats.Dense: return(new SymmetricDenseMatrix(initialazer.denseL)); case Formats.Skyline: return(new SymmetricSkylineMatrix(initialazer.di, initialazer.ia, initialazer.gg)); case Formats.SparseRow: return(new SymmetricSparseRowMatrix(initialazer.gg, initialazer.ja, initialazer.ia)); case Formats.SparseRowColumn: return(new SymmetricSparseRowColumnMatrix(initialazer.di, initialazer.gg, initialazer.ia, initialazer.ja)); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } } switch (type) { case Formats.Coordinational: return(new CoordinationalMatrix(initialazer.row, initialazer.column, initialazer.gg, initialazer.size)); case Formats.Dense: return(new DenseMatrix(initialazer.dense)); case Formats.Skyline: return(new SkylineMatrix(initialazer.di, initialazer.ia, initialazer.al, initialazer.au)); case Formats.SparseRow: return(new SparseRowMatrix(initialazer.gg, initialazer.ja, initialazer.ia)); case Formats.SparseRowColumn: return(new SparseRowColumnMatrix(initialazer.di, initialazer.al, initialazer.au, initialazer.ia, initialazer.ja)); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(null); }
private void fileInput_Click(object sender, EventArgs e) { try { OpenFileDialog file = new OpenFileDialog(); file.Filter = "Text file|*.txt"; if (file.ShowDialog() == DialogResult.OK) { StreamReader sr = new StreamReader(file.FileName); string dataInput = sr.ReadToEnd(); sr.Close(); Input = MatrixInitialazer.Input(dataInput, Input, sim.Checked); epsBox.Enabled = true; timeBox.Enabled = true; matrix = FormatFactory.Init((Formats)formatBox.SelectedIndex, Input, Input.symmetry); } } catch (Exception) { MessageBox.Show("Неправильный формат входного файла.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public static IMatrix Init(Formats type, MatrixInitialazer initialazer, bool symmetry) { try { if (symmetry) { switch (type) { case Formats.Coordinational: { // SymmetricCoordinationalMatrix matrix = new SymmetricCoordinationalMatrix(); } break; case Formats.Dense: return(new SymmetricDenseMatrix(initialazer.denseL)); case Formats.Skyline: return(new SymmetricSkylineMatrix(initialazer.di, initialazer.ig, initialazer.gg)); case Formats.SparseRow: return(new SymmetricSparseRowMatrix(initialazer.gg, initialazer.jg, initialazer.ig)); case Formats.SparseRowColumn: return(new SymmetricSparseRowColumnMatrix(initialazer.di, initialazer.gg, initialazer.ig, initialazer.ig)); default: break; } } else { switch (type) { case Formats.Coordinational: { var list = initialazer.column.Select((c, i) => (c, initialazer.row[i], initialazer.gg[i])).ToList(); return(new CoordinationalMatrix(list, initialazer.size)); } case Formats.Dense: return(new DenseMatrix(initialazer.dense)); case Formats.Skyline: return(new SkylineMatrix(initialazer.di, initialazer.ig, initialazer.gl, initialazer.gl)); case Formats.SparseRow: return(new SparseRowMatrix(initialazer.gg, initialazer.jg, initialazer.ig)); case Formats.SparseRowColumn: return(new SparseRowColumnMatrix(initialazer.di, initialazer.gl, initialazer.gu, initialazer.ig, initialazer.jg)); default: break; } } } catch (ArgumentNullException ex) { MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(null); }
public static MatrixInitialazer Input(string data, MatrixInitialazer matrix, bool symmetry) { matrix = JsonConvert.DeserializeObject <MatrixInitialazer>(data); matrix.symmetry = symmetry; return(matrix); }