资源描述
制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分数。import java.util.Scanner;class Questionprivate int firstParam;private int secondParam;private String operator;private int answer;private int score;public int getFirstParam() return firstParam;public void setFirstParam(int firstParam) this.firstParam = firstParam;public int getSecondParam() return secondParam;public void setSecondParam(int secondParam) this.secondParam = secondParam;public String getOperator() return operator;public void setOperator(String operator) this.operator = operator;public int getAnswer() return answer;public void setAnswer(int answer) this.answer = answer;public int getScore() return score;public void setScore(int score) this.score = score;/构造public Question(int firstParam, int secondParam) this.firstParam = firstParam;this.secondParam = secondParam;public class StudentStudy private int questionNumber;private String operator;private Question questions;private int rightNumber=0;private int wrongNumber=0;public String getOperator() return operator;public void setOperator(String operator) this.operator = operator;public int getQuestionNumber() return questionNumber;public void setQuestionNumber(int questionNumber) this.questionNumber = questionNumber;public int getRightNumber() return rightNumber;public void setRightNumber(int rightNumber) this.rightNumber = rightNumber;public int getWrongNumber() return wrongNumber;public void setWrongNumber(int wrongNumber) this.wrongNumber = wrongNumber;public Question getQuestions() return questions;public void setQuestions(Question questions) this.questions = questions;public int getRandom()return (int)(Math.random()*10);public int calculateByOperator(String operator,int first,int second)switch(operator.charAt(0)case +:return first+second;case -:return first-second;default:return 0;public void makeQuestion()mywhile:while(questionsquestionNumber-1=null)Question question=new Question(getRandom(),getRandom();for(int i=0;questionsi!=null¿ionNumber;i+)if(question.getFirstParam()=questionsi.getFirstParam()&(question.getSecondParam()=questionsi.getSecondParam()continue mywhile;for(int i=0;iquestionNumber;i+)if(questionsi=null)questionsi=question;questionsi.setOperator(operator);questionsi.setScore(100/questionNumber);questionsi.setAnswer(calculateByOperator(operator,questionsi.getFirstParam(),questionsi.getSecondParam();break;public StudentStudy(int questionNumber)this.questionNumber=questionNumber;questions=new Questionthis.questionNumber;public static void main(String args)Scanner input=new Scanner(System.in);System.out.println(现在开始测试,请填写要测试的试题数量(1-100):);int number=input.nextInt();StudentStudy ss=new StudentStudy(number);System.out.println(请选择要测试的试题类型:1加法2减法);int type=input.nextInt();switch(type)case 1:ss.setOperator(+);break;case 2:ss.setOperator(-);break;default:System.out.println(输入有误,退出系统!);System.exit(0);ss.makeQuestion();for(int i=0;inumber;i+)System.out.println(第+(i+1)+题:+ss.getQuestions()i.getFirstParam()+ss.getQuestions()i.getOperator()+ss.getQuestions()i.getSecondParam()+=?);int answer=input.nextInt();if(ss.getQuestions()i.getAnswer()=answer)ss.setRightNumber(ss.getRightNumber()+1);System.out.println(回答正确!);elsess.setWrongNumber(ss.getWrongNumber()+1);System.out.println(回答错误!);System.out.println(您总共答了+ss.getQuestionNumber()+道题,答对+ss.getRightNumber()+道,答错+ss.getWrongNumber()+道,最后总分为:+ss.getRightNumber()*100/ss.getQuestionNumber()+分);
展开阅读全文