zoukankan      html  css  js  c++  java
  • 结对作业

    #Pair_211606382吴文清_211606370刘华强

    一、预估与实际

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

    二、需求分析

    我通过阅读文档的方式了解到,小学三年级数学有如下的几个特点:

    --运算符在2~4个【进一步细化要求:至少两个不同的运算符】
    --可以加括号
    --减法运算的结果不能有负数
    --除法运算除数不能为0,不能有余数

    三、设计

    1. 设计思路

    https://files.cnblogs.com/files/wwq123/1.gif
    https://files.cnblogs.com/files/wwq123/2.bmp

    • 四则运算,生成题目要随机,并且运算符要2-4个不同的
    • 解题需要逆波兰算法
    • 设置两个栈,一个存数字,一个存符号
    • 先写一个输出随机题目的方法,再写一个解决问题的方法,再写一个
      判断输入的题数n与grade是否合法的方法。

    四、编码

    在编码的时候在输出随机的四则题目中卡顿了许久,不指导如何设置2到四个不同符号的题目,如何处理符号与数字的关系,并且不知道如何甚至“(”和“)”的关系。并且在编辑逆波兰解题的过程也是困难重重。并且解题方法中如何判断括号中的数字先运算。

    1. 调试日志

    在考虑用逆波兰解题的时候,遇到一位数的数字还好,当遇到两位数字以上时,数字存入栈时出现了问题,比如23输入栈会变成2 3;这时候要先定义一个字符串,先把数字存入字符串,字符串分开输入,每输入完整一个数字再通过字符串存入栈。
    在除法中除数不能为零,要在除法钱判断除数是否为零

    2. 关键代码

    if (grade == 3) {
    for (i = 1; i <= n; i++) {
    int OPNum = (rand.nextInt(3) + 2);//随机生成2到4个运算符
    for (int j = 1; j <= OPNum; j++) {
    int S_num2 = (rand.nextInt(1000) + 1);//定义一个随机数num2
    int op = (rand.nextInt(3));//随机数0123
    if (op == 0) {//当随机数为0时,进行加法
    if (S_num1 + S_num2 > 1000) {//如果加法运算大于1000;此次运算不算,j--;调回for循环重新输入随机数
    j--;
    continue;
    }
    } else if (op == 1) {//如果减法运算小于0;此次运算不算,j--;调回for循环重新输入随机数
    if (S_num1 - S_num2 < 0) {
    j--;
    continue;
    }
    } else if (op == 2) {//如果乘法运算大于10000;此次运算不算,j--;调回for循环重新输入随机数
    if (S_num1 * S_num2 > 100000) {
    j--;
    continue;
    }
    } else if (op == 3) {//如果除法运算除数等于0,且有余数;此次运算不算,j--;调回for循环重新输入随机数
    if (S_num1 % S_num2 != 0 || S_num2 == 0) {
    j--;

    3. 代码规范

    1谨慎注释掉代码。在上方详细说明,而不是简单地注释掉。如果无用,则删除。
    2.[强制]异常不要用来做流程控制,条件控制。
    3.[强制] catch时请分清稳定代码和非稳定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的catch尽可能进行区分异常类型,再做对应的异常处理。
    4.[强制]不能使用过时的类和方法。
    5.[推荐]不同逻辑、不同语义、不同业务的代码之间插入一个空行分割开来以提升可读性。
    6.右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
    7.左大括号前不换行。
    8.左大括号后换行。

    五、测试

    1.输入10 0 预期结果:年级不能为零 结果:符合预期
    2.输入10 -1 预期结果:年级不能小于零 结果:符合预期
    3.输入-10 1 预期结果:题数不能小于0 结果符合预期

    六、总结

    这次的作业比上一次的作业难度高了不上,由于基础薄弱,对于结对作业没有头绪,并且对第一次作业的体检并不满意,花了大约一两天的时间看别人是如何为完成实验一的,然后就卡在了出题的方法与逆波兰解题的问题上,由于我和我的搭档编程能力都不是很强,我们在思考如何输出题目与解题使花了好久,以及在后面的代码中,深深的感觉十分吃力。
    https://files.cnblogs.com/files/wwq123/4.bmp

  • 相关阅读:
    跨域现象及原理分析
    git的commit撤销
    什么是幂等,什么情况下需要幂等,如何实现幂等
    flowable表简要说明
    关于SpringCloud、SpringBoot简单讲解
    常用的maven仓库地址
    Python安装第三方库常用方法
    反编译pyinstaller打包的exe安装包
    测试用例-需要添加@Transactional 这样 就不会再数据库里面留下痕迹了
    断点 太多了 调试运行特别慢-把所有的历史断点都去掉就快了
  • 原文地址:https://www.cnblogs.com/wwq123/p/9672410.html
Copyright © 2011-2022 走看看