import java.util.Scanner;
public class Fact {
private int num,den;
Fact(){
}
Fact(int num,int den){
this.num=num; //分子
this.den=den; //分母
}
public void Set_num(int num){
this.num=num;
}
public void Set_den(int den){
this.den=den;
}
public int Get_num(){
return this.num;
}
public int Get_den(){
return this.den;
}
public void Shuru_NumDen(){
Scanner input=new Scanner (System.in);
System.out.println("输入分子,分母:");
this.num=input.nextInt();
this.den=input.nextInt();
}
public void Yuefen(){
int minn;
minn=this.num<this.den?this.num:this.den;
for(;minn>0;minn--){
if(this.den%minn==0&&this.num%minn==0){
break;
}
}
this.num=this.num/minn;
this.den=this.den/minn;
}
public void Tongfen(Fact a){ //此函数返回的值是Fact a对象通分后的值
this.Yuefen();
a.Yuefen();
int t,mod,lcm,m,s,b; //lcm 为最小公倍数
s=this.den;
b=a.den;
//this.den=small,a.den=big
if(s>b) {
t=s;
s=b;
b=t;
}
while(b!=0){
mod=s%b;
s=b;
b=mod;
} //this.den为两者的最大公约数
lcm=(this.den*a.den)/s;
m=lcm/this.den;
if(m>1) {
this.num=this.num*m;
this.den=this.den*m;
}
m=lcm/a.den;
if(lcm/a.den>1) {
a.num=a.num*m;
a.den=a.den*m;
}
}
public Fact Jisuan(Fact a,Fact b){
Fact tt=new Fact();
tt=a; //用来保存 传入的一个对象的值
a.Tongfen(b);
b.Tongfen(tt); //先通分
Scanner in=new Scanner (System.in);
System.out.println("输入运算操作符");
String str=in.next();
in.close();
switch(str){
case "+":this.num=a.num+b.num;this.den=a.den;break; //记住,此处两个分数以及是通分过后的,故只用加分子的值就行
case "-":this.num=a.num-b.num;this.den=a.den;break;
case "*":this.num=a.num*b.num;this.den=a.den*b.den;break;
case "/":this.num=a.num*b.den;this.den=a.den*b.num;break;
}
this.Yuefen();
System.out.println("test1"+str+"test2"+": ");
return this;
}
public boolean Judge_Fact(Fact a,Fact b) {
Fact tt=new Fact();
tt=a;
a.Tongfen(a);
b.Tongfen(tt);
System.out.println("test1是否大于等于test2,");
if(a.num>=b.num)
return true;
else
return false;
}
public void Show_fenshu(){
System.out.println(this.num+"/"+this.den);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
定义一个类Fact表示无符号有理数(分数),成员有分子(num)和分母(den) 构造函数2个 一组get方法 一组set方法 方法: 从键盘输入分数的分子分母 -对分数进行约分(分子分母同时除以最大公约数) -对两个分数进行通分(先约分) -两个分数(+-×/),结果为不可约数(先通分,然后再约分) -比较两个分数的大小,结果为boolean的值 显示分数方法 例如 7/8 定义testFact类, 创建Fact对象,并调用各个方法
资源推荐
资源详情
资源评论
收起资源包目录
src.rar (2个子文件)
src
Fact.java 2KB
TestFact.java 530B
共 2 条
- 1
资源评论
桃花岛人贩子
- 粉丝: 3
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功