传说中的出题器

出题器报告

一、预估与实际

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

二、需求分析

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

  • 特点1 只学加减法,且未学过负数,小数
  • 特点2 只学100以内,即答案不能大于100

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

  • 使用的数字小于100
  • 结果不能为负数
    -数据需为整数

三、设计

1. 设计思路

-通过随机数生成三个数,两个用于计算,另外一个用于决定算式的种类,加法还是减法。
用循环的方法实现满足小学一年级的水平,将生成的式子保存到两个字符串中,最后输出到txt文档中

2. 实现方案

比如:

  • 准备工作:先在Github上创建仓库,克隆到本地
  • 技术关键点:在循环输出随机数的情况下容易造成死循环,关键是要将生成的式子存入字符串中

四、编码

一开始我用了四个字符串,第一个用于存储第一个数,第二个用于存储符号+,-,,第三个用于存储第二个数,第四个用于存储答案。
后来我发现将式子存入txt文档中将字符串转化为比特流的时候只允许String类型 不能用其他的数据类型,这样造成了不能讲数据导入的情况。后面我把这个分成两个字符串,
一个存题目一个存答案,这样就解决了上述问题

1. 调试日志

在做循环的时候一开始我用的是for循环嵌套while循环,然后我在while循环的时候用了一个布尔形变量控制循环的结束,这样导致了一开始只会出现一条数据循环就结束了,
然后我就改用break控制循环结束,这个问题就没有了

2. 关键代码

while(p)
{
k=r.nextInt(100);
m=r.nextInt(100);
f=r.nextInt(10);
if (f%2==0) { //加法
if(k+m<=100)
{
first[i]=k;
second[i]=m;
fuhao[i]="+";
pass[i]=k+m;
i++;

            }
        }
        else    //减法
        {
            if(k-m>=0)
            {
                //System.out.println("("+(i+1)+") "+k+" - "+m+" = ");
                first[i]=k;
                second[i]=m;
                fuhao[i]="-";
                pass[i]=k-m;
                i++;
            }
        }
        if(i==n)
            break;
    }

这段代码的作用就是控制不让其输出大于100的数和负数并将其存入字符串中

3. 代码规范

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

  • 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
  • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
    -方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
    -常量命名全部大写,单词键用下划线隔开,力求语义表达完整,不要嫌名字长。
    -类型与中括号紧挨相连来定义数组。
    -POJO类中布尔类型的标量,都不要加is前缀,否则部分框架解析会引起序列化错误。
    -包名统一是用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如有复数含义,类名可以使用复数形式。其实很多团队都会用公司官方网址的倒写作为包名。这些都是可以主观规定的。
    -杜绝完全不规范的缩写,避免忘文不知义。

五、测试

测试输入0和负数,因为在写的时候加入了这两个条件测试结果正确

六、总结

第一次自己弄这个小型项目,发现做一个程序需要思考的不仅仅是写代码,还要想一些别的,就跟本次作业类似小学一年级,这个到以后就是客户需求,必须谨慎分析,要不做出来的软件bug太多满足不了客户需求

转载于:https://www.cnblogs.com/wxh9494/p/9630452.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值