赞
踩
(1)有理数四则运算
编写一个Java应用程序,实现两个有理数的四则运算,要求操作数用分子和分母的形式表示。结果要求最简形式,用“分子/分母”的形式表示、如果分母为1,则结果以整数表示。
(2)最终得分
声明一个Average接口,其中约定求平均值的方法(参数为一个数组,该数组元素是无序的)void avg(int[] score);声明First、Second类实现Average接口,分别给出求平均值的方法实现。
A.类First中的功能为全部数值相加后求平均值。
B.类Second中的功能为去掉一个最高分和一个最低分,再将总分求平均值。
注:数据是整数类型,有可能是负数,且数据至少为3个,但计算结果要求保留小数点2位。
有理数四则运算
最终得分
Lab.java
- package lab2;
- import java.util.Scanner;
- public class Lab
- {
- public static void main(String[] args)
- {
- Calculate ans = new Calculate();
- Scanner t = new Scanner(System.in);
- System.out.println("输入第一个数的分子和分母(形式:分子 分母)");
- ans.x1=t.nextInt();
- ans.y1=t.nextInt();
- System.out.println("输入第二个数的分子和分母(形式:分子 分母)");
- ans.x2=t.nextInt();
- ans.y2=t.nextInt();
- t.close();
- ans.Add();
- ans.Sub();
- ans.Mul();
- ans.Div();
- }
- }
Calculate.java
- package lab2;
- public class Calculate
- {
- public int x1,y1,x2,y2;
- int fun(int a,int b)//求最大公约数
- {return b!=0 ? fun(b, a % b) : a;}
- void Add()
- {
- int fz=x1*y2+x2*y1;
- int fm=y1*y2;
- int yue=fun(fz,fm);
- fz/=yue;
- fm/=yue;
- if(fm<0)
- {
- fm=-fm;
- fz=-fz;
- }
- if(fm==1)
- System.out.println("加法结果是:"+fz);
- else
- System.out.println("加法结果是:"+fz+"/"+fm);
- }
- void Sub()
- {
- int fz=x1*y2-x2*y1;
- int fm=y1*y2;
- int yue=fun(fz,fm);
- fz/=yue;
- fm/=yue;
- if(fm<0)
- {
- fm=-fm;
- fz=-fz;
- }
- if(fm==1)
- System.out.println("减法结果是:"+fz);
- else
- System.out.println("减法结果是:"+fz+"/"+fm);
- }
- void Mul()
- {
- int fz=x1*x2;
- int fm=y1*y2;
- int yue=fun(fz,fm);
- fz/=yue;
- fm/=yue;
- if(fm<0)
- {
- fm=-fm;
- fz=-fz;
- }
- if(fm==1)
- System.out.println("乘法结果是:"+fz);
- else
- System.out.println("乘法结果是:"+fz+"/"+fm);
- }
- void Div()
- {
- int fz=x1*y2;
- int fm=y1*x2;
- int yue=fun(fz,fm);
- fz/=yue;
- fm/=yue;
- if(fm<0)
- {
- fm=-fm;
- fz=-fz;
- }
- if(fm==1)
- System.out.println("除法结果是:"+fz);
- else
- System.out.println("除法结果是:"+fz+"/"+fm);
- }
- }
Grade.java
- package lab2;
- import java.util.Scanner;
- interface Average
- {
- public float avg(int[] score);
- }
- class First implements Average
- {
- int x=0;
- float sum=0;
- public float avg(int[] score)
- {
- for(int arr : score)
- {
- sum+=arr;
- x++;
- }
- return sum/x;
- }
- }
- class Second implements Average
- {
- int max=-1000;
- int min=1000;
- int x=0;
- float sum=0;
- public float avg(int[] score)
- {
- for(int arr : score)
- {
- if(arr>max)
- max=arr;
- if(arr<min)
- min=arr;
- sum+=arr;
- x++;
- }
- x-=2;
- sum=sum-min-max;
- return sum/x;
- }
- }
- public class Grade
- {
- public static void main(String[] args)
- {
- Scanner scanner=new Scanner(System.in);
- First F = new First();
- Second S = new Second();
- System.out.println("请输入分数的个数:");
- int i=scanner.nextInt();
- int[] score=new int[i];
- System.out.println("请输入对应的分数:");
- for (int j = 0; j < i; j++) {
- score[j]=scanner.nextInt();
- }
- System.out.println();
- float a = F.avg(score);
- float b = S.avg(score);
- System.out.printf("First类计算结果:%.2f\n",a);
- System.out.printf("Second类计算结果:%.2f",b);
- }
- }
感谢大家的观看
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。