其他分享
首页 > 其他分享> > 队友个人项目代码分析

队友个人项目代码分析

作者:互联网

项目要求

 

功能实现

 

 

该项目使用的语言是Java,题目要求的功能全部实现,通过阅读其源代码,做出以下分析:

  优点:

  在生成题目的函数中,将运算符(+-*/),操作数(算式)和括号分开处理,令代码更简洁明了

if(type.equals("高中")){
            String[] sin={"sin","cos","tan"};
            operand_num=rand.nextInt(5)+1;
            question=new String[operand_num];
            for(int i=0;i<operand_num;i++){
                question[i]=String.valueOf(rand.nextInt(100)+1);
            }
            int special_num1=rand.nextInt(operand_num); //有根号或者平方的数字的个数
            int special_num2=rand.nextInt(operand_num)+1;//有三角函数的数字的个数(必须有一个)
            boolean[] flag1=new boolean[operand_num]; //防止操作数加了平方又加根号
            boolean[] flag2=new boolean[operand_num]; //防止操作数添加了两次三角函数
            for(int i=0;i<special_num1;i++){
                //如果操作数位置没有加根号/平方的话
                int j=rand.nextInt(operand_num);
                if(!flag1[j]){
                    //50%的概率加平方,50%的概率加根号
                    if(rand.nextBoolean()){
                        question[j]=question[j]+"²";
                    }
                    else question[j]="√"+question[j];
                }
                flag1[j]=true;
            }
            for(int i=0;i<special_num2;i++){
                int j=rand.nextInt(operand_num);
                if(!flag2[j]){
                    question[j]=sin[rand.nextInt(3)]+question[j];
                }
                flag2[j]=true;
            }
        }
        //加括号
        if(operand_num>=3&&rand.nextBoolean()){
            int length=rand.nextInt(operand_num-2)+1;
            int a=rand.nextInt(operand_num-length);
            int b=a+length;
            question[a]="("+question[a];
            question[b]=question[b]+")";
        }

        for(int i=0;i<operand_num-1;i++){
            question[i]+=signs[rand.nextInt(4)];
        }

  定义了user类,将用户的账号信息和登录信息封装起来,能有效地提高代码的编写的效率;

  将整个项目的流程拆分成几个方法,独立编写,增大了后期的拓展性,减小了修正的难度;

  代码间重要的地方都有注释,令人更易读懂代码;

  缺点:

  文件创建时使用了绝对路径,当计算机中不存在该路径时,会报错;

  当检验是否会有题目重复时,程序会读入所有已经生成过的文件,会占用很大的空间;

  用户的账号信息保存在程序中,不利于后期的拓展;

 

 

  

 

标签:rand,个人,int,代码,question,num,队友,operand
来源: https://www.cnblogs.com/T20151020/p/16690922.html