java用mvc写一个一元二次方程
时间: 2023-12-30 18:03:07 浏览: 37
好的,以下是一个简单的 Java MVC 模式的一元二次方程求解程序:
Model(模型):Equation.java
```java
public class Equation {
private double a;
private double b;
private double c;
private double x1;
private double x2;
private boolean hasResult;
public void setCoefficients(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
solve();
}
private void solve() {
double delta = b * b - 4 * a * c;
if (delta < 0) {
hasResult = false;
return;
}
hasResult = true;
x1 = (-b + Math.sqrt(delta)) / (2 * a);
x2 = (-b - Math.sqrt(delta)) / (2 * a);
}
public double getX1() {
return x1;
}
public double getX2() {
return x2;
}
public boolean hasResult() {
return hasResult;
}
}
```
View(视图):EquationView.java
```java
import java.util.Scanner;
public class EquationView {
private EquationController controller;
public EquationView(EquationController controller) {
this.controller = controller;
}
public void start() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一元二次方程的系数:");
System.out.print("a = ");
double a = scanner.nextDouble();
System.out.print("b = ");
double b = scanner.nextDouble();
System.out.print("c = ");
double c = scanner.nextDouble();
controller.setCoefficients(a, b, c);
}
public void showResult(double x1, double x2) {
System.out.println("方程的解为:");
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
}
public void showNoResult() {
System.out.println("方程无解!");
}
}
```
Controller(控制器):EquationController.java
```java
public class EquationController {
private Equation model;
private EquationView view;
public EquationController(Equation model, EquationView view) {
this.model = model;
this.view = view;
}
public void setCoefficients(double a, double b, double c) {
model.setCoefficients(a, b, c);
if (model.hasResult()) {
view.showResult(model.getX1(), model.getX2());
} else {
view.showNoResult();
}
}
}
```
Main(主程序):Main.java
```java
public class Main {
public static void main(String[] args) {
Equation equation = new Equation();
EquationView view = new EquationView(new EquationController(equation, new EquationView(null)));
view.start();
}
}
```
以上代码是一个简单的 MVC 模式的一元二次方程求解程序,需要输入一元二次方程的系数,然后输出方程的解或无解。其中,Equation 类是模型,EquationView 类是视图,EquationController 类是控制器。