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());}}
