使用语言:JavaScript
需求分析:
程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间
每个练习题至少要包含2种运算符。不能存在分数、负数与非整数。
练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt”中,不要输出额外信息,文件目录与程序目录一致
功能设计:
判断n是否合法
生成n个题目,题目满足要求
判断题目的结果是否为分数、负数与非整数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
请输入学号<input type="text" id="nname">
请输入一个数字<input type="text" id="shu">
<div id="timu"></div>
<script type="text/javascript">
var nname=document.getElementById('nname');
var shu=document.getElementById('shu');
var timu=document.getElementById('timu');
function fuhao(o){
var oyo;
if(0 <o&&o<25){
oyo="+";
}else if(25<o&&o<50){
oyo="-";
}else if(50<o&&o<75){
oyo="*";
}else{
oyo="/";
}
return oyo;
}
function chuti(n){
for(i=0;i<n;i++){
var oo=Math.floor((Math.random()*10+4)/2);//有多少个符号
var aAarr=[];//符号数组
for(q=0;q<oo;q++){
var m=Math.floor(Math.random()*100+1);//随机符号
aAarr[q]=fuhao(m);
}
var oo1=oo+1;//有多少数字
var oAarr=[];//随机数数组
for(z=0;z<oo1;z++){
oAarr[z]=Math.floor(Math.random()*100+1);//随机数
}
var bigArarr=[];
for(p=0;p<oo1;p++){ //将符号与随机数混合
j=2*p;
bigArarr[j]=oAarr[p];
l=j+1;
bigArarr[l]=aAarr[p];
}
var suanshi=bigArarr.toString();
var osuan=suanshi.replace(/,/g,'');
osan=eval(osuan);
var r = /^\+?[1-9][0-9]*$/ ;//正整数+0
if(osan<0){ //判断为非负数
i=i-1;
}else if(r.test(osan)){ //判断为正整数+0
var para=document.createElement("p");
var node=document.createTextNode(osuan+"="+(osan));
para.appendChild(node);
timu.appendChild(para);
}else{
i=i-1;
}
}
}
shu.onblur=function(){
//添加学号dom操作
var parao=document.createElement("p");
var nodeo=document.createTextNode(nname.value);
parao.appendChild(nodeo);
timu.appendChild(parao);
var n=document.getElementById('shu').value;
var r = /^\+?[1-9][0-9]*$/ ;//正整数+0
if(r.test(n)){
chuti(n);
}else{
alert("请输入正确正整数!!!");
}
}
</script>
</body>
</html>