import java.util.Scanner;
public class LinearDrive {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter value for a: ");
double a= in.nextDouble();
System.out.print("Enter value for b: ");
double b= in.nextDouble();
System.out.print("Enter value for c: ");
double c= in.nextDouble();
System.out.print("Enter value for d: ");
double d= in.nextDouble();
System.out.print("Enter value for e: ");
double e= in.nextDouble();
System.out.print("Enter value for f: ");
double f= in.nextDouble();
Linear linear = new Linear(a,b,c,d,e,f);
System.out.println("X= "+ linear.getX);
System.out.println("Y= "+ linear.getY);
}
}
public class Linear {
private double a;
private double b;
private double c;
private double d;
private double e;
private double f;
public Linear(double a, double b, double c, double d, double e, double f) {
this.setA(a);
this.setB(b);
this.setC(c);
this.setD(d);
this.setE(e);
this.setF(f);
}
public Linear(){
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
public double getD() {
return d;
}
public void setD(double d) {
this.d = d;
}
public double getE() {
return e;
}
public void setE(double e) {
this.e = e;
}
public double getF() {
return f;
}
public void setF(double f) {
this.f = f;
}
public boolean isSolvable(){
boolean isSolvable= ((a*d) - (b*c));
if (isSolvable!=0){
isSolvable = true;
}
return isSolvable;
}
public double otherCase(){
double otherCase=((a*d) - (b*c));
if(otherCase==0){
otherCase="The equation has no solution";
}
}
public double getX(){
double x = ((this.e*this.d) - (this.b*this.f)) / ((this.a*this.d) - (this.b*this.c));
return x;
}
public double getY(){
double y= ((a*f) - (e*c)) / ((a*d) - (b*c));
return y;
}
}
我是新手,关于在询问用户的情况下进行面向对象的程序 输入。我知道我有很多错误。我需要帮助如何使我的 方法工作
程序:要求用户输入b c d e f并显示结果。如果ad-bc = 0 报告`方程没有解决方案
错误:!=未在布尔值上定义方程式没有解决方案 无法从字符串转换为双倍,我已经尝试过字符串可以&#t; t 让它起作用。线程" main"中的例外情况java.lang.Error:未解决 编译问题:getX无法解析或不是字段 getY无法解析或不是字段
答案 0 :(得分:1)
这一行
this.setA(this.a);
应该是
this.setA(a);
否则getX
和getY
方法似乎没问题。要调用它们,您需要添加(),如下所示:
System.out.println("X= "+ linear.getX());
要检查系统是否可以解决,您可以使用以下方法:
public boolean isSolvable() {
return Math.abs(a*b - c*d) > 1e-10;
}
请注意,绝不应将浮点数与==
进行比较。由于舍入误差,计算结果几乎不准确。上面的代码使用10 -10 的间隔来检查零行列式。