题目:
界面:
这里有一个点,就是我们很多人就是双击“求根”的按钮之后跳转写代码的.cs,但是其实在键盘上点击快捷键F7就能够直接跳转到代码。
代码:
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 _2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 获取用户输入的系数
if (!double.TryParse(textBox1.Text, out double a) || !double.TryParse(textBox2.Text, out double b) || !double.TryParse(textBox3.Text, out double c))
{
MessageBox.Show("请输入有效的系数!", "错误");
return;
}
// 求解一次方程的根
if (Math.Abs(a) < double.Epsilon)
{
if (Math.Abs(b) < double.Epsilon)
{
MessageBox.Show("系数a和b不能同时为0!", "错误");
}
else
{
double x = -c / b;
MessageBox.Show($"方程的根为:{x}", "结果");
}
return;
}
// 求解二次方程的根
double delta = b * b - 4 * a * c;
if (delta > 0)
{
double x1 = (-b + Math.Sqrt(delta)) / (2 * a);
double x2 = (-b - Math.Sqrt(delta)) / (2 * a);
MessageBox.Show($"方程的根为:{x1},{x2}", "结果");
}
else if (Math.Abs(delta) < double.Epsilon)
{
double x = -b / (2 * a);
MessageBox.Show($"方程的根为:{x}", "结果");
}
else
{
double r = -b / (2 * a);
double i = Math.Sqrt(-delta) / (2 * a);
MessageBox.Show($"方程的根为:{r} + {i}i,{r} - {i}i", "结果");
}
}
}
}
这个题目最重要就是考虑一次根、二次根和没根情况,题目中的textBox输入问题,不一定是要通过Keypress事件去控制,只要输入的不是我们想要就进行排除就行(弹出提示)