首页 > 其他 > 详细

20194704自动生成四则运算题第一版报告

时间:2019-09-16 19:01:36      阅读:82      评论:0      收藏:0      [点我收藏+]

一,需求设计

需要自动生成四则运算(+ - *  /),运算结果也在100以内,剔除重复算式,生成的运算题存储到外部文件result.txt中

二,功能设计

基本功能:自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

扩展功能:剔除重复算式,2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

                  题目数量可定制

                  相关参数可控制  :是否包含乘法和除法

                                           操作数数值范围可控

                                           操作数是否含负数  

三,设计实现  

 
 System.out.println("请输入题目的数量:");
        scanner=new Scanner(System.in);
        x=scanner.nextInt();
        int rigthanswer[]=new int [x];
        int youranswer[]=new int [x];
        System.out.println("请输入数值的最大范围:");
        y=scanner.nextInt();
        for(i=0;i<x;i++){
            int a=(int)(Math.random()*y);//随机生成一个整数
            int b=(int)(Math.random()*y);//随机生成一个整数
            int c=(int)(Math.random()*3);//随机生成一个0-3的整数,生成运算符
            if(c==0)
            {//加法
                d1=a+b;
                System.out.print(a+"+"+b+"=");
            }
            if(c==1)
            {//减法
                if(a>=b){
                    d1=a-b;
                    System.out.print(a+"-"+b+"=");
                }else {d1=b-a;
                System.out.print(b+"-"+a+"=");
                }
            }
            if(c==2)
            {//乘法
                d1=a*b;
                System.out.print(a+"*"+b+"=");
            }
            if(c==3)
            {//除法
                d1=a/b;
                System.out.print(a+"/"+b+"=");
            }
            System.out.println("请输入你的答案:");
            q=scanner.nextInt();
            youranswer[i]=q;
            rigthanswer[i]=d1;
        }
        System.out.print("\n");
        System.out.println("显示答案请输:1");
        if(scanner.nextInt()==1){
            System.out.println("正确答案:\n");

四,测试运行

请选择式子类型: 1、整数,2、分数
1
请输入题目的数量:
5
请输入数值的最大范围:
30
13+2=请输入你的答案:
15
13-3=请输入你的答案:
10
24+7=请输入你的答案:
32
25+14=请输入你的答案:
39
27-11=请输入你的答案:
16

显示答案请输: 1
1
正确答案:

15
10
31
39
16
答对4题答错1题

请选择式子类型: 1、整数,2、分数
2
请输入题目的数量:
5
请输入分母数值的最大范围:
100
17/40+2/99=请输入你的答案:
123/ 253
11/31-51/72=请输入你的答案:
34/64
14/19-13/20=请输入你的答案:
11/12
66/ 76+75/100=请输入你的答案:
345/456
28/40*30/ 64=请输入你的答案:
123/456

显示答案请输入:1
1
1763/3960
-789/2232
33/ 380
123/ 76
21/64
答对0题答错5题

五,代码片段

1.计算作对的题目与做错的题

 if(scanner.nextInt()==1){
                for(i=0;i<x;i++){
                System.out.print(rigthanswer[i]);
                System.out.println("\t");
                if(youranswer[i]==rigthanswer[i]){
                    rigthN++;//计算做对的题目
                }else{
                    wrongN++;//计算做错的题目
                }
                }
                System.out.print("答对"+rigthN+"题");
                System.out.print("答错"+wrongN+"题");
            }
        }   
    }

2.随机生成整数

 if(scanner.nextInt()==1){
                for(i=0;i<x;i++){
                System.out.print(rigthanswer[i]);
                System.out.println("\t");
                if(youranswer[i]==rigthanswer[i]){
                    rigthN++;//计算做对的题目
                }else{
                    wrongN++;//计算做错的题目
                }
                }
                System.out.print("答对"+rigthN+"题");
                System.out.print("答错"+wrongN+"题");
            }
        }   
    }

3.四则运算

  if(c==0){  //加法
                    Z=x1*m2+x2*m1;
                    M=m1*m2;
                    d=simplification(Z,M);
                    System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"=");
                }
                if(c==1){   //减法
                    Z=x1*m2-x2*m1;
                    M=m1*m2;
                    d=simplification(Z,M);
                    System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"=");
                }
                if(c==2){   //乘法
                    Z=x1*x2;
                    M=m1*m2;
                    d=simplification(Z,M);
                    System.out.print(x1+"/"+m1+"*"+x2+"/"+m2+"=");
                }
                if(c==3){   //除法
                    Z=m1*x2;
                    M=m2*x1;
                    d=simplification(Z,M);

六,总结

因为自己没有基础,所以好多地方都不会,问了同学一点点完成的,还有很多等待我学习

七、 尝试撰写PSP

PSP2.1 任务内容 计划共完成需要的时间(h) 实际完成需要的时间(h)
Planning 计划 8 48
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 8 48
 Development  开发  4  24
 Analysis  需求分析 (包括学习新技术)  30min  30min
 Design Spec  生成设计文档  0  0
 Design Review  ·  设计复审 (和同事审核设计文档)  0  0
 Coding Standard  代码规范 (为目前的开发制定合适的规范)  0  0
  Design    具体设计  30min  30min
 Coding   具体编码  8  28
 Code Review  代码复审  3  8
 Test  测试(自我测试,修改代码,提交修改)  1  2
 Reporting  报告  1  30min
  Test Report  测试报告  30min  50min

 

20194704自动生成四则运算题第一版报告

原文:https://www.cnblogs.com/conghui19/p/11528529.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!