软件构造-输出加减法混合的运算题目列表

package ruanjiangouzao;
import java.util.*;
public class thirdhomework {
        static int NUM=50,RANGE=100;
        static Set<Quests> set = new HashSet<Quests>();
        static Set<String> st = new HashSet<String>();

        private static class Quests{
            int x,y,z;
            char op;

            public Quests(int x, int y, char op,int z) {
                this.x = x;
                this.y = y;
                this.op = op;
                this.z=z;
            }

            public String getQuests(){
                return String.format("%d"+op+"%d=",x,y);
            }
            public int getAnswer(){
                return z;
            }
        }
        
        private static void showTitle() {
            System.out.println(String.format("----------- 程序输出50道100以内的加减法运算的口算题 ------------"));
        }

        //生成随机数
        private static void geneQuests() { 
            Random random = new Random(System.nanoTime());
            char op[]={'+','-'};
            int num=1;
            while(num<=NUM){
                int x=random.nextInt(RANGE);
                int y= random.nextInt(RANGE);
                int idx= random.nextInt(2);
                int z=operate(x,y,op[idx]);
                if(ck(x,op[idx],y,z)){
                    continue;
                }
                st.add(""+x+op[idx]+y);
                Quests quests = new Quests(x, y, op[idx],z);
                set.add(quests);
                num++;
            }
        }
        
        //生成随机加减符号
        private static int operate(int x, int y, char op) {
            if(op=='+'){
                return x+y;
            }else{
                return x-y;
            }
        }

        //判断口算题答案是否在0~100范围内
        private static boolean ck(int x,char op,int y,int z) {
            return st.contains(""+x+op+y)&&z>=0&&z<=RANGE;
        }

        //显示随机口算题
        private static void showQuests() {
            System.out.println("题目");
            int num=1;
            for(Quests quests:set){
                System.out.println(Integer.toString(num)+":"+quests.getQuests());
                num++;
            }
        }

        //显示答案
        private static void showAnswer() {
            System.out.println("答案");
            int num=1;
            for(Quests quests:set){
                System.out.println(Integer.toString(num)+":"+quests.getAnswer());
                num++;
            }
        }
        
        //主函数
        public static void main(String[] args) { 
            showTitle();
            geneQuests();
            showQuests();
            showAnswer();
        }
}

 

posted @ 2022-09-10 16:02  今天又双叒叕在敲代码  阅读(68)  评论(0编辑  收藏  举报