本课程讲解如何用C#编程计算一元二次方程,并形成人机交互窗体。 计算一元二次方程本身不难,用Excel就可以计算,用C#语言开发,主要是帮助学员熟悉Visual Studio控件,了解if else和一些常用转换函数的基本应用,熟悉文本框和按钮控件的使用方法。 —1—课程目的 1.了解if else,熟悉C#计算符号 2.熟悉并掌握字符数字转换Convert和ToDouble、ToString函数用法 3.培养学员用C#解决实际问题的习惯 —2—制作要求 1.生成窗体、在窗体输入变量和输出结果2.根不存在的时候显示不存在3.程序有一定的自动化效果,不报错 备注:一元二次方程的基本概念

—3—程序设计
1.控件设计 本案例没有按钮控件,只用5个文本框即可完成所有操作,textBox1-5,其中前3个文本框textBox1、textBox2、textBox3代表3个系数:a、b、c。后两个文本框textBox4、textBox5输出结果x1、x2。 也可以用按钮进行计算,看个人偏好,如果用按钮计算,代码会精简一些。  2.核心代码 三个文本框输入相同的代码即可,更改二次项、一次项、常数项,程序都会自动进行计算。 下面代码是textBox1的代码,textBox2、TextBox3都输入相同的代码即可。 - private void textBox1_TextChanged(object sender, EventArgs e)
- {
- double a = Convert.ToDouble(textBox1.Text);
- double b = Convert.ToDouble(textBox2.Text);
- double c = Convert.ToDouble(textBox3.Text);
- double x1, x2;
- if (b * b - 4 * a * c >= 0)
- {
- x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
- x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
- string x11 = x1.ToString();
- string x22 = x2.ToString();
- textBox4.Text = x11;
- textBox5.Text = x22;
- }
- else
- {
- textBox4.Text = "根不存在呦~老铁";
- textBox5.Text = "根不存在呦~老铁";
- }
- }
复制代码3.代码解释
 double a = Convert.ToDouble(textBox1.Text); double b = Convert.ToDouble(textBox2.Text); double c = Convert.ToDouble(textBox3.Text); double x1, x2; 这段是定义各项变量,一元二次方程的不同项都取自于窗体的三个文本框,用double双精度定义也可以,int整型也可以,但是结果x1,x2必须定义为双精度,因为计算结果是小数。 由于textBox文本框里输入的默认是文本,因此需要用Convert函数将其转换为双精度数字ToDouble。 if (b * b - 4 * a * c >= 0) { x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a); x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a); string x11 = x1.ToString(); string x22 = x2.ToString(); textBox4.Text = x11; textBox5.Text = x22; } 这段是假设跟存在的情况,b * b - 4 * a * c >= 0,数学表达式就是跟存在的情况。根存在的时候,再进行以下的计算。 x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a); x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a); Sqrt就是C#里的开根号,计算表达式和数学表达式区别并不大。 计算结果是默认数字,需要转换成字符串才能装进文本框textBox4和textBox5两个结果显示文本框。因此还是需要用ToString转换。我在这里借助了中间变量字符串x11。 else { textBox4.Text = "根不存在呦~老铁"; textBox5.Text = "根不存在呦~老铁"; } 如果b * b - 4 * a * c < 0,那么根就不存在了,直接在textBox4和textBox5直接输入不存在即可,无需字符串转换。
|