小学生四则运算系统---计应193第二组杨婷宇

一.计划

 编写一个小学生四则运算出题程序

二.开发

1.需求分析

作为一名一年级小学生的家长,我希望制作一个出题软件,完成100以内的正整数的加减法题随机产生。以便减轻我的家庭负担。

2.生成设计文档

3.设计复审

4.代码规范

注意大小写,注意缩进,括号一定要配对,注意要分行。

5.具体设计

系统开始,随机产生10道加法或者减法,计算完成后,统计做了多少道题,正确率,以及用了多少时间,系统结束。

6.具体编码

package student;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class TestSystem {

private int num1; //声明两个操作数
private int num2;
private String operateEle; //声明操作符
private static int grade = 0; //记录最后得分
//定义无参构造方法
public TestSystem() {

}

//定义带参数的构造方法
public TestSystem(int num1,int num2,String operateEle) {

this.num1 = num1;
this.num2 = num2;
this.operateEle = operateEle;
}

//设置setter()和getter()方法
public int getNum1() {
return num1;
}

public void setNum1(int num1) {
this.num1 = num1;
}

public int getNum2() {
return num2;
}

public void setNum2(int num2) {
this.num2 = num2;
}

//覆写toString()方法
public String toString() {

return this.num1 + this.operateEle + this.num2;
}

//取得表达式的正确结果
public int getResult() {

int result = 0;
switch(this.operateEle) {

case "+": result = this.num1 + this.num2;break;

case "-": result = this.num1 - this.num2;break;

case "*": result = this.num1 * this.num2;break;

case "/": result = this.num1 / this.num2;break;
}

return result;
}

//向屏幕输出总成绩
public static void getGrade() {

System.out.println( "考试结束,最后成绩为:" + TestSystem.grade );
}

//答对问题,将对应的成绩加入总成绩
public static void setGrade(int grade) {

TestSystem.grade += grade;
}

//将总成绩清零
public static void clear() {

TestSystem.grade = 0;
}
}

 

package student;
import student.Operate; //导入自定义的两个类
import student.TestSystem;
/*
* Description:小学简单四则运算,系统随即出题,每题20分

*
* */
public class DemoTwo4 {

public static void main(String args[]) {

int i = 0; //记录答题个数
int inputResult = 0; //接收用户输入的结果
do {
//实例化TestSystem类型对象
TestSystem ts = new TestSystem(Operate.getRandom(),Operate.getRandom(),Operate.getOperateEle());
System.out.println(ts); //输出表达式
inputResult = Operate.getInput(); //用户输入
if( inputResult == ts.getResult() ) { //回答正确,加上对应的分值分
System.out.println( "回答正确!" );
TestSystem.setGrade(20);
}else { //回答错误

System.out.println( "回答错误!" );
}
i++;

}while(i < 5); //一共五道题(方便验证)
TestSystem.getGrade(); //打印最后结果
TestSystem.clear(); //总成绩清零
}
}

 

package student;

import java.util.Random;
import java.util.Scanner;

public class Operate {

//定义方法,返回一个100以内的随机数
public static int getRandom() {

Random ran = new Random();

return ran.nextInt(100);
}
//定义方法,返回操作符
public static String getOperateEle() {

String[] operateEle = {"+","-","*","/"};
Random ran = new Random();

return operateEle[ran.nextInt(4)];
}
//定义方法,取得用户输入的结果
public static int getInput() {

Scanner scan = new Scanner(System.in); //实例化Scanner对象
int result = 0;

System.out.println( "请输入结果:" );
result = scan.nextInt();
return result;

}
}

 

posted @ 2021-05-30 20:35  草莓曲奇饼  阅读(101)  评论(0编辑  收藏  举报