最近没事写了个在控制台实现简单的加减乘除运算的出题作答功能,通过比较输入的答案与正确答案,判断解答是否正确。
具体实现代码如下:
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TestCalculation {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
List<Calculation> list=producTenQuestion();
System.err.println("请输入用户编号:");
String userNo=sc.nextLine();
User user=new User();
user.setUserNo(userNo);
System.err.println("开始答题:");
int i=0;
int count=0;
for(Calculation cal : list) {
System.err.println("第"+(count+1)+"道题:");
System.err.print(cal.getQuestion());
float res=sc.nextFloat();
if(res==cal.getResult()) {
i++;
}
count++;
}
user.setRightNum(i);
user.setScore(10*i);
System.err.println("您答对了"+i+"道,答错了"+(10-i)+"道,得分为"+user.getScore());
sc.close();
}
/**
* 随机生成10道题
* @return
*/
public static List<Calculation> producTenQuestion() {
List<Calculation> list=new ArrayList<Calculation>();
Float result = null;
String question = null;
for(int i=0;i<10;i++) {
int calType=(int)(Math.random()*4);
Calculation cal=new Calculation();
cal.setCalType(calType);
int num1=(int)(Math.random()*101);
int num2=(int)(Math.random()*101);
switch (calType) {
case 0:
question=num1+" + "+num2+"=";
result=(float) (num1+num2);
break;
case 1:
question=num1+" - "+num2+"=";
result=(float) (num1-num2);
break;
case 2:
question=num1+" * "+num2+"=";
result=(float) (num1*num2);
break;
case 3:
num2=(int)(Math.random()*100+1);
question=num1+" / "+num2+"=";
result=(float) (num1/num2);
break;
default:
break;
}
cal.setQuestion(question);
cal.setResult(result);
list.add(cal);
}
return list;
}
static class User{
private String userNo; //用户编号
private String name;
private Integer rightNum;
private Integer score;
public String getUserNo() {
return userNo;
}
public void setUserNo(String userNo) {
this.userNo = userNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getRightNum() {
return rightNum;
}
public void setRightNum(Integer rightNum) {
this.rightNum = rightNum;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
}
static class Calculation{
private Float result;
private Integer calType;//+、-、*、/
private String question;
public Float getResult() {
return result;
}
public void setResult(Float result) {
this.result = result;
}
public Integer getCalType() {
return calType;
}
public void setCalType(Integer calType) {
this.calType = calType;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
}
}
可直接运行main方法即可,大家可以尝试下。