
项目一小学生算术练习系统1.1 需求分析支持 − × ÷ 四种运算操作数涵盖整数、小数、分数四种难度梯度简单 → 中等 → 困难 → 专家随机出题、按键提交、实时反馈、错题回顾计时计分进度条显示1.2 架构设计采用 CardLayout 实现三页切换欢迎页 → 游戏页 → 结果页避免多窗口跳转带来的状态同步问题。核心类职责Fraction封装分数的加减乘除与约分支持带分数解析Question策略模式生成不同难度的题目GameUI界面与逻辑解耦专注事件分发ArithmeticGame程序入口1.3 程序界面屏幕截图 2026-07-01 205846屏幕截图 2026-07-01 205925屏幕截图 2026-07-01 2102151.4 完整代码Fraction.javaimport java.util.Objects;/**分数类支持加减乘除、约分、带分数/假分数转换*/public class Fraction {private final int numerator;private final int denominator;public Fraction(int numerator, int denominator) {if (denominator 0) {throw new IllegalArgumentException(“分母不能为零”);}if (denominator 0) {numerator -numerator;denominator -denominator;}int gcd gcd(Math.abs(numerator), Math.abs(denominator));this.numerator numerator / gcd;this.denominator denominator / gcd;}public Fraction(int whole) {this(whole, 1);}private int gcd(int a, int b) {while (b ! 0) {int temp b;b a % b;a temp;}return a;}public Fraction add(Fraction other) {int num this.numerator * other.denominator other.numerator * this.denominator;int den this.denominator * other.denominator;return new Fraction(num, den);}public Fraction subtract(Fraction other) {int num this.numerator * other.denominator - other.numerator * this.denominator;int den this.denominator * other.denominator;return new Fraction(num, den);}public Fraction multiply(Fraction other) {return new Fraction(this.numerator * other.numerator, this.denominator * other.denominator);}public Fraction divide(Fraction other) {if (other.numerator 0) throw new ArithmeticException(“除以零”);return new Fraction(this.numerator * other.denominator, this.denominator * other.numerator);}public double toDouble() {return (double) numerator / denominator;}Overridepublic String toString() {if (denominator 1) return String.valueOf(numerator);if (Math.abs(numerator) denominator) {int whole numerator / denominator;int rem Math.abs(numerator % denominator);if (rem 0) return String.valueOf(whole);return whole “” rem “/” denominator;}return numerator “/” denominator;}Overridepublic boolean equals(Object o) {if (this o) return true;if (!(o instanceof Fraction)) return false;Fraction other (Fraction) o;return this.numerator other.numerator this.denominator other.denominator;}Overridepublic int hashCode() {return Objects.hash(numerator, denominator);}public int getNumerator() { return numerator; }public int getDenominator() { return denominator; }}