| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1310 人关注过本帖
标题:高手来帮帮忙啊,一个很简单的java问题
只看楼主 加入收藏
xing_22
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-12
收藏
 问题点数:0 回复次数:11 
高手来帮帮忙啊,一个很简单的java问题
创建一个Fraction类执行分数运算.要求如下:
1.用整型表示类的private成员变量,f1和f2
2.提供构造方法,将分子存入f1,分母存入f2
3.提供两个分数相加的运算方法,结果分别存入f1和f2
4.提供两个分数相减的运算方法,结果分别存入f1和f2
5.提供两个分数相乘的运算方法,结果分别存入f1和f2
6.提供两个分数相除的运算方法,结果分别存入f1和f2
7.以a/b的形式打印Fraction函数
8.以浮点数的形式打印Fraction函数
9.编写主控程序运行分数运算


帮帮忙啊,急!先谢谢哈
搜索更多相关主题的帖子: java 
2007-04-11 22:19
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 

这个应该不难实现。。。。
前面2个很好实现
实现3,4,在类里面再写一个求最大公约数和最小公倍数的方法供求和差的方法调用。也很好实现
5可以直接把分子和分子相乘,分母和分母相乘,然后除去最大公约数
6就是乘的倒过来就行了
789应该就更好实现了

类中应该对分母为0等特殊情况进行过滤


我的思路是这样,这题应该比较好做的


这个社会太复杂。。。
2007-04-11 23:07
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
具体程序楼主自己完成吧

这个社会太复杂。。。
2007-04-11 23:07
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
收藏
得分:0 
结果分别存入f1和f2
public class YS{
private int f1;
private int f2;
public YS(float f1,float f2){
this.f1=f1;
this.f2=f2;
}
public float Fraction(){
f1=f1/f2+f1/f2;
f2=f1;
return f2;
}
.
.
.
.
.
public static void main(String arg0[]){
YS ys=new YS(10,20);
System.out.println("10/20"+ys.Fraction());
}
}

[此贴子已经被作者于2007-4-11 23:37:18编辑过]


[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-04-11 23:36
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
import java.util.Scanner;
class Fraction
{
private int f1;
private int f2;
public Fraction()
{
Scanner scan=new Scanner(System.in);
System.out.println("分子:");
f1=scan.nextInt();
System.out.println("分母:");
f2=scan.nextInt();
System.out.println("你输入的分数是:"+f1+"/"+f2);
}
private int Commul(int a,int b) //最小公倍数
{
int d;
d=(a>b)?a:b;
for(;d%a!=0||d%b!=0;d++)
{
}
return d;
}
public void Add(Fraction frac)
{
int num;
num=Commul(this.f2,frac.f2);
this.f1=this.f1*(num/this.f2)+frac.f1*(num/frac.f2);
this.f2=num;
}
public float getAdd1()
{
return (float)f1/f2;
}
public void getAdd2()
{
System.out.println(f1+"/"+f2);
}
}
public class Test
{
public static void main(String[] args)
{
float add;
System.out.print("请输入第一个分数的");
Fraction frac1=new Fraction();
System.out.print("请输入第二个分数的");
Fraction frac2=new Fraction();

frac1.Add(frac2);
add=frac1.getAdd1();

System.out.print("两个分数的和是:"+add+" or ");
frac1.getAdd2();
}
}


加法运算后,f1,f2的值就变了,如何再进行减法,除法和乘法???
没思路,求助
2007-04-12 01:39
xing_22
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-12
收藏
得分:0 
我自己试试先,再想想,呵呵,谢谢你们哦^_^
2007-04-12 08:51
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 

import java.io.*;

public class Fraction{
int f1,f2; //f1为分子,f2为分母

Fraction(int f1, int f2){
try{
if(f2==0){
System.out.println("分母不能为0,请重置分母值");
f2=System.in.read();
}
}catch(Exception ex){System.out.println(ex.toString());}
this.f1=f1;
this.f2=f2;

}
public int gongyueshu(int a, int b){ //求最大公约数方法
int r,temp;
if(a<b){
temp=a;
a=b;
b=temp;
}
while((r=a%b)!=0){
a=b;
b=r;
}
return b;
}
public int gongbeishu(int a,int b){ //求最小公倍数
return a*b/gongyueshu(a,b);
}
public void add(Fraction f1,Fraction f2){ //分数加法运算,f1,f2分别为两个分数实例
int fenzi,fenmu;
fenmu=gongbeishu(f1.f2,f2.f2);
fenzi=gongbeishu(f1.f2,f2.f2)/f1.f2*f1.f1+gongbeishu(f1.f2,f2.f2)/f2.f2*f2.f1;

System.out.println(f1.f1+"/"+f1.f2+"+"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));

}
public void minu(Fraction f1,Fraction f2){ //分数减法运算,f1,f2分别为两个分数
int fenzi,fenmu;
fenmu=gongbeishu(f1.f2,f2.f2);
fenzi=gongbeishu(f1.f2,f2.f2)/f1.f2*f1.f1-gongbeishu(f1.f2,f2.f2)/f2.f2*f2.f1;
System.out.println(f1.f1+"/"+f1.f2+"-"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));
}
public void muti(Fraction f1,Fraction f2){ //分数乘法运算,f1,f2分别为两个分数
int fenzi,fenmu;
fenzi=f1.f1*f2.f1;
fenmu=f1.f2*f2.f2;
System.out.println(f1.f1+"/"+f1.f2+"×"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));

}
public void devide(Fraction f1,Fraction f2){ //分数除法运算,f1,f2分别为两个分数
int fenzi,fenmu;
fenzi=f1.f1*f2.f2;
fenmu=f1.f2*f2.f1;
if(fenmu!=0)
System.out.println(f1.f1+"/"+f1.f2+"÷"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));
else
System.out.println("分母为0,无意义.");
}
public void fudian(Fraction f1) { //以浮点数打印分数
double result;
result=(double)f1.f1/(double)f1.f2;
System.out.println(f1.f1+"/"+f1.f2+"="+result);
}

public static void main(String args[]){
Fraction f1=new Fraction(1,5);
Fraction f2=new Fraction(1,2);
f1.add(f1,f2);
f1.minu(f1,f2);
f1.muti(f1,f2);
f1.devide(f1,f2);
f1.fudian(f1);
f2.fudian(f2);
}
}

[此贴子已经被作者于2007-4-13 13:35:40编辑过]


这个社会太复杂。。。
2007-04-13 13:33
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
3.提供两个分数相加的运算方法,结果分别存入f1和f2
4.提供两个分数相减的运算方法,结果分别存入f1和f2
5.提供两个分数相乘的运算方法,结果分别存入f1和f2
6.提供两个分数相除的运算方法,结果分别存入f1和f2


题目要求运算后的结果要分别存到 f1,f2里啊。你是新创立了两个变量fenzi,fenmu 啊
2007-04-13 14:01
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
那就再加两个变量,分别用于暂时存储fenzi fenmu不就行了。。。很好改的

这个社会太复杂。。。
2007-04-13 17:35
六芒星の詛咒
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-4-12
收藏
得分:0 
学习了~~~~~~~~

人如果不作出牺牲 就什么也得不到 为了得到某些东西就必须付出同等的代价 那就是等价交换原则
2007-04-13 21:49
快速回复:高手来帮帮忙啊,一个很简单的java问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018315 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved