zoukankan      html  css  js  c++  java
  • 2016012061 小学四则运算练习软件项目报告

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

     

    代码地址:https://git.coding.net/yangyc061/personal-project.git

    一、需求分析

    设计并编写一个java程序,使之能够实现小学四则运算自动出题,同时,要能够给出正确答案。

    二、功能设计

    (1)基本功能:

    1.程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题。

    2.每个数字在 0 和 100 之间,运算符在3个到5个之间。

    3.每个练习题至少要包含2种运算符。

    4.练习题在运算过程中不得出现负数与非整数,比如不能出 3÷5+2=2.6,2-5+10=7等算式。

    5.当程序接收的参数为4时,以下为一个输出文件示例:

    (2)扩展功能:

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

    三、设计实现

    1.利用Math.random()随机生成100以内的四个数

    2.利用Math.random()随机生成四则运算符号 

    3.用户输入题目的数量,产生相应数量的四则运算表达式

    4.输出结果到result.txt文件

    四、算法详解

    1.随机生成操作数与运算符

              //生成四个随机数和运算符
              int a=(int)(Math.random()*100);
              int b=(int)(Math.random()*100);
              int c=(int)(Math.random()*100);
              int d=(int)(Math.random()*100);
              int x=(int)(Math.random()+1);

    2.提示用户输入题目数量

    input = new Scanner(System.in);
         int n=0;
         System.out.println("文件创建成功!请输入四则运算练习题的数量:");  //提示用户输入四则运算题的数量
         
           try {            
              n=input.nextInt();
              if(n>1000||n<1){
              System.out.println("对不起,只允许输入1-1000之间的整数!");  //判断用户输入的题目数量是否合法
            return;  //结束运行
                }
            }catch (Exception e){   //判断用户的输入是否不是数字
              System.out.println("对不起,只允许输入1-1000之间的数字!");
                return;   //结束运行
    
            }
         

    3.生成result.txt文件记录结果

    File writename = new File("../result.txt");  //建立result文件来保存运算产生的结果"
        writename.createNewFile(); 
        out = new BufferedWriter(new FileWriter(writename));
         out.write("2016012061
    ");  //向文件中输入学号

    五、测试运行

    1.命令行输出

     

    2.result.txt文件输出 

    六、部分代码展示

    private static Scanner input;
    private static BufferedWriter out;
    
    public static void main(String []args) throws IOException{
    
         input = new Scanner(System.in);
         int n=0;
         System.out.println("文件创建成功!请输入四则运算练习题的数量:");  //提示用户输入四则运算题的数量
         
           try {            
              n=input.nextInt();
              if(n>1000||n<1){
              System.out.println("对不起,只允许输入1-1000之间的整数!");  //判断用户输入的题目数量是否合法
            return;  //结束运行
                }
            }catch (Exception e){   //判断用户的输入是否不是数字
              System.out.println("对不起,只允许输入1-1000之间的数字!");
                return;   //结束运行
    
            }
         
         
         
         File writename = new File("../result.txt");  //建立result文件来保存运算产生的结果"
        writename.createNewFile(); 
        out = new BufferedWriter(new FileWriter(writename));
         out.write("2016012061
    ");  //向文件中输入学号 
            for(int i=0;i<n;i++)   //使用for循环随机生成n个四则运算表等式
            {
                
              //生成四个随机数和运算符
              int a=(int)(Math.random()*100);
              int b=(int)(Math.random()*100);
              int c=(int)(Math.random()*100);
              int d=(int)(Math.random()*100);
              int x=(int)(Math.random()+1);
              switch(x)
                {
                 case 0:
                   while(true){
                     d= (int) (Math.random()*100+1 );  //保证 分母不为零
                     if(c%d==0)
                      {
                      System.out.println(a+"+"+b+"+"+c+"÷"+d+"=");
                      out.write(a+"+"+b+"+"+c+"÷"+d+"="+(a+b+c/d)+"
    ");
                      break;
                        }
                             
                   } 
                     

    七、PSP展示

    PSP

    任务内容

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

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

    Planning

    计划

    30

    30

    ·    Estimate

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

    30

    30

    Development

    开发

    360

    459

    ·   Analysis

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

    10

    10

    ·    Design Spec

    ·    生成设计文档

    10

    6

    ·    Design Review

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

    4

    6

    ·    Coding Standard

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

    6

    5

    ·    Design

    ·    具体设计

    10

    12

    ·    Coding

    ·    具体编码

    300

    400

    ·    Code Review

    ·    代码复审

    10

    10

    ·    Test

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

    10

    10

    Reporting

    报告

    15

    15

    ·    Test Report

    ·    测试报告

    8

    7

    ·    Size Measurement

    ·    计算工作量

    2

    3

    ·    Postmortem & Process

         Improvement Plan

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

    5

    5

    八、总结

            经过这一次项目的练习,我深刻意识到自己编码能力的低下。因为,对于这样的一个问题,我一开始简直就是毫无头绪,随后,有了些许想法之后,但我对于JAVA语言,可以说是基本不懂,于是我还得上网查阅,询问同学。最后,对于这个项目,我还得反反复复,大量的查看别的已经提交了这个作业的同学的代码,以他们的代码来作为参考,获得思路。同时,我也在此声明,由于我实在不会编写这个程序,所以我就对郑栋同学的代码做了借鉴与参考(链接地址:https://git.coding.net/moyuming/XiangMu.git)。总体来说,题目所要求的功能,经过我向同学的请教与别人作业的参考,我还是勉强实现了,但是,跟其他同学比起来,我的项目也一定还有不足之处,对此,我也深感遗憾,实在抱歉!

            其次,我的实践能力也确实低下,虽然很快就下载好了项目要求的jdk和jre,同时通过上网查阅相关资料,也很快就配置好了环境变量,但是,对于下载的ecllipse却不会使用,还得向同学请教,这就算了,也不知道是什么时候,什么原因,一不小心就把eclipse的console视图给关闭了,所以我还以为是eclipse出问题了,上网查也查不出是什么原因,最后就卸载了又重装,就这样反复了两次,最后总算终于知道是什么原因了,想一想,我还真是够愚蠢的。

           所以,经过这一次的经验与教训,我意识到自己确实还存在着很大的不足,虽然,我不能说是立马就能克服这些不足,但是,我会去一点一点的克服它,去弥补它。

  • 相关阅读:
    C语言基本快速入门教程
    几何深度学习前沿
    Anaconda 更改清华源
    大学安全教育-实验室安全测试题库
    《如何写好科研论文》(清华)慕课答案
    集群考试试卷
    集群考试相关
    Linux下tar压缩解压用法
    2020-安全微课(新生入学教育)答案
    函数用法和底层分析
  • 原文地址:https://www.cnblogs.com/yangyc/p/8638841.html
Copyright © 2011-2022 走看看