四则运算4
2016-04-01 10:42
169 查看
本次作业的题目:
在之前的四则运算基础上继续团队开发,详细要求如下:
1. 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1 ? e2的子表达式,那么e1 ≥ e2。
2、生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数。
3、每道题目中出现的运算符个数不超过3个,括号不限。
4、程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。
5、把程序变成一个网页程序或智能手机程序, 用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判。
设计思想:
本次实验我们小组选择的用网页开发,起初觉得很简单,但做起来有点难,不会的东西太多了,感觉这句话很正确:欠的东西,迟早要还的!!!。
我们用的是基于MVC框架的开发,视图阶主要是是jsp页面,里面写了登陆界面,还有四则运算所需要的信息,以及用户作答界面,控制器阶主要处理来自jsp页面的的请求,模型里面我生成了一个实体类,与数据库的表项相对应,同时里面也写了一些操作数据库的函数。
本次实验UI没做感觉不是特别好
活动图:
出题代码:
效果截图:
体会:
通过本次实验感觉自己不会的东西特别多,加油加油。。。
在之前的四则运算基础上继续团队开发,详细要求如下:
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--; }
效果截图:
体会:
通过本次实验感觉自己不会的东西特别多,加油加油。。。
相关文章推荐
- 怎样申请试用最新一代商翼ERC企业管理软件
- 基于 infinitescroll、isotope、imagesLoaded 的瀑布流网站
- ansible role 执行顺序
- iOS js oc相互调用(JavaScriptCore)(二)
- USB2.0 A型、B型、Mini和Micro接口定义及封装
- live555学习笔记
- Python之类
- 对RandomAccessFile类的应用
- Pychrm中lxml导入etree失败
- Linux 下让进程在后台可靠运行的几种方法
- Django Ajax CSRF 认证
- launchMode传递参数注意startActivityForResult
- iOS开发中手机号码和价格金额有效性判断及特殊字符的限制
- Win10系统自动开机怎么取消?Win10系统取消自动开机的方法
- java定时任务
- CardView的那点事儿
- 我理解的--java模板方法模式
- 浏览器插件之ActiveX开发(五)
- MFC界面库BCGControlBar新版功能详解一:Ribbon Bar
- 渗透漏洞框架