Java语言程序设计进阶----第一周作业

原创 2015年07月07日 17:09:34

1周编程题:

1分数(10分)

题目内容:

设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。

这个类的构造函数是:

Fraction(int a, int b)

    构造一个a/b的分数。

这个类要提供以下的功能:

double toDouble();

    将分数转换为double

Fraction plus(Fraction r);

    将自己的分数和r的分数相加,产生一个新的Fraction的对象。注意小学四年级学过两个分数如何相加的哈。

Fraction multiply(Fraction r);

    将自己的分数和r的分数相乘,产生一个新的Fraction的对象。

void print();

    将自己以分子/分母的形式输出到标准输出,并带有回车换行。如果分数是1/1,应该输出1。当分子大于分母时,不需要提出整数部分,即31/30是一个正确的输出。

 

注意,在创建和做完运算后应该化简分数为最简形式。如2/4应该被化简为1/2

 

你写的类要和以下的代码放在一起,并请勿修改这个代码:

 

importjava.util.Scanner;

 

public class Main {

 

    publicstaticvoid main(String[]args) {

       Scannerin =new Scanner(System.in);

       Fractiona =new Fraction(in.nextInt(),in.nextInt());

       Fractionb =new Fraction(in.nextInt(),in.nextInt());

       a.print();

       b.print();

       a.plus(b).print();

       a.multiply(b).plus(newFraction(5,6)).print();

       a.print();

       b.print();

       in.close();

    }

 

}

注意,你的类的定义应该这样开始:

 

class Fraction {

 

也就是说,在你的类的class前面不要有public

 

输入格式:

程序运行时会得到四个数字,分别构成两个分数,依次是分子和分母。

 

输出格式:

输出一些算式。这些输入和输出都是由Main类的代码完成的,你的代码不要做输入和输出。

 

输入样例:

2 4 1 3

 

输出样例:

1/2

1/3

5/6

1

1/2

1/3

 

时间限制:500ms内存限制:32000kb

 

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();
	}
}
class Fraction{
	
	private int a;
	private int b;
	
	public Fraction(int a,int b){
		this.a = a; 
		this.b = b;	
	}
	
	public Fraction plus(Fraction r){
		int n = r.a * this.b + r.b*this.a;
		int fm = r.b * b;
		return  new Fraction(n,fm);	
	}
	
	public Fraction multiply(Fraction r){
		int n = r.a*this.a;
		int m = r.b*this.b;
		return new Fraction(n,m);
	}
	
	public double toDouble(){
		return 1.0*a/b; 
	}
	
	public int getReduce(int up, int down){
		int min;
		int t = 1;
		min = (up<down) ? up:down;
		for(int i=1; i<=min; i++){
			if (up % i == 0 && down % i == 0)
				t = i;
		}	
		return t;
	}	
	public void print(){
		int t = getReduce(a,b);
		int fz = a/t;
		int fm = b/t;
		if(fm==fz)
			System.out.println(fm/fz);
		else
			System.out.println(fz+"/"+fm);
	}	
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java语言程序设计进阶----第三周作业

1查找里程(10分) 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程。 注意:任何两个城市之间的里程都已经给出...

Java语言程序设计进阶----第四周作业

import java.util.ArrayList; public class Main{ public static void main(){ Database db = new Database...

java进阶之路

第一阶段 技术名称 技术内容 J2SE (java基础部分) java开发前奏 计算机基本原理,Java语言发展简史...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java 基础题之 分数

分数(10分) 题目内容: 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。 这个类的构造函数是: Fraction(int a, int b)...

循环队列(java实现)

package com.fcy.dataStruct; import java.util.Arrays; class LoopQueue{ private int DEFAULT_SIZE=10;...
  • fcytxdy
  • fcytxdy
  • 2014年09月07日 19:41
  • 1531

记错??Java语言程序设计进阶----第一周作业

第1周编程题: 1分数(10分) 题目内容: 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。 这个类的构造函数是: Fraction(int a, i...

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

Java 入门作业总结

1分数- Java语言程序设计进阶-Week1

1分数(10分) 题目内容: 设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。 这个类的构造函数是: Fraction(int a, int b) ...

程序设计入门—Java语言_第四周编程作业

1素数和 题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0 输入格式: 两个整数,第一个表示n,第二个表示m。 输出格式: 一个整数,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java语言程序设计进阶----第一周作业
举报原因:
原因补充:

(最多只允许输入30个字)