一、项目源码

  GitHub的链接地址:https://github.com/13993013291/Shiyan3.git

二、项目报告

1、需求分析

  (1)程序能够从题库随机选择20道混合运算,用户输入答案,程序检查答案是否正确,每道题正确计5分,测试结束后给出总分;

  (2)题库文件生成采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:

           201571030122/201571030129   《小学生四则运算》  结对项目

  (3)程序提供三种练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;

  (4)程序允许进行多轮测试,并用柱状图显示多轮测试分数;示例如下:

             201571030122/201571030129   《小学生四则运算》  结对项目

       (5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;

  (6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间;

  (7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。

2、软件设计

       程序设计类图如下:

       201571030122/201571030129   《小学生四则运算》  结对项目

3、程序核心代码

public static void One() throws IOException {
        hehe=9;
        for (int i = 0; realCount < number; i++) {// 当已产生的题目个数<共需要的题目个数
            if (realCount == 0) {// 题目数=0时
                One[0][0] = new Random().nextInt(range);// 产生第一个元素
                twoPlus(remainmember);// 执行后,产生一个运算符和一个元素
                used[realCount]=(remainmember*2-1);
                realCount++;// 题目数+1
                File file = new File("Exercises.txt");
                FileWriter fw = new FileWriter(file, true);
                PrintWriter pw = new PrintWriter(fw);
                pw.print(
                        realCount + "." + One[realCount - 1][0] + (char) One[realCount - 1][1] + One[realCount - 1][2]);
                pw.println();
                pw.close();
                
            } else {
                temp[0] = new Random().nextInt(range);
                tempPlus(remainmember);// 用数组temp[]存放一个"待查重的题目"
                if (!compare2()) {
                    One[realCount][0] = temp[0];// 将temp[]里的题目放入“已查重数组 One[]”
                    twoWithTemp(remainmember);// 将temp[]里的题目放入“已查重数组 One[]”
                    used[realCount]=(remainmember*2-1);//2-3  3-5  4-7 5-9
                    realCount++;// 题目个数+1
                    File file = new File("Exercises.txt");
                    FileWriter fw = new FileWriter(file, true);
                    PrintWriter pw = new PrintWriter(fw);
                    pw.print(realCount + "." + One[realCount - 1][0] + (char) One[realCount - 1][1]
                            + One[realCount - 1][2]);
                    pw.println();
                    pw.close();
                }
            }
            if (i == 2) {
                remainmember++;
                oneMore(number - realCount);
            }
        }
        File file = new File("Exercises.txt");
        readFile(file);
    }

    // 产生多个运算符的题目
    public static void oneMore(int remainNumber) throws IOException {
        int index = 1;
        if (realCount == number)
            return;
        else {
            count = 0;
            for (int i = 0; count < remainNumber; i++) {
                if (i == 0) {
                    One[realCount][0] = new Random().nextInt(range);
                    twoPlus(remainmember);
                    count++;
                    used[realCount]=(remainmember*2-1);
                    realCount++;
                    File file = new File("Exercises.txt");
                    FileWriter fw = new FileWriter(file, true);
                    PrintWriter pw = new PrintWriter(fw);
                    pw.print(realCount + "." + One[realCount - 1][0]);
                    for (int i3 = 0; i3 < remainmember - 1; i3++) {
                        pw.print((char) One[realCount - 1][index]);
                        pw.print(One[realCount - 1][index + 1]);
                        index += 2;
                    }
                    pw.println();
                    pw.close();
                    index = 1;
                } else {
                    temp[0] = new Random().nextInt(range);
                    tempPlus(remainmember);
                    if (!compare2()) {
                        One[realCount][0] = temp[0];
                        twoWithTemp(remainmember);
                        count++;
                        used[realCount]=(remainmember*2-1);
                        realCount++;
                        File file = new File("Exercises.txt");
                        FileWriter fw = new FileWriter(file, true);
                        PrintWriter pw = new PrintWriter(fw);
                        pw.print(realCount + "." + One[realCount - 1][0]);
                        for (int i3 = 0; i3 < remainmember - 1; i3++) {
                            pw.print((char) One[realCount - 1][index]);
                            pw.print(One[realCount - 1][index + 1]);
                            index += 2;
                        }
                        pw.println();
                        pw.close();
                        index = 1;
                    }

                }
                if (i == 3) {
                    remainmember++;
                    oneMore(number - realCount);
                    break;
                }
            }
        }
    }
产生运算式

相关文章:

  • 2022-01-01
  • 2022-01-30
  • 2021-11-17
  • 2021-09-28
  • 2021-10-31
  • 2021-06-24
  • 2021-12-09
猜你喜欢
  • 2021-07-12
  • 2021-12-29
  • 2021-07-13
  • 2021-07-21
  • 2022-02-14
相关资源
相似解决方案