软件工程第五次作业

前言

首先感谢老师没有在假期留作业,让我回了一波家。。。假期已经结束了,开始好好学习,这次的作业我们选择了四则运算作为题目,作为一个纯后端,UI我也无能为力。。所以只实现了函数的功能。

题目要求

  • 能够自动生成四则运算练习题
  • 可以定制题目数量
  • 用户可以选择运算符
  • 用户设置最大数(如十以内、百以内等)
  • 用户选择是否有括号、是否有小数
  • 用户选择输出方式(如输出到文件、打印机等)
  • 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)

代码地址

领航员博客地址

合照


函数主体

生成函数


public static String generate(char c,String flag,int max){
        if(flag=="float"){
            Random random = new Random();
            StringBuilder str = new StringBuilder();
            str.append(random.nextInt()%100/100.00+Math.abs(random.nextInt()%max));
            str.append(c);
            str.append(random.nextInt()%100/100.00+Math.abs(random.nextInt()%max));
            return str.toString();
        }
        else if(flag=="int"){
            Random random = new Random();
            StringBuffer str = new StringBuffer();
            str.append(Math.abs(random.nextInt()%max));
            str.append(c);
            str.append(Math.abs(random.nextInt()%max));
            return str.toString();
        }
        else return "error";
    }

生成文件函数

/*
    *创建文件
    */
    public static void createFile(String filePath) {
        File file = new File(filePath);
        if (file.exists()) {
            //System.out.println("文件已存在");
        } else {
            try {
                File fileParent = file.getParentFile();
                if (fileParent != null) {
                    if (!fileParent.exists()) {
                        fileParent.mkdirs();
                    }
                }
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

写文件函数

/*
    *以追加方式写文件
    */
    private static void writeFile(String filePath, String conent) {
        BufferedWriter out = null;
        try {
            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath, true)));
            out.write(conent+"=");
            out.newLine();
            out.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

测试结果

总结

驾驶员-领航员模式。理论上这可构成最成熟的模式。

它的名字源于两个人可能作汽车旅行穿越未知区域的场景,驾驶员的注意力集中在机械方面,包括操控油门和刹车,调转车轮还有提防障碍与其他车辆。与此同时,领航员则考虑更宏观的问题。还要开多久才能下高速?手机是否能及时收到任何突发交通堵塞的提示?

把这对关系的比喻应用于编程,那么驾驶员就负责写代码,浏览文件,还有基础实现方法。领航员则着眼更长远的考虑并且检查错误。通过这种模式,能够高效率的复审代码,可以两个人一起讨论代码,相比以往的自己编码的模式,有很大的提升。

跟我合作的领航员充分的体现了一个合格的领航员所应具备的素质,对我的代码严格审查,提出了优秀的建议,使我认识到了自己的不足,严谨的思维,优秀的品质,这或许就是新时代青年的素质吧。

原文地址:https://www.cnblogs.com/BBchao/p/8810276.html