Нужно доработать проект, по выводу графика - C#
Формулировка задачи:
Приветствую.
Мне нужно было написать приложение на C#, позволяющее строить график функции, находить интеграл и решать СЛАУ методом Гаусса по заданным табличным данным. Данные вводятся через текстовый файл. График должен выводится графически в форме.
Я выполнил это задание, конечно же не сам.. И вот настало время дополнительного задания.
1) Реализовать настройку графика - смену цвета и начертания, например, изменение толщины или отображение пунктиром.
2) Использовать для графика такое же чтение данных, как и для остальных классов. Соответственно, в CreateGraph нужно будет в цикле заполнить PointPairList. Избавиться от передачи в конструкторы SLAY и INTEGRAL параметров System.IO.StreamReader _sr, System.Windows.Forms.RichTextBox _mon, System.Windows.Forms.RichTextBox _res.
Прикладываю свой проект. Буду очень благодарен за любую помощь))
Решение задачи: «Нужно доработать проект, по выводу графика»
textual
Листинг программы
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; using System.IO; using ZedGraph; namespace task { public partial class Project : Form { private int mode; private ReadItem sample; bool CheckGraph; public double[,] matr = new double[50, 50]; public int i = 0, k, strock, td = 2; public string s, str, st; public Project() { InitializeComponent(); // Вывод подсказок при наведении на кнопки ToolTip t = new ToolTip(); t.SetToolTip(SLAYButton, "Перейти к решению системы линейных алгебраических уравнений"); t.SetToolTip(INTEGRALButton, "Перейти к решению интеграла"); t.SetToolTip(GRAPHButton, "Перейти к построению графика"); t.SetToolTip(OpenFileButton, "Открыть текстовый файл с данными"); t.SetToolTip(SaveFileButton, "Сохранить результат в новый текстовый документ"); t.SetToolTip(SolutionsButton, "Решить"); t.SetToolTip(BackButton, "Назад"); t.SetToolTip(InputBox, "Считанные из файла значения"); t.SetToolTip(ResultBox, "Результат"); } // При нажатие на кнопку СЛАУ private void SLAYButton_Click(object sender, EventArgs e) { OpenFileButton.Visible = true; SaveFileButton.Visible = true; SolutionsButton.Visible = true; SaveFileButton.Enabled = false; SolutionsButton.Enabled = false; ResultBox.Visible = true; GrafList.Visible = false; SLAYButton.Visible = false; INTEGRALButton.Visible = false; GRAPHButton.Visible = false; InputBox.Visible = true; BackButton.Visible = true; CheckGraph = false; mode = 1; } // При нажатие на кнопку Интеграл private void INTEGRALButton_Click(object sender, EventArgs e) { OpenFileButton.Visible = true; SaveFileButton.Visible = true; SolutionsButton.Visible = true; SaveFileButton.Enabled = false; SolutionsButton.Enabled = false; ResultBox.Visible = true; GrafList.Visible = false; SLAYButton.Visible = false; INTEGRALButton.Visible = false; GRAPHButton.Visible = false; InputBox.Visible = true; BackButton.Visible = true; CheckGraph = false; mode = 2; } // При нажатие на кнопку График private void GRAPHButton_Click(object sender, EventArgs e) { GraphPane myPane = GrafList.GraphPane; myPane.Title.Text = "ГРАФИК"; OpenFileButton.Visible = true; SolutionsButton.Visible = false; ResultBox.Visible = false; SaveFileButton.Visible = false; SLAYButton.Visible = false; INTEGRALButton.Visible = false; GRAPHButton.Visible = false; GrafList.Visible = true; InputBox.Visible = true; BackButton.Visible = true; CheckGraph = true; mode = 3; } // При нажатие на кнопку Открыть файл private void OpenFileButton_Click(object sender, EventArgs e) { OpenFileDialog OpenFileDialog = new OpenFileDialog(); OpenFileDialog.Filter = "txt files (*.txt)|*.txt"; ResultBox.Text = ""; if (OpenFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (CheckGraph) { for (k = 0; k < 2; k++) { matr[i, k] = 0; } i++; i = 0; s = ""; PointPairList list = new PointPairList(); StreamReader sr = new StreamReader(OpenFileDialog.FileName); //Считывем с файла st = ""; while ((s = sr.ReadLine()) != null) { string[] split = s.Split(' '); st = st + s + "\n"; InputBox.Text = ("X Y" + "\n" + st); for (k = 0; k < 2; k++) { matr[i, k] = Int32.Parse(split[k]); } i++; } strock = i - 1; sr.Close(); Graph gr = new Graph(); list.Clear(); for (i = 0; i <= strock; i++) { list.Add(matr[i, 0], matr[i, 1]); } gr.init(list); gr.CreateGraph(GrafList); } else { SolutionsButton.Enabled = true; using (StreamReader sr = new StreamReader(File.Open(OpenFileDialog.FileName, FileMode.Open))) { if (mode == 1) sample = new SLAY(sr, InputBox, ResultBox); if (mode == 2) sample = new INTEGRAL(sr, InputBox, ResultBox); if (mode == 3) sample = new Graph(); sample.Read(sr, InputBox); } } } } // При нажатие на кнопку Сохранить private void SaveFileButton_Click(object sender, EventArgs e) { SaveFileDialog SaveFileDialog = new SaveFileDialog(); SaveFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; if (SaveFileDialog.ShowDialog() == DialogResult.OK) { StreamWriter mystr = new StreamWriter(SaveFileDialog.FileName.ToString()); string myNewstr = ResultBox.Text; mystr.Write(myNewstr); mystr.Close(); } } // При нажатие на кнопку Равенства private void SolutionsButton_Click(object sender, EventArgs e) { SaveFileButton.Enabled = true; sample.ShowData(ResultBox); } // При нажатие на кнопку Назад private void BackButton_Click(object sender, EventArgs e) { OpenFileButton.Visible = false; SaveFileButton.Visible = false; SolutionsButton.Visible = false; ResultBox.Visible = false; SLAYButton.Visible = true; INTEGRALButton.Visible = true; GRAPHButton.Visible = true; GrafList.Visible = false; BackButton.Visible = false; InputBox.Visible = false; InputBox.Text = ""; ResultBox.Text = ""; GrafList.GraphPane.CurveList.Clear(); GrafList.AxisChange(); GrafList.Invalidate(); CheckGraph = false; } private void Project_Load(object sender, EventArgs e) { } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д