1.定义一个类,该类封装了一元二次方程ax²+bx+c=0(a≠0)共有的属性和功能,即该类有刻画方程系数的3个成员变量a、b和c,以及计算实根的方法。要求:该类的所有对象共享常数项c(将常数项c定义为static)。
说明:
(1)a、b、c均为int类型
(2)求根公式为:(-b+Math.sqrt(bb-4ac))/(2.0a)和(-b-Math.sqrt(bb-4ac))/(2.0a)
(3)要求从键盘输入a、b、c的值,输入提示为”请输入一元二次方程的系数和常数项:”
(4)输出为:
若输入值为1、-1、-12,则输出
有两个不等的实根!
第一个实根是:4.0
第二个实根是:-3.0
若输入值为1、2、1,则输出:
有两个相等的实根!
实根是:-1.0
若输入值为3、4、5,则输出:
没有实根!
import java.util.Scanner;
class Fangcheng{
private int a,b;
private static int c=0;
public Fangcheng(int a,int b){
this.a=a;
this.b=b;
}
public static void setC(int o){
c=o;
}
public double calculate1(int a,int b,int c){
return (-b+Math.sqrt(b*b-4*a*c))/(2.0*a);
}
public double calculate2(int a,int b,int c){
return (-b-Math.sqrt(b*b-4*a*c))/(2.0*a);
}
public void display(){
if(b*b-4*a*c<0){
System.out.println("没有实根!");
}
else if(b*b-4*a*c==0){
System.out.println("有两个相等的实根!");
System.out.println("实根是:"+calculate1(a,b,c));
}
else{
System.out.println("有两个不等的实根!");
System.out.println("第一个实根是:"+calculate1(a,b,c));
System.out.println("第二个实根是:"+calculate2(a,b,c));
}
}
}
public class Main{
public static void main(String[]args){
int x,y,z;
Scanner sc=new Scanner(System.in);
System.out.println("请输入一元二次方程的系数和常数项:");
x=sc.nextInt();
y=sc.nextInt();
z=sc.nextInt();
Fangcheng s=new Fangcheng(x,y);
s.setC(z);
s.display();
}
}
2.在上一题的基础上继续修改:
输入2组方程的系数和常数项,
若第一组方程式的a、b、c的值为:1、2、5;第二组方程式的a、b、c的值为:4、5、1
之后创建两个方程式,使用计算实根的方法计算两个方程式的实根。并输出这两个方程式的常数项的值。
输入提示为:
请输入一元二次方程的系数和常数项:
请再一次输入一元二次方程的系数和常数项:
若输入的数据为:
1
2
5
4
5
1
则输出:
有两个相等的实根!
实根是:-1.0
有两个不等的实根!
第一个实根是:-0.25
第二个实根是:-1.0
第一个方程的常数项的值为:1
第二个方程的常数项的值为:1
import java.util.Scanner;
class Fangcheng{
private int a,b;
private static int c=0;
public Fangcheng(int a,int b){
this.a=a;
this.b=b;
}
public static void setC(int c){
Fangcheng.c = c;
}
public static int getC(){ return c; }
public double calculate1(int a,int b,int c){
return (-b+Math.sqrt(b*b-4*a*c))/(2.0*a);
}
public double calculate2(int a,int b,int c){
return (-b-Math.sqrt(b*b-4*a*c))/(2.0*a);
}
public void display(){
if(b*b-4*a*c<0){
System.out.println("没有实根!");
}
else if(b*b-4*a*c==0){
System.out.println("有两个相等的实根!");
System.out.println("实根是:"+calculate1(a,b,c));
}
else{
System.out.println("有两个不等的实根!");
System.out.println("第一个实根是:"+calculate1(a,b,c));
System.out.println("第二个实根是:"+calculate2(a,b,c));
}
}
}
public class Main{
public static void main(String[]args){
int x1,y1,z1,x2,y2,z2;
Scanner sc=new Scanner(System.in);
System.out.println("请输入一元二次方程的系数和常数项:");
x1=sc.nextInt();
y1=sc.nextInt();
z1=sc.nextInt();
Fangcheng s1 =new Fangcheng(x1,y1);
s1.setC(z1);
System.out.println("请再一次输入一元二次方程的系数和常数项:");
x2=sc.nextInt();
y2=sc.nextInt();
z2=sc.nextInt();
Fangcheng s2=new Fangcheng(x2,y2);
s2.setC(z2);
s1.display();
s2.display();
System.out.println("第一个方程的常数项的值为:"+Fangcheng.getC());
System.out.println("第二个方程的常数项的值为:"+Fangcheng.getC());
}
}