【Java】日常测试记录2-设计一个分数类

题目描述

设计一个分数类,完成以下功能:1、加减乘除运算;2、返回该分数的值(小数形式);3、求该分数的倒数(分数形式)。

注意: 输入不保证是最简分数,但输出要保证。测试用例保证分子,分母均不为0。

输入

只有一行,为4个用空格分隔的整数,依次代表分数a的分子、分母,分数b的分子、分母。

输出

共8行,依次为a,b,a+b,a-b,a*b,a/b,1/a,a(小数形式,保留1位小数)。具体格式见输出样例,如果结果为整数仍然按分数形式输出,此时分母为1,如果结果为负数,则只能在分子中出现负号

样例输入

7 8 5 6

样例输出

7/8
5/6
41/24
1/24
35/48
21/20
8/7
0.9
import java.util.Scanner;

class fen{
	int up,down;
	fen(int u,int p){
		up=u;
		down=p;
		simplification();
		eq();
	}
	
	public int getup(){
		return up;
	}

	public int getdown(){
		return down;
	}

	//最大公约数
	public int Gcd(int u,int d) {
		if (u%d==0){
			return d;
		}
		return Gcd(d,u%d);
	}

	//最简化
	void simplification(){
		int gcd =Gcd(up, down);
		up/=gcd;
		down/=gcd;
	}
	
	//符号调整
	void eq(){
		if(down<0) {
			down=0-down;
			up=0-up;
		}
	}
	
	//求和
	public fen add(fen Fb){
		int upp=(up*Fb.getdown())+(Fb.getup()*down);
		int doo=down*Fb.getdown();
		return new fen(upp, doo);
	}
	
	//差
	public fen sub(fen Fb){
		int upp=(up*Fb.getdown())-(Fb.getup()*down);
		int doo=down*Fb.getdown();
		return new fen(upp, doo);
	}

	//积
	public fen mul(fen Fb){
		int upp=(up*Fb.getup());
		int doo=down*Fb.getdown();
		return new fen(upp, doo);
	}
	
	//商
	public fen div(fen Fb){
		int upp=(up*Fb.getdown());
		int doo=down*Fb.getup();
		return new fen(upp, doo);
	}
	
	//倒
	void reci(){
		int upp=down;
		int doo=up;
		fen aa=new fen(upp, doo);
		aa.show();
	}
	
	//小数
	void tran(){
		float itself=(float)up/down;
		String itselff = String.format("%.1f",itself);
		System.out.println(itselff);	
	}	
	
	void show(){
		System.out.println(up+"/"+down);
	}
}

public class Main {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		int x,y,z,zz;
		x=input.nextInt();
		y=input.nextInt();
		z=input.nextInt();
		zz=input.nextInt();
		fen a=new fen(x,y);
		fen b=new fen(z,zz);
		
		a.show();
		b.show();
		a.add(b).show();
		a.sub(b).show();
		a.mul(b).show();
		a.div(b).show();
		a.reci();
		a.tran();
	}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: // 在MyPackage文件夹下创建一个名为Date的 package MyPackage; public class Date { private int year; private int month; private int day; public Date(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } @Override public String toString() { return year + "-" + month + "-" + day; } } // 在MyPackage文件夹下创建一个名为DateTest的测试 package MyPackage; public class DateTest { public static void main(String[] args) { Date date = new Date(2021, 10, 18); System.out.println(date.toString()); } } ### 回答2: 在Java设计一个日期及其测试,可以将日期放在名为"MyPackage"的包中。 日期包含以下属性和方法: - 属性:年(year),月(month),日(day) - 方法: - 构造方法:为年、月、日赋初值 - 获取年、月、日的方法:分别返回年、月、日的值 - 判断是否为闰年的方法:根据年份判断是否为闰年,返回布尔值 - 显示日期的方法:以"年-月-日"的格式将日期输出 实现代码如下: ```java package MyPackage; public class Date { private int year; private int month; private int day; public Date(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public int getMonth() { return month; } public int getDay() { return day; } public boolean isLeapYear() { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return true; } return false; } public void display() { System.out.println(year + "-" + month + "-" + day); } } ``` 测试的作用是创建日期对象并测试日期的各种方法: ```java package MyPackage; public class DateTest { public static void main(String[] args) { Date date = new Date(2022, 12, 31); System.out.println("年:" + date.getYear()); System.out.println("月:" + date.getMonth()); System.out.println("日:" + date.getDay()); System.out.println("是否为闰年:" + date.isLeapYear()); date.display(); } } ``` 以上代码将输出如下结果: ``` 年:2022 月:12 日:31 是否为闰年:false 2022-12-31 ``` 通过将日期放在"MyPackage"包下,可以更好地组织和管理代码,使其更具可读性和可维护性。 ### 回答3: 在Java设计一个日期(Date)及其测试(TestDate),并将日期放在MyPackage中。 首先,在MyPackage包中创建一个名为Date的Java。该应具有以下属性和方法: 1. 私有变量year,month,day分别表示年、月、日; 2. 一个构造函数,用于初始化日期的年、月、日; 3. get方法用于获取年、月、日; 4. set方法用于设置年、月、日; 5. 一个toString方法,返回日期的字符串表示形式,例如"2021-01-01"。 下面是Date的代码示例: ```java package MyPackage; public class Date { private int year; private int month; private int day; public Date(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } @Override public String toString() { return String.format("%d-%02d-%02d", year, month, day); } } ``` 然后,在同一个包(MyPackage)中创建一个名为TestDate的测试。在这个中,我们可以创建一个Date对象,并调用其各种方法进行测试。 下面是TestDate的代码示例: ```java package MyPackage; public class TestDate { public static void main(String[] args) { Date date = new Date(2021, 1, 1); System.out.println("Year: " + date.getYear()); System.out.println("Month: " + date.getMonth()); System.out.println("Day: " + date.getDay()); System.out.println("Date: " + date.toString()); date.setYear(2022); date.setMonth(12); date.setDay(31); System.out.println("Updated Date: " + date.toString()); } } ``` 通过以上代码,我们可以创建一个Date对象,设置和获取其年、月、日,并打印出日期的字符串表示形式。然后,我们可以更新日期对象的年、月、日,并再次打印出更新后的日期。 以上就是设计一个日期及其测试,并将日期放在MyPackage包中的方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值