山东理工大学java题目的ac题

根据提供的信息,我们可以总结出以下相关的Java知识点: ### 1. 导入包与类 在Java中,程序首先需要导入必要的包以便使用特定的功能。本案例中的代码使用了`java.util.*` 和 `java.math.*` 包,分别用于处理集合框架和数学运算。 - **`java.util.*`**:此包包含了处理集合(如List、Set等)的各种类以及实用工具类(如Scanner等)。 - **`java.math.*`**:此包提供了处理大数值的类(如BigInteger、BigDecimal等),这些类可以用来进行高精度计算。 ### 2. 类定义与对象创建 该示例代码定义了一个名为`S`的类,用于处理分数的加减乘除运算。此外,还定义了一个名为`Main`的公共类,其中包含`main`方法作为程序入口点。 - **类`S`**: - 定义了两个成员变量`h`和`g`。 - 实现了四个方法:`add`、`sub`、`cheng`、`chu`,分别对应分数的加法、减法、乘法和除法。 - 还实现了一个`hua`方法用于化简分数,即将分子分母都除以它们的最大公约数。 - **类`Main`**: - 在`main`方法中创建了一个`Scanner`对象来读取用户输入。 - 根据输入的符号(+、-、*、/)调用相应的`S`类的方法。 ### 3. 字符串操作 在`Main`类的`main`方法中,通过字符串操作实现了对用户输入的解析,以便获取分数的分子和分母。 - 使用`split`方法分割字符串:例如,`s1.split("\\+")`将字符串`s1`按照"+"符号分割成一个数组。 - 使用`split`方法分割后的数组元素可以通过`parseInt`方法转换为整数类型,用于后续的计算。 ### 4. 条件判断与流程控制 - 使用`if`语句进行条件判断,根据不同的输入符号调用`S`类的不同方法。 - 在条件判断中使用了`else if`结构,确保只执行一种情况下的操作。 ### 5. 数学运算 - **最大公约数**:在`S`类中的`hua`方法里,通过辗转相除法求两个数的最大公约数,进而简化分数。 - **四则运算**:在`add`、`sub`、`cheng`、`chu`方法中实现了分数的基本运算逻辑,包括分子分母的计算和化简。 ### 6. 输出结果 - 在`main`方法中,根据计算结果输出化简后的分数或者其值。如果结果是整数,则直接输出整数值;如果是分数形式,则输出“分子/分母”。 ### 总结 这段代码主要展示了Java语言中处理字符串、数学运算、面向对象编程(包括类的设计和实例化)以及控制流等方面的基本用法。通过这个例子,可以了解到如何利用Java编写一个简单的分数计算器程序,涉及到了多个重要的Java基础知识点。























***********************************************************************************************************************
1
***********************************************************************************************************************
分数四则运算
import java.util.*;
import java.math.*;
class S{
public int h, g;
S add(int a,int b,int c,int d){
int sum = a*d+b*c;
return ( this.hua( sum, (b*d) ) );
}
S sub(int a,int b,int c,int d){
int sum = a*d-b*c;
return ( this.hua( sum, (b*d) ) );
}
S cheng(int a,int b,int c,int d){
int sum = a*c;
return ( this.hua( sum, (b*d) ) );
}
S chu(int a,int b,int c,int d){
int sum = a*d;
return ( this.hua( sum, (c*b) ) );
}
S hua(int n, int m){
int mm=Math.max(Math.abs(n), Math.abs(m));
int nn=Math.min(Math.abs(n), Math.abs(m));
int r;
r=mm%nn;
mm=nn;
nn=r;
}
h = n/mm;
g = m/mm;
return (this);
}
}
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while ( scanner.hasNext() ){
String s1 = scanner.next();
char[] ch1 = s1.toCharArray();
int temp = 0, i, j;
for ( i = 0;i < ch1.length; i++ ){
if ( ch1[i] == '+' )
temp = 1;
else if ( ch1[i] == '-' )
temp = 2;
else if ( ch1[i] == '*' )
temp = 3;
else if ( ch1[i] == '\\' )
temp = 4;
}
if ( temp == 1 ){
String[] s2 = s1.split("\\+");
String[] s3 = s2[0].split("\\/");
剩余31页未读,继续阅读

- 粉丝: 54
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源



- 1
- 2
前往页