续.第一次冲刺之后.
第一次冲刺:
每个员可以各自完成自己的分配好的模块
罗伟业:加减算术----乘除算式 返回一个完整正确(加减、乘除)的算式<考虑到低年级还没有完全掌握四则混合运算>
康取:四则混合运算算式 返回一个完整正确的混合四种运算的算式 <含分数>
陈键:四则混合+括号混合 返回一个完整正确的混合四种运算的算式 <含分数>
现在也基本达到了目标 .
基本能够达到预想效果< UI - 。-不堪入目 有待提高.>
在完成过程中想到了
----存储 一些默认设置 比如模式和难度的选择等等的数据
-----增加一个对题 错题的 比较.分数显示.
-----设置输入内容只能是数值 。不能是分数,保留三位小数.<规划输入格式>
1 package com.example.testc; 2 import java.math.BigDecimal; 3 import java.util.Random; 4 import android.app.Activity; 5 import android.os.Bundle; 6 import android.view.View; 7 public class MainActivity extends Activity { 8 private Calculator calculator = new Calculator(); 9 private Double intemp ; 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.activity_main); 14 } 15 public void onclick(View v) { 16 switch (v.getId()) { 17 case R.id.createone: 18 String a = createOperation(); 19 calculator.setExpression(a); 20 adjustResult( calculator.getResult() ,"1"); 21 System.out.println(a + "===" +intemp+ "====" + calculator.getResult()); 22 break; 23 } 24 } 25 26 /** 比较答案的对错,精度为0.001 **/ 27 public boolean adjustResult(String CorrectResult, String userResult) { 28 BigDecimal correctAnswer = new BigDecimal(CorrectResult); 29 BigDecimal userAnswer = new BigDecimal(userResult); 30 double cAnswer; 31 double uAnswer; 32 33 cAnswer = correctAnswer.doubleValue(); 34 uAnswer = userAnswer.doubleValue(); 35 int ax = (int) Math.round(cAnswer * 1000) ; 36 cAnswer = ax /1000.0; 37 intemp=cAnswer; 38 if (Math.abs(cAnswer - uAnswer) < 0.001 ) 39 return true; 40 return false; 41 } 42 43 public String createOperation() { 44 Random seed = new Random(); 45 final String ADD = "+" + ""; 46 final String MINUS = "-" + ""; 47 final String MULTIPLY = "x" + ""; 48 final String DEVIDE = "/" + ""; 49 50 // 操作数的个数.而且最多为五个,默认三个操作数 51 int number = 3; 52 String datas[] = new String[5]; 53 String op[] = new String[5]; 54 55 /** 生成 操作数个数 **/ 56 int numberSeeder = seed.nextInt(4) + 1; 57 58 if (numberSeeder == 1) 59 number = 3; 60 else if (numberSeeder == 2 || numberSeeder == 4) 61 number = 4; 62 else if (numberSeeder == 3) 63 number = 5; 64 65 /** 生成 操作数 跟 符号 **/ 66 for (int i = 0; i < number; i++) { 67 int jud = seed.nextInt(100); 68 if (jud < 20) { 69 datas[i] = fraction(); 70 } else if (jud < 100) { 71 datas[i] = integerCreater(); 72 } 73 if (i<number-1) { 74 /** 操作数的个数都是比符号的个数多一个 **/ 75 int judp= seed.nextInt(4) + 1; 76 if (judp == 1) 77 op[i] = ADD; 78 else if (judp == 2) 79 op[i] = MINUS; 80 else if (judp == 3) 81 op[i] = MULTIPLY; 82 else if (judp== 4) 83 op[i] = DEVIDE; 84 } 85 } 86 return createBrackets(datas, op, number); 87 } 88 /** create an integer **/ 89 public String integerCreater() { 90 Random seed = new Random(); 91 String data; 92 data = String.valueOf(seed.nextInt(300) + 1); 93 return data; 94 } 95 /** create a fraction **/ 96 public String fraction() { 97 final String DEVIDE = "/" + ""; 98 final String leftear = "(" + ""; 99 final String rightear = ")" + ""; 100 int First = 1, second = 1; 101 Random seeder = new Random(); 102 First = seeder.nextInt(20) + 1;// 分子 103 second = seeder.nextInt(20) + 1;// 分母 104 return leftear + First + DEVIDE + second + rightear; 105 } 106 107 /** brackets block 操作数据数组 、 操作符 、 个数 **/ 108 public String createBrackets(String datas[], String operator[], int number) { 109 final String leftear = "(" + ""; 110 final String rightear = ")" + ""; 111 Random seeder = new Random(); 112 String bracketOperation = null; 113 switch (number) { 114 case 3: 115 if (seeder.nextInt() / 2 == 0) 116 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 117 + rightear + operator[1] + datas[2]; 118 else 119 bracketOperation = datas[0] + operator[0] + leftear + datas[1] 120 + operator[1] + datas[2] + rightear; 121 break; 122 case 4: 123 int temp = seeder.nextInt(21) + 1; 124 temp = temp % 7 + 1; 125 switch (temp) { 126 case 1:// (a+b)x(a+b) 127 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 128 + rightear + operator[1] + leftear + datas[2] 129 + operator[2] + datas[3] + rightear; 130 break; 131 case 2:// ((a+b)+b)+b 132 bracketOperation = leftear + leftear + datas[0] + operator[0] 133 + datas[1] + rightear + operator[1] + datas[2] 134 + rightear + operator[2] + datas[3]; 135 break; 136 case 3:// (a+(a+b))+b 137 bracketOperation = leftear + datas[0] + operator[0] + leftear 138 + datas[1] + operator[1] + datas[2] + rightear 139 + rightear + operator[2] + datas[3]; 140 break; 141 case 4:// (a+b)+a+b 142 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 143 + rightear + operator[1] + datas[2] + operator[2] 144 + datas[3]; 145 break; 146 case 5:// a+b+(a+b) 147 bracketOperation = datas[0] + operator[0] + datas[1] 148 + operator[1] + leftear + datas[2] + operator[2] 149 + datas[3] + rightear; 150 break; 151 case 6:// a+(a+b)+b 152 bracketOperation = datas[0] + operator[0] + leftear + datas[1] 153 + operator[1] + datas[2] + rightear + operator[2] 154 + datas[3]; 155 break; 156 case 7:// (a+b+c)+a 157 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 158 + operator[1] + datas[2] + rightear + operator[2] 159 + datas[3]; 160 break; 161 } 162 break; 163 case 5: 164 int dicision = seeder.nextInt(33) + 1; 165 dicision = dicision % 9 + 1; 166 switch (dicision) { 167 case 1:// (a+(a+b))+a+b 168 bracketOperation = leftear + datas[0] + operator[0] + leftear 169 + datas[1] + operator[1] + datas[2] + rightear 170 + rightear + operator[2] + datas[3] + operator[3] 171 + datas[4]; 172 break; 173 case 2:// ((a+b)+a)+a+a 174 bracketOperation = leftear + leftear + datas[0] + operator[0] 175 + datas[1] + rightear + operator[1] + datas[2] 176 + rightear + operator[2] + datas[3] + operator[3] 177 + datas[4]; 178 break; 179 case 3:// (a+b)x(a+b)+a 180 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 181 + rightear + operator[1] + leftear + datas[2] 182 + operator[2] + datas[3] + rightear + operator[3] 183 + datas[4]; 184 break; 185 case 4:// (a+b)x(a+b+a) 186 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 187 + rightear + operator[1] + leftear + datas[2] 188 + operator[2] + datas[3] + operator[3] + datas[4] 189 + rightear; 190 break; 191 case 5:// (a+b)x(a+b+c) 192 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 193 + rightear + operator[1] + leftear + datas[2] 194 + operator[2] + datas[3] + operator[3] + datas[4] 195 + rightear; 196 break; 197 case 6:// (a+b)+a+(a+b) 198 bracketOperation = leftear + datas[0] + operator[0] + datas[1] 199 + rightear + operator[1] + datas[2] + operator[2] 200 + leftear + datas[3] + operator[3] + datas[4] 201 + rightear; 202 break; 203 case 7:// ((a+b)+a)X(a+b) 204 bracketOperation = leftear + leftear + datas[0] + operator[0] 205 + datas[1] + rightear + operator[1] + datas[2] 206 + rightear + operator[2] + leftear + datas[3] 207 + operator[3] + datas[4] + rightear; 208 break; 209 case 8:// (((a+b)+c)+d)+e 210 bracketOperation = leftear + leftear + leftear + datas[0] 211 + operator[0] + datas[1] + rightear + operator[1] 212 + datas[2] + rightear + operator[2] + datas[3] 213 + rightear + operator[3] + datas[4]; 214 break; 215 case 9:// a+(a+b+c)+e 216 bracketOperation = datas[0] + operator[0] + leftear + datas[1] 217 + operator[1] + datas[2] + operator[2] + datas[3] 218 + rightear + operator[3] + datas[4]; 219 break; 220 } 221 break; 222 } 223 return bracketOperation; 224 } 225 226 }
CreateExercises
转载于:https://www.cnblogs.com/be-the-one/p/4998688.html
续.第一次冲刺之后.相关推荐
- ThroughRain第一次冲刺(每天更新)
第一次冲刺时间: 11月14-11月23 第一次冲刺目标及分配: 1.注册登录界面 认领:王大华 2.界面跳转 认领:梁仕标 3.点餐界面 ...
- 团队任务3:第一次冲刺
团队序号:3 团队成员: 产品经理/项目经理/队长:许兴鑫 软件工程师:吴登峰.王炳文 软件测试工程师:郑文龙 UI设计师:杨蕃.李昊燃 开发软件名称:贪吃蛇大作战 仓库地址:https://gite ...
- 易达项目第一次冲刺周期第十天
昨天完成了什么? 昨天我和我们小组的人商量了一下,我们项目的进度,有点慢,项目的导航栏界面设计完成,在第四个界面中,添加了一些基本的功能,并且设计出了登录的界面(还没有连上数据库). 今天干了什么? ...
- 第一次冲刺-个人工作总结01
昨天干了什么:今天开始冲刺,所以昨天具体就是安装了一些开发用的软件 今天准备干什么:学习如何使用微信web开发者工具进行开发 遇到的困难:不熟悉开发者小工具的使用 转载于:https://www.cn ...
- 第一次冲刺阶段(五)
一.站立会议信息 今天是冲刺阶段的第五天,在中午放学后我们进行了站立会议.在过去的几天中,我们都在熟悉开发环境以及各种控件的使用,今天来看的话,每个人对各种控件的使用更加熟悉,出现的相关问题也得到了部 ...
- 团队项目第一次冲刺第三天
昨天干了什么: 完成了分页的功能 今天要干什么: 准备完成评论功能 遇到的问题: 搜索结果时,输入字母可以查询到,输入汉字不行,可能是出现了乱码 转载于:https://www.cnblogs.com ...
- 团队项目第一次冲刺 第二天
昨天干了什么: 编写了增删改查的基本方法,写了简单的界面 今天要干什么: 今天要解决编写分页功能时遇到的问题 遇到的问题: 昨天晚上编写分页功能时,出现了错误 转载于:https://www.cnbl ...
- 第一次冲刺对各组的评价
1.理财猫: 界面布局风格还可以,就是功能有些混乱,不好找 作为比较私密的软件,是否需要进行登录? 软件并没有连数据库 2.跑什么操: 完成了注册,使用的本地数据库还是服务器? 后期能不能自动调节 ...
- 团队软件开发第一次冲刺(四)
连接数据库完成对无课表的查询操作, 认真考虑之后准备用php语言后台操作数据库 查询结果时需要较详细的信息,不能实现模糊查询 开始在网上学习,查找一些聊天室开发的过程及经验 转载于:https://w ...
最新文章
- 实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN
- 安装Rabbitmq脚本
- 【HRBUST - 1623】Relation(思维模拟,拆解字符串)
- R语言第五讲 之R语言 变量
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨游戏玩法分析 I【难度简单】
- bzoj3083 遥远的国度
- 路飞学城django
- C++语言运算符重载
- 微信小程序的剪贴板 +复制剪贴,在淘宝中打开就可以获取到商品
- ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者
- OpenCV学习——摄像头人脸识别
- MarkDown 符号大全
- kd树的根节点_KD树简介
- 05 JavaScript框架汇总
- 美国亚马逊图片打不开
- iOS --- OpenGLES之图片纹理
- python使用tkinter库,封装操作excel为GUI程序
- 聚簇索引和非聚簇索引到底有什么区别?
- Linux系统中文件系统管理
- 记一次曲折的拿靶标记录
热门文章
- 命令行终端怎么显示√2̅?这其实是一个博客的Unicode测试文章
- 双均线策略(期货)——Python量化
- IT30: IT人怎样成为解决问题的高手
- 【JDBC】使用c3p0数据库连接池的各种报错警告
- idea如何全屏_IntelliJ IDEA(十) :常用操作
- 强烈推荐免费在线图片转文字的工具
- 解决mac端VLC媒体库拖入具有多个文件的N多视频后就会卡死,或者cpu占用颇高的问题
- 萤石云视频直播切换出现no source found in video tag.的问题解决方法
- 使用Dreamweaver MX制作基础简易6行8列个人简历表格。
- 目标检测系列论文汇总