首页 > 其他 > 详细

个人作业1

时间:2018-09-12 00:15:59      阅读:136      评论:0      收藏:0      [点我收藏+]

个人作业1

一、预估与实际

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

二、需求分析

我通过上网的方式了解到,小学一年级数学有如下的几个特点:

  • 特点1
  • 10以内数的认识和加减法。
  • 会读、写0~20各数
  • 能比较熟练地计算一位数的加法和10以内的减法
  • 经过分析,我认为,这个程序应当:

  • 使用的数字小于10
  • 不能有负数
  • 算法应该是10以内

三、设计

1. 设计思路

  • 弄清随机数的生成
  • 输入一组数据
  • 判断数据是否符合要求,包括数据类型

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地
  • 技术关键点:随机数的生成;数据异常的处理;

四、编码

  • 随机数的生成,需选择符号和数字两种
  • 写出各年级方法
  • 用main函数调用方法

1. 调试日志

  • 输入非法字符时,程序会出现异常
  • 输入参数时没有忽略了输入的数字数量问题导致异常报错

2. 关键代码

package com.java315;

import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.FileWriter;
import java.util.Scanner;
import java.util.Random;

public class MathExam315 {  
    
    public static void save(String[] a,String[] b) throws IOException{
        File file=new File("out.txt");
        BufferedWriter bw=null;
        try {
            bw=new BufferedWriter(new FileWriter(file));
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        if(!file.exists()){
            try {
                file.createNewFile();
        } 
            catch (IOException e) {
                e.printStackTrace();
            }
        }
        for(int i=0;i<b.length;i++) {
            try {
                bw.write(b[i]);
                bw.newLine();
                bw.flush();
            
        } 
            catch (IOException e) {
                e.printStackTrace();
            }
        }
        bw.newLine();
        bw.flush();
        for(int i=0;i<b.length;i++) {
            try {
                bw.write(a[i]);
                bw.newLine();
                bw.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } 
    }

    public static void main(String[] args) throws IOException {
    Scanner input=new Scanner(System.in);
    System.out.println("请输入正整数");
    String z=input.next();
    String regex="\\d+";
    System.out.println(z.matches(regex));
    String[] s=new String[Integer.valueOf(z)];
    String[] s1=new String[Integer.valueOf(z)];
    if(z.matches(regex)==false) {
        System.out.println("有误,请重新输入正整数");
    }else {
    for(int i=0;i<Integer.valueOf(z);i++) {
    Random q=new Random();
    int a1=q.nextInt(2);
    int a2=q.nextInt(10);
    int a3=q.nextInt(10);
    if(a1==1) {
        s[i]="("+(i+1)+")"+" "+a2+"+"+a3+"="+(a2+a3);
        s1[i]="("+(i+1)+")"+" "+a2+"+"+a3+"=";
        
    }
    if(a1==0) {
        if(a2-a3>=0) {
            s[i]="("+(i+1)+")"+" "+a2+"-"+a3+"="+(a2-a3);
            s1[i]="("+(i+1)+")"+" "+a2+"-"+a3+"=";
        }
        if(a2-a3<0) {
            s[i]="("+(i+1)+")"+" "+a3+"-"+a2+"="+(a3-a2);
            s1[i]="("+(i+1)+")"+" "+a3+"-"+a2+"=";
        }
    }
}
    }
    save(s,s1);
    }
}

3. 代码规范

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

  • 第一条:保持代码格式首行缩进
  • 第二条:左大括号前不换行
  • 第三条:代码最后的右括号换行
  • 第四条:并人工检查代码是否符合规范

五、测试

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

  • 输入 0.5:提示输入错误,请重新输入
  • 输入999:提示错误

六、总结

  • 使用了“软件开发的基本策略:分而治之”
  • “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,本次实验由于开始的比较晚,时间比较充忙在这一块还未做好。由于基础较差,这次很勉强的完成了作业,其中有许多的毛病还需要改正,一开始的无从下手到后来慢慢的了解,多问多学真的是很有用的,勤能补拙,下次我会继续努力。

个人作业1

原文:https://www.cnblogs.com/l123456/p/9631748.html

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