Нужно доработать проект, по выводу графика - 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) { }
}
}