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

    coding.net地址:https://git.coding.net/zhaorx1998/zrx.demo.git

          测试步骤    :1.打开src文件夹

                              2.命令处行输入:javac -encoding utf-8 Main.java(回车)

                              3.输入java Main 20(回车)

                              4.产生result.txt文件 

    【项目开发流程简介】

    一、需求分析:

    (1)程序接受参数n后,可生成n道加减乘除四则运算练习题,每个数字在0~100之间,运算符3~5个之间

    (2)每个习题至少要包含2运种算符

    (3)练习题中不得出现负数和小数

    (4)练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中

    二、功能的设计、实现及代码展示:

    (1)实现运算符3~5个之间,将两个运算符、三个运算符、四个运算符的固定公式进行循环操作,随机产生3~5个运算符的随机四则运算题目,及相应答案

        String rstring1;
            Random r=new Random();
            int p=r.nextInt(3);
            if(p==0){
            for(int i=0;i<3;i++)
            {
                Random rand=new Random(); 
                if(i!=1)a[i]=rand.nextInt(3);
                else a[i]=rand.nextInt(2);
            }        
             rstring1=num[0]+""+operator[a[0]]+""+num[1]+""+operator[a[1]]+""+num[2]+""+operator[a[2]]+""+num[3];
            
            ArrayList<String> expression1=new ArrayList<String>();//运算式
            }
            else if(p==1){
            for(int i=0;i<2;i++)
            {
                Random rand=new Random(); 
                if(i!=1)a[i]=rand.nextInt(3);
                else a[i]=rand.nextInt(2);
            }        
             rstring1=num[0]+""+operator[a[0]]+""+num[1]+""+operator[a[1]]+""+num[2];
        
            ArrayList<String> expression2=new ArrayList<String>();//运算式
            }else{
                for(int i=0;i<4;i++)
                {
                    Random rand=new Random();
                    if(i!=1)a[i]=rand.nextInt(4);
                    else a[i]=rand.nextInt(2);
                }        
                 rstring1=num[0]+""+operator[a[0]]+""+num[1]+""+operator[a[1]]+""+num[2]+""+operator[a[2]]+""+num[3]+""+operator[a[3]]+""+num[4];
                
                ArrayList<String> expression=new ArrayList<String>();//运算式
            }

    (2)加减乘除的先后运算顺序,list容器存储数字和符号,用数组存储加减乘除,random随机产生符号,用数字大小判断符号优先级(此部分是参照了一些博主的博文完成的,是这次项目中遇到的比较难的部分)

    (3)练习中不得出现负数:在输出处进行“过滤”,带有负数的运算会被“过滤”掉

       try{
                System.out.println("请输入要生成的算式个数:");
                PrintStream ps = new PrintStream("result.txt");// 创建一个打印输出流
                System.setOut(ps);    
                System.out.println("2016012010");
                int num=0;
                int corr=0;
                num=in1.nextInt();
                for(int i=0;i<num;i++){
                corr+=cre();
                if(flag==0){
                    i--;
                    flag=1;
                 }
                }
    List<String> list = s.list;
            String oo=s.yunsuan(list);
            if(Float.valueOf(oo)>=0.000000001){
             System.out.println(rstring1+ "="+oo);
             
            }else{
                flag=0;
            }

    三、结果展示:

    实现:学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中

    四、PSP数据:

    SP2.1

        Personal Software

           Process Stages

                Time :

         SeniorStudent(min)

     Time :

    SDE(min)

               Planning

                     计划

           20

          35

    Estimate

      估计这个任务需要多少时间

                           10

                       20+

             Development

                      开发

                          1000

                      1200+

               Analysis

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

                           420

                       700+

             Design Spec

               生成设计文档

                             0

                        0

            Design Review

                   设计复审 

                             0

                        0

             Coding Standard

                   代码规范 

                            30

                        20

                 Design

                   具体设计

                            30

                        50

                 Coding

                   具体编码

                           450

                       600

               Code Review

                   代码复审

                            30

                        40

                  Test

                      测试

                            40

                        50

               Reporting

                      报告

                           180           

                        300 

    •  Test Report

                    测试报告

                            120

                        240 

    •  Size Measurement

                  计算工作量

                            30 

                         20     

    • Postmortem& ProcessImprovement Plan

                    事后总结

           并提出过程改进计划

               30 

            40 

    五、总结

    这次的项目比我预计要花费的时间多了一半,很费劲儿,多半时间都在学习实现功能的方法上。从刚开始自己有了大概的思路,然后去看一些相关博客,学习一些相关的知识和方法,再到自己敲代码,还有最后的调bug,每一个环节都很不容易,一步一坎,边学边做,感觉到自己的知识储备和实践能力的匮乏,曾尝试用布尔方法识别运算符来实现附加的括号功能,因为作业截止时间有限,至今没有成功。为自己Java水平的low而深感痛心,直到完成这个项目,心里还是很堵,感觉自己还有很多的不足,在整个项目从头到尾我都在思考和学习,虽然基础一般,但也在尽自己最大的努力做好这个项目,在过程中还是有一些收获的,之后会再多加尝试和努力的!

  • 相关阅读:
    设计模式
    Junit单元测试
    数组存储和链表存储
    java新特型
    List&&Set
    Map
    File文件
    1588. 所有奇数长度子数组的和
    2秒后跳转到某页面
    图片轮播/倒计时--windows对象(setInterval)
  • 原文地址:https://www.cnblogs.com/mrxueren/p/8638369.html
Copyright © 2011-2022 走看看