zoukankan      html  css  js  c++  java
  • 作业生成程序的代码优劣分析

    代码作者: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++面向对象写法。

        

  • 相关阅读:
    搭建DG(data guard),及搭建过程中遇到的一些小问题 高伟
    介绍linux下vi命令的使用
    linux gcc编译器使用
    Linux进程编程介绍
    事件与接口实例讲解 C#
    Linux 2.6内核的编译步骤及模块的动态加载
    C# 各种定时器比较 zz
    linux下增加系统调用
    VirtualBox共享文件夹
    C++程序的单元测试(转贴)
  • 原文地址:https://www.cnblogs.com/Davidhwj/p/9707337.html
Copyright © 2011-2022 走看看