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,则输出:
没有实根!

  1. import java.util.Scanner;
  2. class Fangcheng{
  3. private int a,b;
  4. private static int c=0;
  5. public Fangcheng(int a,int b){
  6. this.a=a;
  7. this.b=b;
  8. }
  9. public static void setC(int o){
  10. c=o;
  11. }
  12. public double calculate1(int a,int b,int c){
  13. return (-b+Math.sqrt(b*b-4*a*c))/(2.0*a);
  14. }
  15. public double calculate2(int a,int b,int c){
  16. return (-b-Math.sqrt(b*b-4*a*c))/(2.0*a);
  17. }
  18. public void display(){
  19. if(b*b-4*a*c<0){
  20. System.out.println("没有实根!");
  21. }
  22. else if(b*b-4*a*c==0){
  23. System.out.println("有两个相等的实根!");
  24. System.out.println("实根是:"+calculate1(a,b,c));
  25. }
  26. else{
  27. System.out.println("有两个不等的实根!");
  28. System.out.println("第一个实根是:"+calculate1(a,b,c));
  29. System.out.println("第二个实根是:"+calculate2(a,b,c));
  30. }
  31. }
  32. }
  33. public class Main{
  34. public static void main(String[]args){
  35. int x,y,z;
  36. Scanner sc=new Scanner(System.in);
  37. System.out.println("请输入一元二次方程的系数和常数项:");
  38. x=sc.nextInt();
  39. y=sc.nextInt();
  40. z=sc.nextInt();
  41. Fangcheng s=new Fangcheng(x,y);
  42. s.setC(z);
  43. s.display();
  44. }
  45. }

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

  1. import java.util.Scanner;
  2. class Fangcheng{
  3. private int a,b;
  4. private static int c=0;
  5. public Fangcheng(int a,int b){
  6. this.a=a;
  7. this.b=b;
  8. }
  9. public static void setC(int c){
  10. Fangcheng.c = c;
  11. }
  12. public static int getC(){ return c; }
  13. public double calculate1(int a,int b,int c){
  14. return (-b+Math.sqrt(b*b-4*a*c))/(2.0*a);
  15. }
  16. public double calculate2(int a,int b,int c){
  17. return (-b-Math.sqrt(b*b-4*a*c))/(2.0*a);
  18. }
  19. public void display(){
  20. if(b*b-4*a*c<0){
  21. System.out.println("没有实根!");
  22. }
  23. else if(b*b-4*a*c==0){
  24. System.out.println("有两个相等的实根!");
  25. System.out.println("实根是:"+calculate1(a,b,c));
  26. }
  27. else{
  28. System.out.println("有两个不等的实根!");
  29. System.out.println("第一个实根是:"+calculate1(a,b,c));
  30. System.out.println("第二个实根是:"+calculate2(a,b,c));
  31. }
  32. }
  33. }
  34. public class Main{
  35. public static void main(String[]args){
  36. int x1,y1,z1,x2,y2,z2;
  37. Scanner sc=new Scanner(System.in);
  38. System.out.println("请输入一元二次方程的系数和常数项:");
  39. x1=sc.nextInt();
  40. y1=sc.nextInt();
  41. z1=sc.nextInt();
  42. Fangcheng s1 =new Fangcheng(x1,y1);
  43. s1.setC(z1);
  44. System.out.println("请再一次输入一元二次方程的系数和常数项:");
  45. x2=sc.nextInt();
  46. y2=sc.nextInt();
  47. z2=sc.nextInt();
  48. Fangcheng s2=new Fangcheng(x2,y2);
  49. s2.setC(z2);
  50. s1.display();
  51. s2.display();
  52. System.out.println("第一个方程的常数项的值为:"+Fangcheng.getC());
  53. System.out.println("第二个方程的常数项的值为:"+Fangcheng.getC());
  54. }
  55. }