zoukankan      html  css  js  c++  java
  • 四则运算4

    本次作业的题目:

        在之前的四则运算基础上继续团队开发,详细要求如下:

        1. 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1 ? e2的子表达式,那么e1 ≥ e2。

        2、生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数。

        3、每道题目中出现的运算符个数不超过3个,括号不限。

        4、程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。  

        5、把程序变成一个网页程序或智能手机程序, 用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判。

    设计思想:

    本次实验我们小组选择的用网页开发,起初觉得很简单,但做起来有点难,不会的东西太多了,感觉这句话很正确:欠的东西,迟早要还的!!!。

    我们用的是基于MVC框架的开发,视图阶主要是是jsp页面,里面写了登陆界面,还有四则运算所需要的信息,以及用户作答界面,控制器阶主要处理来自jsp页面的的请求,模型里面我生成了一个实体类,与数据库的表项相对应,同时里面也写了一些操作数据库的函数。

    本次实验UI没做感觉不是特别好

    活动图:

    出题代码:

    复制代码
        String[] str=new String[]{"+","-","*","/"};
        String[] str5=new String[100];
        int[] OperatorNum=new int[100];      
        int c=0;
        int num1,num2,num3,num4,num5;
        String str1,str2,str3,str4;
        num1=(int)(mn+Math.random()*(mx-mn+1));
        num2=(int)(mn+Math.random()*(mx-mn+1));
        num3=(int)(0+Math.random()*(3-0+1));
        str1=String.valueOf(num1);
        str2=String.valueOf(num2);
        str3=str1+str[num3]+str2;
        OperatorNum[c]=num3;
        c++;
        a=a-2;
        while(a!=0)
        {
            num4=(int)(0+Math.random()*(1-0+1));
            if(num4==0)
            {
                num5=(int)(0+Math.random()*(1-0+1));
                if(num5==0)
                {
                    num3=(int)(0+Math.random()*(3-0+1));
                    OperatorNum[c]=num3;
                    c++;
                    num1=(int)(mn+Math.random()*(mx-mn+1));
                    str4=String.valueOf(num1);
                     if((num3==3)&&(OperatorNum[c-2]==3))
                     {
                         str3="("+str3+")"+str[num3]+str4;
                     }
                     else
                         str3=str3+str[num3]+str4;
                }
                else
                {
                    num3=(int)(0+Math.random()*(3-0+1));
                    OperatorNum[c]=num3;
                    c++;
                    num1=(int)(mn+Math.random()*(mx-mn+1));
                    str4=String.valueOf(num1);
                    str3="("+str3+")"+str[num3]+str4;
                }
            }
            else
            {
                num5=(int)(0+Math.random()*(1-0+1));
                if(num5==0)
                {
                    num3=(int)(0+Math.random()*(3-0+1));
                    OperatorNum[c]=num3;
                    c++;
                    num1=(int)(mn+Math.random()*(mx-mn+1));
                    str4=String.valueOf(num1);
                     if((num3==3)&&(OperatorNum[c-2]==3))
                     {
                         str3=str4+str[num3]+"("+str3+")";
                     }
                     else
                         str3=str4+str[num3]+str3;
                }
                else
                {
                    num3=(int)(0+Math.random()*(3-0+1));
                    OperatorNum[c]=num3;
                    c++;
                    num1=(int)(mn+Math.random()*(mx-mn+1));
                    str4=String.valueOf(num1);
                    str3=str4+str[num3]+"("+str3+")";
                }
            }
            a--;
        }
    复制代码

    效果截图:

    体会:

    通过本次实验感觉自己不会的东西特别多,加油加油。。。

  • 相关阅读:
    C语言 realloc为什么要有返回值,realloc返回值具体解释/(解决随意长度字符串输入问题)。
    opencv中的vs框架中的Blob Tracking Tests的中文注释。
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 棋盘多项式
    Java实现 蓝桥杯VIP 算法提高 分苹果
    Java实现 蓝桥杯VIP 算法提高 分苹果
    Java实现 蓝桥杯VIP 算法提高 分苹果
    Java实现 蓝桥杯VIP 算法提高 分苹果
  • 原文地址:https://www.cnblogs.com/GloryYT/p/5606267.html
Copyright © 2011-2022 走看看