2023/11/8 每日总结

今天完成了软件构造课后作业

请在课上练习的基础上,实现输出加减法混合的运算题目列表。请提交代码及运行效果截图。

使用面向对象的设计原则,设计源代码

复制代码
package org.example;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("请输入生成的运算符 1 + 2 - 3加减混合");
        Scanner scanner=new Scanner(System.in);
        int operator = scanner.nextInt();
        System.out.println("请输入生成的题目数");
        int num=scanner.nextInt();
        Exercise exercise = new Exercise(num);
        SaveCsv saveCsv = new SaveCsv();
        if(operator==1){
            exercise.generateAdd();
            exercise.printQuestion();
        }else if (operator==2){
            exercise.generateSub();
            exercise.printQuestion();

        }else{
            exercise.generateMixed();
            exercise.printQuestion();
        }
        //saveCsv.save(exercise.getArrayList());
        //System.out.println("结果保存在"+saveCsv.getPath());
    }
}




package org.example;

public class Equation {
    private int num1;
    private int num2;
    private int answer;
    private char operator;

    public int getNum1() {
        return num1;
    }

    public void setNum1(int num1) {
        this.num1 = num1;
    }

    public int getNum2() {
        return num2;
    }

    public void setNum2(int num2) {
        this.num2 = num2;
    }

    public int getAnswer() {
        return answer;
    }

    public void setAnswer(int answer) {
        this.answer = answer;
    }

    public char getOperator() {
        return operator;
    }

    public void setOperator(char operator) {
        this.operator = operator;
    }
    public Boolean isequal(Equation e){
        if(this.num1==e.num1&&this.num2==e.num2&&this.operator==e.operator){
            return true;
        }else if (this.num2==e.num1&&this.num1==e.num2&&this.operator==e.operator){
            return true;
        }
        else{
            return false;
        }
    }
}



package org.example;

import java.util.ArrayList;
import java.util.Random;

public class Exercise {
    private ArrayList<Equation> arrayList= new ArrayList<Equation>();
    private int num;//要生成的习题数量

    public Exercise(int num) {
        this.num = num;
    }

    public ArrayList<Equation> getArrayList() {
        return arrayList;
    }

    public void setArrayList(ArrayList<Equation> arrayList) {
        this.arrayList = arrayList;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
    public Boolean checkRepeat(Equation equation){
        for(Equation e:this.arrayList){
            if(e.isequal(equation)){
                return true;
            }
        }
        return false;
    }
    public void generateAdd() {
        int n=0;//生成的题数
        while(num>n){
            Equation equation = new Equation();
            Random random = new Random();
            equation.setNum1(random.nextInt(100));
            equation.setNum2(random.nextInt(100));
            equation.setAnswer(equation.getNum1()+equation.getNum2());
            equation.setOperator('+');
            if (!checkRepeat(equation)){
                arrayList.add(equation);
                n++;
            }

        }
    }

    public void generateSub() {
        int n=0;//生成的题数
        while(num>n){
            Equation equation = new Equation();
            Random random = new Random();
            equation.setNum1(random.nextInt(100));
            equation.setNum2(random.nextInt(100));
            equation.setAnswer(equation.getNum1()-equation.getNum2());
            equation.setOperator('-');
            if (!checkRepeat(equation)){
                arrayList.add(equation);
                n++;
            }

        }
    }
    public void generateMixed() {
        int n=0;//生成的题数
        while(num>n){
            Equation equation = new Equation();
            Random random = new Random();
            equation.setNum1(random.nextInt(100));
            equation.setNum2(random.nextInt(100));
            equation.setAnswer(equation.getNum1()-equation.getNum2());
            equation.setOperator(random.nextInt(2)==1?'+':'-');
            if (!checkRepeat(equation)){
                arrayList.add(equation);
                n++;
            }

        }
    }
    public void printQuestion(){
        //System.out.println(arrayList.size());
        for(Equation e:arrayList){
            System.out.println(String.valueOf(e.getNum1())+" "+e.getOperator()+" "+String.valueOf(e.getNum2())+" =");
        }
    }

}
复制代码

 

posted @   樱花开到我身边  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示