20194682は、自動的に四則問題初版レポートを生成し、

☆質問は尋ねました

( - * / +)、演算結果を100内で必要とされている(1)自動式2数の四則演算が10未満100生成

(2)複製式を破棄する。= 2 + 3 + 3 = 2及び式2が繰り返され、3 + = 3 + 2 =繰り返さない式

番号(3)タイトルをカスタマイズすることができます

(4)パラメータを制御することができます

      是否包含乘法和除法

      操作数数值范围可控(如操作数 在100以内   还是1000以内)

      操作数是否含负数    

(5)result.txtに格納されている外部ファイルのタイトルに動作を生成します

まず、ニーズ分析

为减轻老师的教学负担,以及方便学生的自我练习,提高学生整体成绩,特推出此款软件来自动编写四则运算小学题目。

第二に、機能的なデザイン

1、基本的な機能:

    (1)自动生成10道100以内的2个操作数的四则运算算式    
    (2)符号可随机生成

2、拡張

    (1)可以生成(+ - *  /)随机符号
    (2)剔除重复算式
    (3)可以用户输入生成题目数量
    (4)用户可选择是否包含乘除
    (5)用户选择题目范围,包括100以内以及1000以内
    (6)用户选择是否允许出现负数
    (7)用户选择是否保存到文件中

第三に、設計と実装

1、言語の使用

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

2、開発ツール

    (2)eclipse

3、アクションタイプと使用

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

図4に示すように、機能するように設計します

    (1)inputCount函数:用户输入打印个数
    (2)opCount函数:用户判断是否存在乘除
    (3)select100or1000函数:用户选择题目范围
    (4)ifFuShu函数:用户选择是否存在负数
    (5)ifSave函数:用户选择是否存到文件内
    (6)menu函数:用户界面,菜单
    (7)optt函数:实现随机生成并打印算式

第四に、テスト実行



V.コードショー


public void optt(int n, int opn, int sel, boolean flag, boolean ifSave) {// 通过参数控制功能
        // TODO Auto-generated method stub
        for (int i = 0; i < n; i++) {
            num1 = r.nextInt(sel) + 1;// 随机生成num1
            op = r.nextInt(opn);
            switch (op) {
            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 + "" + opt[op] + str2 + "=" + "   ");

                try {
                    FileWriter fw = new FileWriter("d:/result.txt");
                    fw.write(w.toString());
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            System.out.println(str1 + "" + opt[op] + str2 + "=");
        }
        
    }
    public int inputCount() {// 输入打印个数
        int n;//
        n = S.nextInt();
        return n;
    }

    public int opCount() {// 判断是否有乘除;1有,其他没有
        int opn;
        opn = S.nextInt();
        if (1 == opn)
            return 4;
        else
            return 2;
    }
    public int select100or1000() {// 选择一百以内的还是一千以内的
        int sel;
        sel = S.nextInt();
        if (1 == sel)
            return 101;
        else
            return 1001;
    }
    public boolean ifFuShu() {// 判断是否有负数 1有 其他没有
        int flag;
        flag = S.nextInt();
        if (1 == flag)
            return true;
        else
            return false;
    }
    public boolean ifSave() {// 是否存储存
        int flag;
        flag = S.nextInt();
        if (1 == flag)
            return true;
        else
            return false;
    }

VIの概要

    使用面向对象程序设计,其中分为,计算类,符号类,运算符类,菜单打印类,实现模块化程序设计。但由于技术有限,只能将类转化为方法,使用。这样也可以实现模块化,避免代码的重复使用。

七、PSP

おすすめ

転載: www.cnblogs.com/laxla/p/11521442.html