有关科学计算器的方法设计(C#)
这只是一个纯小白的自治计算器,代码可能不是十分简便,希望可以用作参考。
计算器的实现
有关科学计算器的方法设计(C#)有关普通计算器和科学计算器的代码如下画图功能的实现如下
有关普通计算器和科学计算器的代码如下
using System
;
using System
.Collections
.Generic
;
using System
.ComponentModel
;
using System
.Data
;
using System
.Drawing
;
using System
.Linq
;
using System
.Text
;
using System
.Text
.RegularExpressions
;
using System
.Threading
.Tasks
;
using System
.Windows
.Forms
;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string operation
= null;
double number1
= 0, number2
= 0;
private void textpush(string x
)
{
if (textBox1
.Text
== "0")
{
textBox1
.Text
= "";
}
textBox1
.Text
+= x
;
}
private void textpush_1(string x
)
{
if (textBox2
.Text
== "0")
{
textBox2
.Text
= "";
}
textBox2
.Text
+= x
;
textBox3
.Text
+= x
;
}
#region General calculator
private void button34_Click(object sender
, EventArgs e
)
{
textpush("0");
}
private void button24_Click(object sender
, EventArgs e
)
{
textpush("1");
}
private void button35_Click(object sender
, EventArgs e
)
{
textpush("2");
}
private void button40_Click(object sender
, EventArgs e
)
{
textpush("3");
}
private void button31_Click(object sender
, EventArgs e
)
{
textpush("4");
}
private void button36_Click(object sender
, EventArgs e
)
{
textpush("5");
}
private void button41_Click(object sender
, EventArgs e
)
{
textpush("6");
}
private void button32_Click(object sender
, EventArgs e
)
{
textpush("7");
}
private void button37_Click(object sender
, EventArgs e
)
{
textpush("8");
}
private void button42_Click(object sender
, EventArgs e
)
{
textpush("9");
}
private void button23_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
== "")
textBox1
.Text
+= "";
else
{
if (operation
!= null)
button49_Click(sender
, e
);
textBox1
.Text
= (-1 * Convert
.ToDouble(textBox1
.Text
)).ToString();
}
}
private void button39_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
== "")
{
textBox1
.Text
+= "0.";
}
else if (textBox1
.Text
.IndexOf(".") > 0)
{
textBox1
.Text
+= "";
}
else
{
textBox1
.Text
+= ".";
}
}
private void button47_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
== "")
textBox1
.Text
= "0";
number1
= Convert
.ToDouble(textBox1
.Text
);
operation
= "+";
textBox1
.Text
= "";
}
private void button46_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
== "")
textBox1
.Text
= "0";
number1
= Convert
.ToDouble(textBox1
.Text
);
operation
= "-";
textBox1
.Text
= "";
}
private void button45_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
== "")
textBox1
.Text
= "0";
number1
= Convert
.ToDouble(textBox1
.Text
);
operation
= "*";
textBox1
.Text
= "";
}
private void button44_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
== "")
textBox1
.Text
= "0";
number1
= Convert
.ToDouble(textBox1
.Text
);
operation
= "/";
textBox1
.Text
= "";
}
private void button53_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
.Length
> 0)
{
textBox1
.Text
= textBox1
.Text
.Substring(0, textBox1
.Text
.Length
- 1);
}
else
{
textBox1
.Text
= "";
}
}
private void button52_Click(object sender
, EventArgs e
)
{
textBox1
.Text
= "";
number1
= 0;
number2
= 0;
operation
= null;
}
private void button49_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
!= "")
{
number2
= Convert
.ToDouble(textBox1
.Text
);
switch (operation
)
{
case "+": textBox1
.Text
= (number1
+ number2
).ToString(); break;
case "-": textBox1
.Text
= (number1
- number2
).ToString(); break;
case "*": textBox1
.Text
= (number1
* number2
).ToString(); break;
case "/":
{
if (number2
== 0)
MessageBox
.Show("0 不能作为除数", "WRONG!!");
else
textBox1
.Text
= (number1
/ number2
).ToString();
break;
}
}
number1
= Convert
.ToDouble(textBox1
.Text
);
operation
= null;
}
}
private void button48_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
!= "")
{
if (Convert
.ToDouble(textBox1
.Text
) < 0)
MessageBox
.Show(" 小于0的数无法进行平方根运算.", "WRONG!!!");
else
{
textBox1
.Text
= (Math
.Round(Math
.Sqrt(Convert
.ToDouble(textBox1
.Text
)), 10)).ToString();
}
}
}
private void button43_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
!= "")
{
if (Convert
.ToDouble(textBox1
.Text
) <= 0)
MessageBox
.Show("真数必须大于0", "WRONG!!!");
else
{
textBox1
.Text
= (Math
.Round(Math
.Log10(Convert
.ToDouble(textBox1
.Text
)), 10)).ToString();
}
}
}
private void button38_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
!= "")
{
textBox1
.Text
= (Convert
.ToDouble(textBox1
.Text
) * Convert
.ToDouble(textBox1
.Text
)).ToString();
}
}
private void button33_Click(object sender
, EventArgs e
)
{
if (operation
!= null)
button49_Click(sender
, e
);
if (textBox1
.Text
!= "")
{
if (textBox1
.Text
== "0")
MessageBox
.Show("0不能作为除数", "WRONG!!!");
else
{
textBox1
.Text
= (Math
.Round(1 / (Convert
.ToDouble(textBox1
.Text
)), 10)).ToString();
}
}
}
#endregion
#region Science calculator
private void button4_Click(object sender
, EventArgs e
)
{
textpush_1("1");
}
private void button9_Click(object sender
, EventArgs e
)
{
textpush_1("2");
}
private void button14_Click(object sender
, EventArgs e
)
{
textpush_1("3");
}
private void button3_Click(object sender
, EventArgs e
)
{
textpush_1("4");
}
private void button8_Click(object sender
, EventArgs e
)
{
textpush_1("5");
}
private void button13_Click(object sender
, EventArgs e
)
{
textpush_1("6");
}
private void button2_Click(object sender
, EventArgs e
)
{
textpush_1("7");
}
private void button7_Click(object sender
, EventArgs e
)
{
textpush_1("8");
}
private void button12_Click(object sender
, EventArgs e
)
{
textpush_1("9");
}
private void button10_Click(object sender
, EventArgs e
)
{
textpush_1("0");
}
private void button15_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
{
textBox2
.Text
+= "0.";
textBox3
.Text
+= "0.";
}
else if (textBox3
.Text
.IndexOf(".") > 0)
{
textBox2
.Text
+= "";
textBox3
.Text
+= "";
}
else
{
textBox2
.Text
+= ".";
textBox3
.Text
+= ".";
}
}
private void button17_Click(object sender
, EventArgs e
)
{
textBox2
.Text
+= "+";
textBox3
.Text
= "";
}
private void button18_Click(object sender
, EventArgs e
)
{
textBox2
.Text
+= "-";
textBox3
.Text
= "";
}
private void button19_Click(object sender
, EventArgs e
)
{
textBox2
.Text
+= "*";
textBox3
.Text
= "";
}
private void button20_Click(object sender
, EventArgs e
)
{
textBox2
.Text
+= "/";
textBox3
.Text
= "";
}
private void button29_Click(object sender
, EventArgs e
)
{
textBox2
.Text
+= "(";
textBox3
.Text
= "";
}
private void button50_Click(object sender
, EventArgs e
)
{
textBox2
.Text
+= ")";
textBox3
.Text
= "";
}
private void button1_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
if (textBox3
.Text
== "0")
MessageBox
.Show("0不能作为除数", "WRONG!!!");
else
{
textBox3
.Text
= (Math
.Round(1 / (Convert
.ToDouble(textBox3
.Text
)), 10)).ToString();
textBox2
.Text
= textBox3
.Text
;
}
}
else
{
if (textBox3
.Text
== "0")
MessageBox
.Show("0不能作为除数", "WRONG!!!");
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= (Math
.Round(1 / (Convert
.ToDouble(textBox3
.Text
)), 10)).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
}
private void button5_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+="";
else if (textBox2
.Text
== textBox3
.Text
)
{
textBox3
.Text
= (-1 * Convert
.ToDouble(textBox3
.Text
)).ToString();
textBox2
.Text
= textBox3
.Text
;
}
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= (-1 * Convert
.ToDouble(textBox3
.Text
)).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
private void button21_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
.Length
> 0)
{
textBox3
.Text
= textBox3
.Text
.Substring(0, textBox3
.Text
.Length
- 1);
textBox2
.Text
=textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- 1);
}
else
{
textBox3
.Text
= "";
if(textBox2
.Text
.Length
> 0)
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- 1);
}
else
textBox2
.Text
= "";
}
}
private void button22_Click(object sender
, EventArgs e
)
{
textBox2
.Text
= "";
textBox3
.Text
= "";
}
private void button6_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
textBox3
.Text
= (Convert
.ToDouble(textBox3
.Text
) * Convert
.ToDouble(textBox3
.Text
)).ToString();
textBox2
.Text
= textBox3
.Text
;
}
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= (Convert
.ToDouble(textBox3
.Text
) * Convert
.ToDouble(textBox3
.Text
)).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
private void button11_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
if (Convert
.ToDouble(textBox3
.Text
) <= 0)
MessageBox
.Show("真数必须大于0", "WRONG!!!");
else
{
textBox3
.Text
= (Math
.Round(Math
.Log10(Convert
.ToDouble(textBox3
.Text
)), 10)).ToString();
textBox2
.Text
= textBox3
.Text
;
}
}
else
{
if (Convert
.ToDouble(textBox3
.Text
) <= 0)
MessageBox
.Show("真数必须大于0", "WRONG!!!");
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= (Math
.Round(Math
.Log10(Convert
.ToDouble(textBox3
.Text
)), 10)).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
}
private void button16_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
if (Convert
.ToDouble(textBox3
.Text
) < 0)
MessageBox
.Show(" 小于0的数无法进行平方根运算.", "WRONG!!!");
else
{
textBox3
.Text
= Math
.Round(Math
.Sqrt(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
= textBox3
.Text
;
}
}
else
{
if (Convert
.ToDouble(textBox3
.Text
) < 0)
MessageBox
.Show(" 小于0的数无法进行平方根运算.", "WRONG!!!");
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= Math
.Round(Math
.Sqrt(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
}
private void button26_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
textBox3
.Text
= Math
.Round(Math
.Sin(Convert
.ToDouble(textBox3
.Text
)),10).ToString();
textBox2
.Text
= textBox3
.Text
;
}
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= Math
.Round(Math
.Sin(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
private void button27_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
textBox3
.Text
= Math
.Round(Math
.Cos(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
= textBox3
.Text
;
}
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= Math
.Round(Math
.Cos(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
private void button28_Click(object sender
, EventArgs e
)
{
if (textBox3
.Text
== "")
textBox2
.Text
+= "";
else if (textBox2
.Text
== textBox3
.Text
)
{
textBox3
.Text
= Math
.Round(Math
.Tan(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
= textBox3
.Text
;
}
else
{
textBox2
.Text
= textBox2
.Text
.Substring(0, textBox2
.Text
.Length
- textBox3
.Text
.Length
);
textBox3
.Text
= Math
.Round(Math
.Tan(Convert
.ToDouble(textBox3
.Text
)), 10).ToString();
textBox2
.Text
+= textBox3
.Text
;
}
}
private void button25_Click(object sender
, EventArgs e
)
{
string expression_1
= textBox2
.Text
;
juge(expression_1
);
expression_1
= textBox2
.Text
;
string expression_2
= test_turn(expression_1
);
string number
= getnumber(expression_2
);
textBox3
.Text
= number
;
}
private void juge(string expression_1
)
{
if (expression_1
[0] == '+' || expression_1
[0] == '-' || expression_1
[0] == '*' || expression_1
[0] == '/' || expression_1
[0] == '.')
textBox2
.Text
= "0" + textBox2
.Text
;
}
private double getvalue(char op
, double ch1
, double ch2
)
{
switch (op
)
{
case '+':
return ch2
+ ch1
;
case '-':
return ch2
- ch1
;
case '*':
return ch2
* ch1
;
case '/':
return ch2
/ ch1
;
default:
return 0;
}
}
private string getnumber(string test_2
)
{
Stack
<string> stacks
= new Stack<string>();
Stack
<string> num
= stacks
;
double non1
, non2
, ret
;
string number
= null;
for (int i
= 0; i
< test_2
.Length
; i
++)
{
if (test_2
[i
] != '+' && test_2
[i
] != '-' && test_2
[i
] != '*' && test_2
[i
] != '/')
{
if (test_2
[i
] == '#')
{
Console
.WriteLine(number
);
num
.Push(number
);
number
= null;
continue;
}
number
+= test_2
[i
];
}
else
{
non1
= Convert
.ToDouble(num
.Pop());
non2
= Convert
.ToDouble(num
.Pop());
ret
= getvalue(test_2
[i
], non1
, non2
);
num
.Push(ret
.ToString());
}
}
return num
.Pop();
}
private string test_turn(string test_1
)
{
string test_2
= null;
Stack
<char> stacks
= new Stack<char>();
Stack
<char> operation
= stacks
;
Console
.WriteLine(test_1
);
for (int i
= 0; i
< test_1
.Length
; i
++)
{
if (test_1
[i
] != '+' && test_1
[i
] != '-' && test_1
[i
] != '*' && test_1
[i
] != '/' && test_1
[i
] != '(' && test_1
[i
] != ')')
{
test_2
+= test_1
[i
];
if (i
== test_1
.Length
- 1)
test_2
+= "#";
if (i
< test_1
.Length
- 1)
if (test_1
[i
+ 1] == '+' || test_1
[i
+ 1] == '-' || test_1
[i
+ 1] == '*' || test_1
[i
+ 1] == '/' || test_1
[i
+ 1] == '(' || test_1
[i
+ 1] == ')')
test_2
+= "#";
}
else
{
switch (test_1
[i
])
{
case ')':
while (operation
.Count
> 0)
{
if (operation
.Peek() == '(')
break;
test_2
+= operation
.Pop();
}
operation
.Pop();
break;
case '(':
operation
.Push(test_1
[i
]);
break;
case '+':
case '-':
case '*':
case '/':
while (operation
.Count
> 0)
{
if (test_number(test_1
[i
]) <= test_number(operation
.Peek()))
{
test_2
+= operation
.Pop();
}
else
{
break;
}
}
operation
.Push(test_1
[i
]);
break;
}
}
}
while (operation
.Count
> 0)
test_2
+= operation
.Pop();
Console
.WriteLine(test_2
);
return test_2
;
}
private int test_number(char a
)
{
switch (a
)
{
case '+': return 1;
case '-': return 1;
case '*': return 2;
case '/': return 2;
default: return 0;
}
}
private void button30_Click(object sender
, EventArgs e
)
{
Form2 form2
= new Form2();
form2
.ShowDialog();
}
private void Form1_KeyDown(object sender
, KeyEventArgs e
)
{
switch (e
.KeyCode
)
{
case Keys
.NumPad1
:
this.button4_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad2
:
this.button9_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad3
:
this.button14_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad4
:
this.button3_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad5
:
this.button8_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad6
:
this.button13_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad7
:
this.button2_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad8
:
this.button7_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad9
:
this.button12_Click(null, null);
button25
.Focus();
break;
case Keys
.NumPad0
:
this.button10_Click(null, null);
button25
.Focus();
break;
case Keys
.Add
:
this.button17_Click(null, null);
button25
.Focus();
break;
case Keys
.Multiply
:
this.button19_Click(null, null);
button25
.Focus();
break;
case Keys
.Subtract
:
this.button18_Click(null, null);
button25
.Focus();
break;
case Keys
.Divide
:
this.button20_Click(null, null);
button25
.Focus();
break;
case Keys
.Back
:
this.button21_Click(null, null);
button25
.Focus();
break;
case Keys
.Escape
:
this.button22_Click(null, null);
button25
.Focus();
break;
case Keys
.Decimal
:
this.button15_Click(null, null);
button25
.Focus();
break;
case Keys
.D9
:
this.button29_Click(null, null);
button25
.Focus();
break;
case Keys
.D0
:
this.button50_Click(null, null);
button25
.Focus();
break;
default:
break;
}
}
#endregion
}
}
画图功能的实现如下
using System
;
using System
.Collections
.Generic
;
using System
.ComponentModel
;
using System
.Data
;
using System
.Drawing
;
using System
.Linq
;
using System
.Text
;
using System
.Threading
.Tasks
;
using System
.Windows
.Forms
;
namespace WindowsFormsApp3
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
int i
=1;
int x1
= 0;
int y1
= 0;
int number
= 0;
double[] y2
=new double[2000];
int[] x2
= new int[2000];
private void button1_Click(object sender
, EventArgs e
)
{
Form2_Paint(sender
, null);
pictureBox1_Paint(sender
, null);
}
private void button2_Click(object sender
, EventArgs e
)
{
if(textBox1
.Text
=="")
textBox1
.Text
+= "sin(x)";
else
textBox1
.Text
+= "+sin(x)";
if (x1
!= -628)
x1
-= 628;
y1
+= -Convert
.ToInt32(Math
.Sin(0 / 100) * 100 );
for (; i
< 1500; i
++)
y2
[i
]+= - Math
.Sin(i
/ 100.0) * 100;
i
= 1;
}
private void button3_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
== "")
textBox1
.Text
+= "cos(x)";
else
textBox1
.Text
+= "+cos(x)";
if (x1
!= -628)
x1
-= 628;
y1
+= -Convert
.ToInt32(Math
.Cos(0 / 100) * 100);
for (; i
< 1500; i
++)
y2
[i
] += -Math
.Cos(i
/ 100.0) * 100;
i
= 1;
}
private void button6_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
== "")
textBox1
.Text
+= "tan(x)";
else
textBox1
.Text
+= "+tan(x)";
if(x1
!=-628)
x1
-= 628;
y1
+= -Convert
.ToInt32(Math
.Tan(0 / 100) * 100);
for (; i
< 1500; i
++)
y2
[i
] += -Math
.Tan(i
/ 100.0) * 100;
i
= 1;
}
private void button7_Click(object sender
, EventArgs e
)
{
pictureBox1
.Image
= null;
textBox1
.Text
= null;
for (int j
= 1; j
< 1500; j
++)
y2
[j
] = 0;
y1
= 0;
x1
= 0;
number
= 0;
n
= 1;
m
= 1;
}
private void button5_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
== "")
textBox1
.Text
+= "log(x)";
else
textBox1
.Text
+= "+log(x)";
if (x1
== -628)
x1
+= 628;
y1
+= -Convert
.ToInt32(Math
.Log10(1) * 70)+150;
for (; i
< 1500; i
++)
y2
[i
] += -Math
.Log10(i
/ 1.0) * 70+150;
i
= 1;
}
private void button4_Click(object sender
, EventArgs e
)
{
if (textBox1
.Text
== "")
textBox1
.Text
+= "ln(x)";
else
textBox1
.Text
+= "+ln(x)";
if (x1
== -628)
x1
+= 628;
y1
+= -Convert
.ToInt32(Math
.Log( 1) * 70)+150;
for (; i
< 1500; i
++)
y2
[i
] += -Math
.Log(i
/ 1.0) * 70+150;
i
= 1;
}
private void button8_Click(object sender
, EventArgs e
)
{
number
= 0;
number
= (int)numericUpDown1
.Value
;
if (textBox1
.Text
== "")
textBox1
.Text
+= "x^"+number
.ToString();
else
textBox1
.Text
+= "+x^" + number
.ToString();
if (x1
!= -628)
x1
-= 628;
y1
+= Convert
.ToInt32(Math
.Pow(0,number
));
if(number
>1)
for (i
=0; i
< 1500; i
++)
y2
[i
] += -Math
.Pow(i
-628, number
)/100;
if(number
<=1)
for (i
= 0; i
< 1500; i
++)
y2
[i
] += -Math
.Pow(i
- 628, number
);
i
= 1;
}
private void pictureBox1_Paint(object sender
, PaintEventArgs e
)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
Point begin
= new Point();
Point end
= new Point();
Pen pn_1
= new Pen(Color
.Blue
);
begin
.X
= x1
+ pictureBox1
.Width
/ 2;
begin
.Y
= y1
+ pictureBox1
.Height
/ 2;
for (; i
< 1500; i
++)
{
end
.X
= x1
+ i
+ pictureBox1
.Width
/ 2;
end
.Y
= Convert
.ToInt32(y2
[i
]) + pictureBox1
.Height
/ 2;
g
.DrawLine(pn_1
, begin
, end
);
begin
= end
;
}
i
= 1;
picture_line();
picture_line3();
}
private void picture_line(int n
=1)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
Point line_1
= new Point();
Point line_2
= new Point();
line_1
.Y
= pictureBox1
.Height
/ 2;
line_2
.Y
= pictureBox1
.Height
/ 2 - 10;
line_1
.X
= 0;
line_2
.X
= 0;
Pen pn_2
= new Pen(Color
.Black
);
for (; i
< 1500; i
++)
{
g
.DrawLine(pn_2
, line_1
, line_2
);
line_1
.X
+= 10*n
;
line_2
.X
+= 10*n
;
}
i
= 1;
}
private void picture_line1(int n
= 1)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
Point line_1
= new Point();
Point line_2
= new Point();
line_1
.Y
= pictureBox1
.Height
/ 2;
line_2
.Y
= pictureBox1
.Height
/ 2 - 10;
line_1
.X
= 0;
line_2
.X
= 0;
Pen pn_2
= new Pen(Color
.Black
);
for (; i
< 1500; i
++)
{
g
.DrawLine(pn_2
, line_1
, line_2
);
line_1
.X
+= 10 / n
;
line_2
.X
+= 10 / n
;
}
i
= 1;
}
private void picture_line3(int n
= 1)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
Point line_1
= new Point();
Point line_2
= new Point();
line_1
.Y
= 0;
line_2
.Y
= 0;
line_1
.X
= pictureBox1
.Width
/2;
line_2
.X
= pictureBox1
.Width
/ 2+10;
Pen pn_2
= new Pen(Color
.Black
);
for (; i
< 1500; i
++)
{
g
.DrawLine(pn_2
, line_1
, line_2
);
line_1
.Y
+= 10 * n
;
line_2
.Y
+= 10 * n
;
}
i
= 1;
}
private void picture_line4(int m
= 1)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
Point line_1
= new Point();
Point line_2
= new Point();
line_1
.Y
= 0;
line_2
.Y
= 0;
line_1
.X
= pictureBox1
.Width
/ 2;
line_2
.X
= pictureBox1
.Width
/ 2 + 10;
Pen pn_2
= new Pen(Color
.Black
);
for (; i
< 1500; i
++)
{
g
.DrawLine(pn_2
, line_1
, line_2
);
line_1
.Y
+= 10 / m
;
line_2
.Y
+= 10 / m
;
}
i
= 1;
}
private void Form2_Paint(object sender
, PaintEventArgs e
)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
Point axis_1
= new Point();
Point axis_2
= new Point();
Point axis_3
= new Point();
Point axis_4
= new Point();
Pen pn_2
= new Pen(Color
.Black
);
axis_1
.X
= pictureBox1
.Width
;
axis_1
.Y
= pictureBox1
.Height
/ 2;
axis_2
.X
= 0;
axis_2
.Y
= pictureBox1
.Height
/ 2;
axis_3
.X
= pictureBox1
.Width
/ 2;
axis_3
.Y
= 0;
axis_4
.X
= pictureBox1
.Width
/ 2;
axis_4
.Y
= pictureBox1
.Height
;
g
.DrawLine(pn_2
, axis_2
, axis_1
);
g
.DrawLine(pn_2
, axis_3
, axis_4
);
}
private void Form2_Load(object sender
, EventArgs e
)
{
this.MouseWheel
+= pictureBox1_MouseWheel
;
}
private void pictureBox11_Paint(object sender
, PaintEventArgs e
)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
PointF begin
= new Point();
PointF end
= new Point();
Pen pn_1
= new Pen(Color
.Blue
);
begin
.X
= (x1
)*n
+ pictureBox1
.Width
/ 2;
begin
.Y
= (y1
)*n
+ pictureBox1
.Height
/ 2;
for (; i
< 1500; i
++)
{
end
.X
= (x1
+ i
)*n
+ pictureBox1
.Width
/ 2;
end
.Y
= (Convert
.ToInt32(y2
[i
]) )*n
+ pictureBox1
.Height
/ 2;
g
.DrawLine(pn_1
, begin
, end
);
begin
= end
;
}
i
= 1;
Point axis_1
= new Point();
Point axis_2
= new Point();
Point axis_3
= new Point();
Point axis_4
= new Point();
Pen pn_2
= new Pen(Color
.Black
);
axis_1
.X
= pictureBox1
.Width
;
axis_1
.Y
= pictureBox1
.Height
/ 2;
axis_2
.X
= 0;
axis_2
.Y
= pictureBox1
.Height
/ 2;
axis_3
.X
= pictureBox1
.Width
/ 2;
axis_3
.Y
= 0;
axis_4
.X
= pictureBox1
.Width
/ 2;
axis_4
.Y
= pictureBox1
.Height
;
g
.DrawLine(pn_2
, axis_2
, axis_1
);
g
.DrawLine(pn_2
, axis_3
, axis_4
);
}
private void pictureBox12_Paint(object sender
, PaintEventArgs e
)
{
Graphics g
;
g
= this.pictureBox1
.CreateGraphics();
PointF begin
= new Point();
PointF end
= new Point();
Pen pn_1
= new Pen(Color
.Blue
);
begin
.X
= (x1
) / m
+ pictureBox1
.Width
/ 2;
begin
.Y
= (y1
) / m
+ pictureBox1
.Height
/ 2;
for (; i
< 1500; i
++)
{
end
.X
= (x1
+ i
) / m
+ pictureBox1
.Width
/ 2;
end
.Y
= (Convert
.ToInt32(y2
[i
]) ) / m
+ pictureBox1
.Height
/ 2;
g
.DrawLine(pn_1
, begin
, end
);
begin
= end
;
}
i
= 1;
Point axis_1
= new Point();
Point axis_2
= new Point();
Point axis_3
= new Point();
Point axis_4
= new Point();
Pen pn_2
= new Pen(Color
.Black
);
axis_1
.X
= pictureBox1
.Width
;
axis_1
.Y
= pictureBox1
.Height
/ 2;
axis_2
.X
= 0;
axis_2
.Y
= pictureBox1
.Height
/ 2;
axis_3
.X
= pictureBox1
.Width
/ 2;
axis_3
.Y
= 0;
axis_4
.X
= pictureBox1
.Width
/ 2;
axis_4
.Y
= pictureBox1
.Height
;
g
.DrawLine(pn_2
, axis_2
, axis_1
);
g
.DrawLine(pn_2
, axis_3
, axis_4
);
}
int n
= 1;
int m
= 1;
private void pictureBox1_MouseWheel(object sender
, MouseEventArgs e
)
{
if(e
.Delta
>0)
{
n
++;
Refresh();
picture_line(n
);
picture_line3(n
);
pictureBox11_Paint(sender
, null);
}
else
{
m
++;
Refresh();
picture_line1(m
);
picture_line4(m
);
pictureBox12_Paint(sender
, null);
}
}
}
}