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--;
        }

    效果截图:

  • 相关阅读:
    当公有云Azure拥抱Docker容器技术
    .NET AJAX实例
    漫谈Ajax在.Net中的使用
    .NET运用AJAX 总结及其实例
    Excel自动从身份证中提取生日、性别、年龄
    ASP.NET 与 Ajax 的实现方式
    windows下编辑器Emacs的安装与配置
    2013.10.26工作Fighting(1)
    Jquery操作下拉框(DropDownList)实现取值赋值
    js调用后台,后台调用前台等方法总结
  • 原文地址:https://www.cnblogs.com/wulun/p/5611262.html
Copyright © 2011-2022 走看看