软件工程第二次结对作业四则运算自动生成器网页版


一、题目要求

本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。

  • 我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:

    • 能够自动生成四则运算练习题
    • 可以定制题目数量
    • 用户可以选择运算符
    • 用户设置最大数(如十以内、百以内等)
    • 用户选择是否有括号、是否有小数
    • 用户选择输出方式(如输出到文件、打印机等)
    • 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)

二、分工情况

本次我在队伍中担任驾驶员,完成全部代码编程工作(除测试代码外)。

现在项目已经全部(包括测试部分)上传至coding:点击链接


三、设计思路

  • IDE : Sublime3
  • 开发语言:JavaScript、Html、Css
  • 运行环境:Google Chrome浏览器
  • 测试工具:Mocha(摩卡)框架
  • 函数介绍:

    • creat()    -->页面button监听函数
    • Symbol()  -->符号类型构造函数
    • randomArithmetic()  --> 自动生成四则式函数
    • getArithmetic()  --> 四则式是否带括号过滤函数
    • showArithmetic()  --> 显示四则运算式函数
    • Test()  --> 测试函数

四、执行展示



五、主要代码

(1)creat()

function creat(){document.getElementsByClassName("userSelect")[0].style.display = "none";document.getElementsByClassName("button")[0].style.display = "none";document.getElementsByClassName("show")[0].style.display = "block";/*flag      --  是否需要括号      --  0:需要、1:不需要amount    --  题目数量          n         --  操作数个数max       --  操作数最大数值isInteger --  是否是整数        --  0:不是整数、1:是整数symbolMax --  是否包含乘除法    --  2:不包含、4:包含*/var amount = document.getElementById("list").num.value;console.log("amount = "+amount);var n  = document.getElementById("list").length.value;console.log("n = "+ n);var symbolMax  = document.getElementById("list").conclude.value;console.log("symbolMax = "+symbolMax);var max  = document.getElementById("list").rang.value;console.log("max = "+max);var flag  = document.getElementById("list").brackets.value;console.log("flag = "+ flag);var isInteger  = document.getElementById("list").integer.value;console.log("isInter = "+ isInteger);showArithmetic(flag,amount,n,max,isInteger,symbolMax);}

(2)randomArithmetic()

function randomArithmetic(n,max,isInteger,symbolMax){//console.log(n);var digitalNum = n;var symbolNum = n - 1;for(var  i = 0; i < digitalNum; i++){if(isInteger == 0){//生成整数randomDigital[i] =Math.floor(Math.random()*max);}else{//生成小数var randomDitem = Math.random()*max;randomDigital[i] = randomDitem.toFixed(2); }}for(var j = 0; j < symbolNum; j++){var item = Math.floor(Math.random()*symbolMax);var randomSitem = new Symbol();switch(item){case 0:randomSitem.name = '+';randomSitem.value = 0;randomSymbol.push(randomSitem);break;case 1:randomSitem.name = '-';randomSitem.value = 0;randomSymbol.push(randomSitem);break;case 2:randomSitem.name = '*';randomSitem.value = 2;randomSymbol.push(randomSitem);break;case 3:randomSitem.name = '/';randomSitem.value = 2;randomSymbol.push(randomSitem);break;}}//console.log(randomDigital);//console.log(randomSymbol);}

(3)getArithmetic()

function getArithmetic(flag){var str ="";if(flag == 0){//不需要括号var i = 0;//console.log("done1");for( i = 0; i < randomDigital.length-1; i++){str = str + randomDigital[i] + randomSymbol[i].name;}//console.log("done2");str = str + randomDigital[i];}else{//需要括号var i = 0;var lock = 0;for(i = 0; i < randomDigital.length-2; i++){if(randomSymbol[i].value < randomSymbol[i+1].value){str ='('+  str + randomDigital[i] + randomSymbol[i].name;lock = 1;//console.log(str);}else{str = str + randomDigital[i];if(lock == 1){str = str + ')' + randomSymbol[i].name;lock = 0;}else{str = str + randomSymbol[i].name;}//console.log(str);}}str = str + randomDigital[i]if(lock == 1){str = str + ')';}str = str + randomSymbol[i].name + randomDigital[i+1];lock = 0;}//console.log(str);return str;}

六、心得总结

从第一次的结对作业到第二次完成,我们在合作中增添了许多默契,这次的作业里,我负责实现作业要求的主要功能和编程,周磊同学负责完成项目的测试和代码审查部分,从合作中体验到结对编程通过代码的分享合作编程可以提高很大的效率。

本次的项目我个人是感觉还有很多需要改进的地方,有一点遗憾之处,例如函数功能的完善、界面亲和力、多终端使用等等,对比我之前的阿超Javascrpit幼儿园级还是有了一些改进的。希望在下一次的团队作业中项目做到更加完善。

转载于:https://www.cnblogs.com/yichaoShare/p/8867871.html

(幼儿园毕业)Javascript小学级随机生成四则运算相关推荐

  1. java web随机生成四则运算_java四则运算生成器

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除 ...

  2. Android随机生成四则运算

    用Android Studio编写一个随机生成的2-4位数的简单四则运算,参考了很多资料以及同学的代码,选取了一种自己较为理解的方法,由于这种方法太过与繁琐所以只列举了其中部分,并不完善.下面是操作过 ...

  3. JavaScript按概率随机生成事件

    /* *在抽奖的活动中经常会用到这个算法,不同奖项的获取概率不同,要按概率去随机生成对应的奖品 * */ function random(arr1, arr2) {var sum = 0,factor ...

  4. python随机生成100个数_对100以内的数随机生成四则运算(python)

    功能需求 在100以内随机取3个数,借助两个运算符,实现随机打印300道四则运算的等式. 实现要点 1.调用numpy中的random方法生成随机数: 2.定义方法ari计算结果,根据opr给定的字符 ...

  5. c语言随机产生一组四则运算题,随机生成四则运算

    心得: 在编程过程中遇到的最大的问题就是随机数的产生问题.在c语言中函数rand()可以用来产生随机数,但是它缺不是一个真正的随机数,需要用到srand()函数.所以我用srand( (unsigne ...

  6. c语言随机生成四则运算10道,c语言编10道四则运算题

    满意答案 qy840430 2013.05.30 采纳率:47%    等级:13 已帮助:4228人 以下代码使用Turbo C做的,不支持汉字#include #include #include ...

  7. c语言随机产生三个大写字母,C语言编写的随机产生四则运算测试题

    题目:编写一个四则运算测试题的程序,要求每道题都要随机产生 解题思路: 1.编写测试题,且为30道,就要用到循环函数,因此想到用for()函数 2.随机产生两个数,就想到用rand()函数. 注:1. ...

  8. 随机生成四则运算式2-NEW+PSP项目计划(补充没有真分数的情况)

    PS:这是昨天编写的随机生成四则运算式2的代码:http://www.cnblogs.com/wsqJohn/p/5264448.html 做了一些改进. 补:在上一次的运行中并没有加入真分数参与的运 ...

  9. c语言中定义密码为英文字母,请设计 一个密码生成器,要求随机生成4组10位密码(C语言)...

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include #include #include ...

最新文章

  1. 怎么使用CorelDRAW 中的默认调色板
  2. Javascript 获取Url值 --转
  3. Android获取手机应用程序包的信息
  4. C语言printf()函数具体解释和安全隐患
  5. 享受Android应用程序的Java技术盛宴
  6. 蘑菇街撸掉80%研发岗,产品竟然裁到只剩2个人?
  7. 二层广播风暴产生原因、如何判断、解决--详细解答(附图,建议电脑观看)
  8. 人才梯队的搭建:55页集团人才梯队建设方案,梯队人员的管理
  9. 是、大于等于_血压高,是不是等于患上高血压?吃药之前,先搞清楚
  10. Crontab中文表达式解析
  11. 英语总结系列(十五):别样的三月
  12. eclipse远程发布代码的方法(SSH自动同步)
  13. BigDecimal 加减乘除计算
  14. C++学习(一零九)Resource Hacker工具介绍
  15. Excel功能逻辑结构图
  16. cdrom是多媒体微型计算机,2011年计算机一级考试理论试题:多媒体
  17. python实战演练(二)三级菜单
  18. howler.js_Howler.js可能是周围最好JavaScript音频库
  19. SPSS Modeler与Google地图的完美结合
  20. 不要小看 b=~a4

热门文章

  1. 用Python完成 “Excel合并(拆分)” 的各种自动化操作!
  2. 云计算机ppt模板,云计算的PPT模板
  3. 04-2. 打印九九口诀表(15)
  4. Redis知识总结(四万字)
  5. 即拼商城系统模式开发
  6. 上海高二物理公式整理
  7. Multisim14.0仿真:三相半波可控整流电路
  8. python早读读后感_《学习Python》读后感摘抄
  9. 基于Angularjs框架实现HTML5在线查看OFD文件
  10. 洛谷 p2387 [noi2014] 膜fa♂森林 lct维护最小生成树