其他分享
首页 > 其他分享> > 20194669自动生成四则运算题第一版报告

20194669自动生成四则运算题第一版报告

作者:互联网

一、需求分析

家长和老师为了让孩子在寒暑假做一些练习题,增强孩子的计算能力。同时在课堂上也减轻老师的教学负担,所以开发此套小学生出题程序。

二、功能设计

1、基本功能:

(1)自动生成10道100以内的2个操作数的四则运算算式    
(2)(+ -  */)符号可随机生成
(3)运算结果也在100以内

2、扩展功能

(1)可以自动剔除重复算式
(2)出题题目数量可根据用户情况定制
(3)可以选择是否包含乘法和除法
(4)操作数数值范围可控性(如操作数 在100以内,还是1000以内)
(5)用户选择是否允许出现负数
(6)可以选择生成的运算题存储到电脑中

三、设计实现

1、使用语言

(1)java语言,版本jdk1.8.0

2、开发工具

(1)eclipse
(2)Notepad++

3、使用的类及作用

(1)Scanner类:用于用户输入输出
(2)Random类:用于随机生成数
(3)FileWriter类:用于存储文件

4、重要函数

(1)inputNumber函数:将要输入的出题个数
(2)oppNumber函数:是否存在乘除计算题
(3)selectNumber函数:选择题目的操作数的范围(100、1000)
(4)isNegative函数:是否存在负数
(5)isSave函数:是否存到电脑内
(6)MENU函数:菜单

四、测试运行

五、代码片段展示

public void opptt(int n, int oppn, int sel, boolean flag, boolean ifSave) {
for (int i = 0; i < n; i++) {
num1 = r.nextInt(sel) + 1;
opp = r.nextInt(oppn);
switch(opp){
case 0:
num2 = r.nextInt(sel - num1);
break;
case 1:
num2 = r.nextInt(num1);
break;
case 2:
num2 = r.nextInt(sel / num1);
break;
case 3:
num2 = r.nextInt(num1);
break;
}

        if (flag) {
            int f = r.nextInt(2);
            int p = r.nextInt(2);
            if (0 == f)
                num1 = -num1;
            if (0 == p)
                num2 = -num2;
        }
        if (num1 < 0)
            str1 = "(" + num1 + ")";
        else
            str1 = "" + num1;
        if (num2 < 0)
            str2 = "(" + num2 + ")";
        else
            str2 = "" + num2;
        if (ifSave) {
            w.append(str1 + "" + oppt[opp] + str2 + "=" + "   ");

            try {
                FileWriter fw = new FileWriter("d:/result.txt");
                fw.write(w.toString());
                fw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println(str1 + "" + oppt[opp] + str2 + "=");
    }
    
}
public int inputNumber() {  // 将要输入的出题个数
    int n;
    n = S.nextInt();
    return n;
}

public int oppNumber() {// 是否存在乘除计算题
    int oppn;
    oppn = S.nextInt();
    if (1 == oppn)
        return 4;
    else
        return 2;
}
public int selectNumber() {// 选择题目的操作数的范围(100或1000)
    int sel;
    sel = S.nextInt();
    if (1 == sel)
        return 101;
    else
        return 1001;
}

六、总结

本程序代码主要包含以下几个模块:
(1)inputNumber函数:将要输入的出题个数
(2)oppNumber函数:是否存在乘除计算题
(3)selectNumber函数:选择题目的操作数的范围(100、1000)
(4)isNegative函数:是否存在负数
(5)isSave函数:是否存到电脑内
(6)MENU函数:菜单
    在java语言中有强大的封装,允许一个组件声明它的公有类型(public)中,哪些可以被其他组件访问,哪些不可以。
这些特性将有益于应用的开发者、类库的开发者和java se平台直接的或者间接地实现者。它可以使系统更加健壮,并且可以提高他们的性能。
    本程序各个模块互相影响,也互相调用。

七、PSP

PSP 预估时间 实际时间
计划 1 2
需求分析 0.5 1
生成设计文档 0.5 1
代码规范 0.5 0.5
具体设计 1 2
具体编码 2 5
代码复审 1 2
测试 1 2
总结 1 1
总共花费时间 8.5 16.5

标签:num1,num2,第一版,int,四则运算,nextInt,20194669,sel,函数
来源: https://www.cnblogs.com/hou520/p/11536256.html