本次作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232

我的github远程仓库的地址:https://github.com/mgf69/hard

结对同伴的学号姓名:201606120103 黄佳芸

 

一、基本要求:

  • 生成题目,单个题目最多不能超过4个运算符,操作数小于100。
  • 用户可以输入答案
  • 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。

 

二、扩展方向:

  • 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
  • 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
  • 用户答题结束以后,程序可以显示用户答题所用的时间
  • 程序可以设置皮肤功能,可以改变界面的颜色即可。

 

三、详细设计:

(1)随机生成问题集合

function randomQus(qusNum, maxNum) {
  var countArry = [qusNum]
  var charArry = []
  var correctAnswer = [qusNum]
  for (var k = 0; k < qusNum; k++) {
    countArry[k] = ''
  }
  for (var j = 0; j < qusNum; j++) {
    var n = getRandomNum(1, 3) //随机获得运算符的个数
    var numberOfCount = new Array(n + 1)
    var CountStr
    for (var i = 0; i <= n; i++) {
      var IsInt = getRandomNum(0, 1) //随机判断生成整数运算还是分数运算
      var molecule = getRandomNum(1, maxNum)
      var denominator = getRandomNum(1, maxNum)
      if (IsInt) numberOfCount[i] = getRandomNum(1, maxNum)
      //随机获得整数数组
      else numberOfCount[i] = TrueFract(molecule, denominator) //随机获得分数数组
    }
    for (var i = 0; i < n; i++) {
      var m = getRandomNum(0, 3) //随机选择运算符
      countArry[j] += numberOfCount[i] + arry[m] //随机数字和随机运算符拼接
    }
    countArry[j] += numberOfCount[n]
    //计算式子,若小于0,则把存放该式子的位置清空,重新生成式子
    var molecule = getMolecule(countIt(countArry[j]))
    var denominator = getDenominator(countIt(countArry[j]))
    var sum = eval(molecule / denominator)
    if (sum < 0) {
      countArry[j] = ''
      j--
    } else {
      var num = countIt(countArry[j])
      correctAnswer[j] = num
      console.log(num)
    }
  }
  var info = {
    question: countArry,
    answer: correctAnswer
  }
  return info
  console.log(info)
}
随机生成问题集合

相关文章: