第二次作业2

自己取一个大气又可爱的标题

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 500 1350
• Estimate • 估计这个任务需要多少时间 700 1100
Development 开发 460 700
• Analysis • 需求分析 (包括学习新技术) 40 60
• Design Spec • 生成设计文档 30 50
• Design Review • 设计复审 40 65
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 40 70
• Design • 具体设计 650 700
• Coding • 具体编码 700 800
• Code Review • 代码复审 60 90
• Test • 测试(自我测试,修改代码,提交修改) 80 120
Reporting 报告 30 40
• Test Repor • 测试报告 60 80
• Size Measurement • 计算工作量 20 40
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 40 55
合计 1350

二、需求分析

我通过百度查资料的方式了解到,小学3年级数学有如下的几个特点:

  • 特点1
    加减乘除混合运算
  • 特点2
    -九九乘法表内的乘除

经过分析,我认为,这个程序应当:

在作业一上新增带括号的四则混合运算。

三、设计

1. 设计思路

-判断输入的题目数量和年级数字是否符合规范
-随机数的生成
-调用函数实现不同年级不同随机题目生成
-把运算符存进数组中
-打印结果及output.txt上

2. 实现方案

写出具体实现的步骤

  • 准备工作:先在Github上创建仓库,克隆到本地,让队友FOK我的仓库
    -技术关键点:输出至txt,还有加入四则混合运算。

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
我先创建文件,然后通过创建数组的方式把变量设置好,然后用byte[] m = e.getBytes(); 以及in.write(m);的比特流的方式输出TXT文件

1. 调试日志

记录编码调试的日志,请记录下开发过程中的 debug 历程

  • 在弄混合运算的时候没有注意优先级的使用导致运行有问题

2. 关键代码

private static void jiajian(int count[]) throws IOException {
    File file =new File("out.txt");
     FileWriter fw = new FileWriter(file);
     BufferedWriter bw = new BufferedWriter(fw);
    int [] as = new int[count[0]+5];
    int [] bs = new int[count[0]+5];
    char [] cs = new char[count[0]+5];
    int [] ds = new int[count[0]+5];
    
    for(int i =1;i<=count[0];i++) {             //n循环,有n道题
        int a=(int)(Math.random()*100+1);   //随机生成100以内的数字
        as[i] = a;                          //把a存入数组
        //bw.write(String.valueOf(a));      //向文本输入a值  


        int c=(int)(Math.random()*100+1);   //判断符号并且存入
        {
            if(c%2==1) {
                //bw.write(String.valueOf("-"));
                cs[i] = '-';
            }
            else  {
                //bw.write(String.valueOf("+"));
                cs[i] = '+';
                }
        }
        
        
        int b=(int)(Math.random()*100+1);   //b值
        //bw.write(String.valueOf(b));
        bs[i] = b;
        
        if(c%2==1 && a<b) {
            int answer = a+b;
            cs[i]='+';
            ds[i]=answer;
        }
        
        else if(c%2==1 ) {
            int answer = a-b;
            ds[i] = answer;
            //System.out.print("("+i+")"+a+"-"+b+"="+answer+"\n");
            //bw.write(String.valueOf("="+answer));
            //bw.newLine();
        }
        else {
            int answer =a+b;
            ds[i] = answer;
        //  System.out.print("("+i+")"+a+"+"+b+"="+answer+"\n");
        //  bw.write(String.valueOf("="+answer));
        //  bw.newLine();
        }
    }



    for(int i=1;i<=count[0];i++) {
        System.out.print(as[i]);
        bw.write(String.valueOf(as[i]));    
        System.out.print(cs[i]);
        bw.write(String.valueOf(cs[i]));    
        System.out.println(bs[i]);
        bw.write(String.valueOf(bs[i]));
        bw.newLine();
    
System.out.println("-------------标准答案--------------");
    bw.write(String.valueOf("-------------标准答案--------------"));
    bw.newLine();
    
    
    for( i=1;i<=count[0];i++) {
        System.out.print(as[i]);
        bw.write(String.valueOf(as[i]));
        System.out.print(cs[i]);
        bw.write(String.valueOf(cs[i]));
        System.out.print(bs[i]);
        bw.write(String.valueOf(bs[i]));
        System.out.println("="+ds[i]);
        bw.write(String.valueOf("="+ds[i]));
        bw.newLine();
    
    bw.close();
    fw.close();
    }
    }
}

3. 代码规范

请给出本次实验使用的代码规范:

手动处理异常,不抛出。

合理利用开辟的空间
进行适当合理的代码注释,方便理解,修正

代码中不能使用拼音与英文混合的方式,更不允许直接使用中文的方式。

并自己检查代码是否符合规范

五、测试

请思考并记录你认为必要的测试点,并记录测试用例与测试结果

代码没添加混合运算还可以运行,弄完到最后运行不出来了....

六、总结

请总结过程中的教训和经验,思考
我在其中感觉到这次作业增加的难度还是对于我来说真的写不了,没有思绪,直到百度了解许多东西还有记起了以前老师教过的东西,才逐渐搞出点东西,感觉自己还需要多理解代码意义还有多实践去打代码,欠缺太多敲代码的过程了。

猜你喜欢

转载自www.cnblogs.com/weili-Sakura/p/9671620.html