本次作业要求来源: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) }