• 201571030334 小学四则运算练习软件项目报告


    小学四则运算练习软件项目报告

    Github的仓库主页链接地址:https://github.com/huicunzhang/sizeyunsuan

    一、需求分析:

    1. 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

    2. 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运 算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。

    3. 练习题生成好后,将自己的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致。

    二、功能设计:

         1. 学生输入一个数n,随机产生n道四则混合运算练习题;

         2. 每个算式中的数字在0~100之间,运算符在3~5个之间;

         3. 每个练习题中的运算符至少是两种以上,且运算过程中不得出现负数和非整数;

         4. 将练习题打印出来,学生在后面输入答案;

         5. 将自己的学号和n道练习题及其正确答案输出在文件“result.txt”中。

    三、设计实现:

          创建文件result.txt 产生四个随机数 → 生成运算符号固定的表达式 → 将练习题及其正确答案写入文件

    四、测试运行:

    五、核心代码:

    //将学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中
            File writename = new File("result.txt"); 
            writename.createNewFile(); 
            BufferedWriter out = new BufferedWriter(new FileWriter(writename));
            out.write("***************************
    "); 
            out.write("201571030334
    "); 
    //产生四个0~100的随机数
                int num1=(int)(Math.random()*100);
                int num2=(int)(Math.random()*100);
                int num3=(int)(Math.random()*100);
                int num4=(int)(Math.random()*100);
     //生成表达式,运算符是固定的,不是随机产生
                    case 4:
                        while(true) {
                            num2 = (int) (Math.random()*100 + 1);//保证分母不为零
                            num4 = (int) (Math.random()*100 + 1);
                            if(num1%num2==0)
                            {
                                if(num3%num4==0)
                                 System.out.println(num1 + "/" + num2 +"+"+ num3+"/"+num4+" = " );
                                 out.write(num1 + "/" + num2 +"+"+ num3+"/"+num4+" = " +(num1/num2+num3/num4)+"
    ");
                                 break;
                            }
                        }
                    case 5:
                        if(num1*num2>num3*num4)//保证差不为负数
                        System.out.println(num1+"*"+num2+"-"+num3+"*"+num4+"=");
                        out.write(num1+"*"+num2+"-"+num3+"*"+num4+"="+(num1*num2-num3*num4)+"
    ");
                        break;
                    case 6:
                        while(true){
                            num2 = (int) (Math.random()*100 + 1);
                            if(num1%num2==0)
                                 System.out.println(num1 + "/" + num2 +"+"+ num3+"*"+num4+" = " );
                                 out.write(num1 + "/" + num2 +"+"+ num3+"*"+num4+" = " +(num1/num2+num3*num4)+"
    ");
                                 break;
                        }

    六、总结:

          第一次交作业时,我的程序根本没运行出来,因为到了作业截止时间,所以就交了一份不完整的作业。后面老师延迟了一下,经 过这几天的时间,终于做出来了,虽然不是完美的,但它实现了基本的功能。经过这次作业充分的揭露了我编程的水平到底有多差,以前欠的账都要在这几天还了。说不会其实只是自己对自己的不负责任,所以日后我会更加努力去弥补自己以前犯的错。虽然这次作业,自己遇到很多困难,但这些困难都给了我不一样的收获。

    七、展示PSP

    PSP2.1

    任务内容

    计划完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    10

    12

    ·       Estimate

      估计这个任务需要多少时间,并规划大致工作步骤

    10

    12

    Development

    开发

    380

    632 

    ··       Analysis

      需求分析 (包括学习新技术)

    10

    20

    ·       Design Spec

      生成设计文档

    5

    10 

    ·       Design Review

      设计复审 (和同事审核设计文档)

    5

    3

    ·       Coding Standard

      代码规范 (为目前的开发制定合适的规范)

    10

    14 

    ·       Design

      具体设计

    20

    15 

    ·       Coding

      具体编码

    300

    500

    ·       Code Review

      代码复审

    10

    10 

    ·       Test

      测试(自我测试,修改代码,提交修改)

    20

    60 

    Reporting

    报告

    12

    40 

    ··       Test Report

      测试报告

    5

    30

    ·       Size Measurement

      计算工作量

    2

    ·       Postmortem & Process Improvement Plan

      事后总结 ,并提出过程改进计划

    5

     5

  • 相关阅读:
    Linux 使用crontab定时备份Mysql数据库
    pdf.js 文字丢失问题 .cmaps
    indexOf IE8下的兼容
    Huplaodfiy---图片文件上传插件修改
    dateTimePicker日期时间插件-----限定节假日调休的可选择性
    【转】MyEclipse第一个Servlet程序
    input 的 placeholder属性在IE8下的兼容处理
    zepto的scrollTo,实现锚点跳转
    微信小程序
    mac 终端中添加tree命令显示文件目录结构
  • 原文地址:https://www.cnblogs.com/zhangcunhui/p/8610823.html
Copyright © 2020-2023  润新知