20194634+第二次作业四则运算

一、需求分析 

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

   (2)题目数量可定制

        (3)相关参数可控制

              是否包含乘法和除法

            操作数数值范围可控(如操作数 在100以内   还是1000以内)

            操作数是否含负数    

     (4)生成的运算题存储到外部文件text.txt中

二、功能设计

  基本功能:自动生成四则运算试题

  扩展功能:(1)算出答案

       (2)用户可以自己选择用加减,乘除,正负,整分

三、设计实现

  设计一个Test类,包括了变量的定义,变量的赋值,判断语句,循环等,最后进行测试。

四、测试运行

  1.包含加减,不含正负,选择数的范围和题目数量。

      2.包含加减乘除,不含正负,选择数的范围和题目数量。

       3.只包含加减,含正负,选择数的范围和题目数量。

       4.包含加减乘除,含正负,选择数的范围和题目数量。

五、代码片段

1.控制操作代码块。

// 进行输入条件
        Scanner reader = new Scanner(System.in);
        System.out.println("请输入题目数量");
        count = reader.nextInt();
        System.out.println("请输入题目范围,100or1000");
        fanwei = reader.nextInt();
        System.out.println("请输入是否有负数,0为无负数,1为有负数");
        fushu = reader.nextInt();
        System.out.println("请输入是否带有乘除法,0无1有");
        p1 = reader.nextInt();
        
        for (i = 0; i < count; i++) {
            String r1 = "";// 如有负数,且负数为num1,则有括号
            String r2 = "";// 如有负数,且负数为num2,则有括号
            p2 = (int) (Math.random() * 4);//
            char jia = '+';
            char jian = '-';
            char cheng = '*';
            char chu = '/';
            char j=' ';
            if (fushu == 0) {
                num1 = (int) (Math.random() * fanwei);
                r1= ""+num1;
                num2 = (int) (Math.random() * fanwei);
                r2 = "" + num2;
            } else {
                num1 = (int) (Math.random() * fanwei * (Math.random() > 0.5 ? 1: -1));
                if (num1 < 0) {
                    r1 = "(" + num1 + ")";
                } else {
                    r1 = "" + num1;
                }
                num2 = (int) (Math.random() * fanwei * (Math.random() > 0.5 ? 1: -1));
                if (num2 < 0) {
                    r2 = "(" + num2 + ")";
                } else {
                    r2 = "" + num2;
                }
            }
// 判断是否有乘除法
            switch (p2) {
            case 0:j='+';
                sum = num1 + num2;
                if (num1 + num2 <= 100) {
                   
                    break;
                }
            case 1:j='-';
                sum = num1 - num2;
                if (num1 - num2 < 100) {
                    
                }
                break;
            case 2:j='*';
                sum = num1 * num2;
                
                switch (p1) {
                case 1:
                    if (num1 * num2 <= 100) {
                       
                        break;
                    }
                case 0:
                    i--;
                    continue;
                }
                break;
            case 3:j='/';
                sum = num1 / num2;
                switch (p1) {
                case 1:
                    if (num1 / num2 <= 100) {
                       
                        break;
                    }
                case 0:
                    i--;
                    continue;
                }
                break;
            }

2.生成的运算题存储到外部文件test.txt中代码块。

//第一部分
PrintWriter over;
        try{
        over=new PrintWriter("E:/test.txt");//输出的路径和文件名
        }catch(FileNotFoundException e){throw new RuntimeException(e);} 
//第二部分
over.println("第" + (i + 1) + "题:" + r1 + "" + j
                    + "" + r2 + "=" + sum + "");
            over.flush();//

 

六、总结

  首先整理好思路,把基本框架建立出来。进一步利用循环,选择,判断等方法书写程序。最后整体测试,改错。我在具体编写代码过程中估计和实践相差巨大,因为在编写代码时有不懂得地方查阅了以下资料,导致最后与估计事件相差过多。

七、PSP

PSP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

30

40

·       Estimate

·  估计这个任务需要多少时间,并规划大致工作步骤

15

20

Development

开发

480

660

··       Analysis

  需求分析 (包括学习新技术)

10

20

·       Design Spec

·  生成设计文档

0

0

·       Design Review

·  设计复审 (和同事审核设计文档)

0

0

·       Coding Standard

  代码规范 (为目前的开发制定合适的规范)

5

5

·       Design

  具体设计

15

20

·       Coding

  具体编码

480

600

·       Code Review

·  代码复审

10

10

·       Test

·  测试(自我测试,修改代码,提交修改)

20

50

Reporting

报告

30

60

··       Test Report

·  测试报告

20

25

·       Size Measurement

  计算工作量

0

0

·       Postmortem & Process Improvement Plan

·  事后总结 ,并提出过程改进计划

10

15

  

  

posted @ 2019-09-15 10:35  李李李同學  阅读(213)  评论(2编辑  收藏  举报