• 第一次作业简单艰辛的历程


    快的并痛苦着

    一、预估与实际

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

    二、需求分析

    • 要根据实际情况,结合实际,并不是所有的小学一年级生水平都一样,需要有一个范围
    • 只有加减法
    • 不能有负数小数
    • 100以内的运算

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

    • 控制在一、二年级生能完成的水平内
    • 都是整数,不能有小数,因为小数点一年级还没学哈哈
    • 不能出现负数
    • 数据范围严格控制好,不要超纲

    三、设计

    1. 设计思路

    • 说明你如何设计这个程序
    • 用户输入的参数,需要判断是否符合要求
    • 题目随机生成,需要符合一二年级的算术规则
    • 不能产生负数
    • 范围100以内
    • 运用随机数random()
    • 文件的生成与写入
    • 将题目和答案存入out.txt文件

    比如:

    • 最重要的,判断用户输入的数字是否符合规定,不符合的话,应该怎么提示,这又应该怎么控制
    • 用到比如Integer.parseInt,一开始很困难,通过借鉴请教别的同学的以及查阅资料掌握
    • 一二年级的数字范围

    2. 实现方案

    • 准备工作:先在Github上创建仓库,克隆到本地.
    • 技术关键点:如何用命令行输出参数

    四、编码

    • 没有考虑到用户输入输入的参数不是整数数字的
    • 开始有很多问题,比如不会生哼随机数,不会写入文件等等,通过复习和查阅资料弄清楚

    1. 调试日志

    • 一开始出现的大小bug简直是天花乱坠,后来经过很漫长的分析修改,一步一步的来,终于稍微好点了(感觉现在自己的代码还是有很多bug)- 。-
    • 算术题出现晓得一个数减去大的一个数理应是负数,但是小学一年级不会负数,所以需要换一下位置,用大的减去小的
    • 当输入不是整数的时候,包括输入英文等其他内容,需要提示重新输入

    2. 关键代码

    private static int n1,n2,x;    //定义三个静态成员
    private static String[] str1 ;
    private static String sun;   //创建新对象字符串
    
    public static void main(String args[]) throws FileNotFoundException, InterruptedException {
    	// TODO Auto-generated method stub
    	int i =Integer.valueOf(args[0]).intValue();   //题目
    	int g =Integer.valueOf(args[1]).intValue();   //年级
    	//输出保存在文件中
    	File file = new File("out6388.txt");
    	PrintStream ps = new PrintStream(file);
    	System.setOut(ps);
    	choiceGrade(i, g);
    

    3. 代码规范

    • 有关缩进的问题,一定要符合规范,一个是整洁,一个是养成好习惯
    • 括号的问题,有的是(),有的是{}一定要区分清楚
    • 代码的命名不规范向,这次写的代码命名就很不规范
    • 用不上的代码直接注释掉//

    五、测试

    • 1.MathExam 输入参数: 5 测试结果:生成符合数目的几道一年级题目和答案 结果: 符合
    • 2.MathExam 输入参数:5.2 测试结果:输入有误,请重新输入 结果:符合
    • 3.MathExam 输入参数:aaaaa 测试结果:输入有误,请重新输入 结果:符合
    • 4.MathExam 输入参数:0 测试结果:输入有误,请重新输入 结果:符合

    六、总结

    • 一开始体验了什么叫无头苍蝇一样手足无措...
    • 是否使用了“软件开发的基本策略:分而治之”,是否需要重构
    • “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构
    • 一定要充分考虑到需求的重要性,比如当客户没有输入预期值该怎么处理等等
    • 当遇到不会的东西首先自己去查找学习并做好几率,再不行就去问问同学老师,争取自己独立解决。
    • 先写注释再写代码思路会清晰很多很多!!
  • 相关阅读:
    To My Girlfriend (DP)
    A Simple Nim (SG打表找规律)
    A Boring Question (打表)
    A Simple Chess (Lucas组合数 + 容斥)
    World is Exploding (容斥 + 统计)
    Two (DP)
    K-wolf Number (数位DP)
    Interesting (manacher + 前缀和处理)
    How Many Triangles (极角排序 + 尺取法)
    Divide the Sequence (贪心)
  • 原文地址:https://www.cnblogs.com/Yinhaichuan/p/9631669.html
Copyright © 2020-2023  润新知