【网易云课堂】Java语言程序设计进阶第一次作业总结

/*summary:这次作业提交的版本是由邓昌能指导的版本,刚开始自己没写出,主要有以下几个原因:
 * 1.刚开始的class Fraction后面加了一对括号(),以至于编译报错,但是好久都没有找到原因,
 *   影响的编程的心情,加上截止时间在即,慌了,
 *   下次在注意编程规范的同时,也要注意不要把所有事情任务都放在截止时间之前赶进度,
 *   这样既影响了心情,也影响了当天可能的进度安排,更要注意写代码要心平气和冷静
 * 2.因为这个函数方法没有用到,一直在纠结为什么要转成double
//    double toDouble()    
//    {
//        
//    }
    以后应当注意函数没用到就没用到,可以写在这里为了以后拓展,提交如果报错或者以后工作
    被打回来修改也可以到时候再加
  *3.因为对this没有理解透彻,总感觉这么赋值过去赋值过来不对劲,很混乱
  *4.面向对象的思想还没有转换过来,机械的认为对象都得这么new一下
     Fraction b = new Fraction(in.nextInt(),in.nextInt());
         因此,Fraction plus(Fraction r)中括号里面一直潜意识的认为Fraction是那个构造函数
        还一直纠结为什么只有一个参数,也没有想着参数还得要用括号

*/


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Fraction a = new Fraction(in.nextInt(),in.nextInt());
		Fraction b = new Fraction(in.nextInt(),in.nextInt());
		a.print();
		b.print();
		a.plus(b).print();
		a.multiply(b).plus(new Fraction(5,6)).print();
		a.print();
		b.print();
		in.close();
	}

}

class Fraction
{
//	int a,b;
	int up,down;
	double far;

//	构造一个a/b的分数。	
	Fraction(int up,int down)
	{
		this.up = up;
		this.down = down;
		gcd(up,down);
	}
	void gcd(int a,int b)
	{
		int divisor=1;
		while(b!=0)
		{
			int r = a % b;
			a = b;
			b = r;
		}
		divisor = a;
		up = up/divisor;
		down = down/divisor;
	}
//	将分数转换为double	
//	double toDouble()	
//	{
//		
//	}
//	将自己的分数和r的分数相加,产生一个新的Fraction的对象。
//	注意小学四年级学过两个分数如何相加的哈。    
	Fraction plus(Fraction r)	
	{
		int numerator = up*r.down + down*r.up;
		int denominator = down*r.down;
		return new Fraction(numerator, denominator);
	}
//	将自己的分数和r的分数相乘,产生一个新的Fraction的对象。
	Fraction multiply(Fraction r)
	{
		int numerator = up*r.up;
		int denominator = down*r.down;
		return new Fraction(numerator, denominator);
	}
//	将自己以“分子/分母”的形式输出到标准输出,并带有回车换行。
//	如果分数是1/1,应该输出1。
//	当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。
//	注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2。   
	void print()
	{
		if( up==down )
		{
			System.out.println("1");
		}
		else
		{
			System.out.println(up+"/"+down);
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值