• 作业生成程序的代码优劣分析


    代码作者:CLZ

    所用语言:C++

    程序功能一:用户登陆

    流程图:

    简述:

      将预设的九个账户信息存入User对象数组,通过遍历数组检查账户合法性。

    优点:

      没有简单的通过if条件判断,方便添加/注册用户,可扩展性高。

    缺点:

       User对象的数组长度没有参数化,导致添加新用户时要修改遍历代码。

    程序功能二:登陆后切换年级

     流程图:

    简述:

      两个while循环和一个continue语句形成输入判断和跳转。

    优点:

      流程结构清晰,只用了一个continue。

    缺点:

      1,输入都用的是cin,cin无法读取空格,用户的不规范操作可能会导致不可预料后果。

      2,在输入题目数量时无法切换年级,切换年级只能在最外层循环执行。

    程序功能三:生成题目

    简述:

      传递参数调用MakePaper(user_no,type_flag,question_num)函数,三个参数分别表示:用户编号、生成题目的年级,生成题目的数量。

      MakePaper函数根据参数类型进行条件判断分别调用生成小学(BasicMake)、初中(NormalMake)、高中(HardMake)题目的函数。

      小学题目生成算法:

        根据运算符个数随机出括号的插入位置===>依此随机出运算符和整数添加到字符串末尾===>返回字符串

      初中题目生成算法:

        根据运算符个数随机出括号的插入位置===>随机flag数组(用来控制题目每个位置应插入数字、运算符)==>for循环形成题目,在每生成一个数字

        后随机判断是否要添加^0.5和^2。

      高中题目生成算法:

        在初中题目的基础上再添加一个flag数组,用来控制三角函数插入的位置。

    优点:

      1,按顺序生成一个题目中的所有数字和符号,只用到了字符串的append()操作,运行速度快。

      2,根号和平方都以次方表示,生成起来较方便。                                                                                                       

    缺点:

      1,只生成了一对括号。

     程序功能四:查重

    简述:

      读取目标文件夹下所有txt文件,将题目序号全替换为0,查找新生成的题目是否在文件中。

    优点:

      能完整的查重

    缺点:

      没生成一道题目都要全部读取文件一遍,实际上可以只读取一遍文件,存入内存,之后只需遍历就行。

     总结:

      总体效果很好,除了查重部分的文件读取。全部代码几乎全是面向过程的c语言写法,建议采用C++面向对象写法。

        

  • 相关阅读:
    第一次设计作业
    项目选题报告(团队)
    第二次结队作业
    团队第一次作业
    原型设计(结对第一次)
    第二次作业——个人项目实战
    对于软件工程专业的思考
    电场与磁场
    透明层上的层或数字不透明
    Visiual Studio2012 CLR20r3问题
  • 原文地址:https://www.cnblogs.com/Davidhwj/p/9707337.html
Copyright © 2020-2023  润新知