个人项目评测——中小学数学卷子生成

结对编程中双方互相审查代码是一个相互学习的过程,从对方的代码中可以学到一些想不到的新的想法。正所谓孔子说的“三人行,必有我师焉”。

优点:

1、建立一个用户类,将对用户的登录、切换、生成试卷、输出文件等操作封装到类中,具有良好的封装性和可扩展性。

class User {
    private:
        string Passward;
        int Number;
        string Name;
        string Type;
        string folderPath;
        string Path;
        ofstream Paper;
        stringstream question;
    public:
        void SignIn();
        void Exam_Paper();
        void Symbol(int option,int ope);
        void Switch_Type();
        void Name_File();
        bool Check();
};

2、在生成试卷的函数中对代码进行了重用,减少了代码量。(相较之下自己分了三类处理,整个函数的代码显得冗长)

3、思路清晰,主函数中只简单调用了函数,代码量很少。

4、对于操作数,有先后问题(比如根号在操作数前而平方在操作数后),她采取的方式是建立一个函数对操作数进行处理,这非常大地减少了函数的代码量。

void User::Symbol(int option,int ope) {//对每个操作数进行处理
    switch(option) {
        case 0://不处理,即小学的题目
            question<<ope;
            break;
        case 1:
            question<<ope<<"^2";
            break;
        case 2://option为0-2时,表示生成初中的题目
            question<<"√"<<ope;
            break;
        case 3:
            question<<"sin"<<ope;
            break;
        case 4:
            question<<"cos"<<ope;
            break;
        case 5://option为0-5时,生成的是高中的题目
            question<<"tan"<<ope;
            break;
    }
}

缺点:

1、对于检查是否生成相同题目还存在一定问题。

2、没有生成文件夹,在实际操作中意义不大。

原文地址:https://www.cnblogs.com/jiangjia/p/11552398.html

时间: 2024-10-29 16:30:29

个人项目评测——中小学数学卷子生成的相关文章

个人项目:中小学数学卷子自动生成程序-队友代码测评

结对编程-队友代码分析 上一周,我们完成了个人项目编程.在经过对队友代码的分析,我感触颇深,觉得非常有必要来写一篇文章分析一下队友的代码,我是用的java,而队友用的c++,以下开始正文! ------------------------------------------------------------------------------- 项目需求简述: 个人项目:中小学数学卷子自动生成程序 用户: 小学.初中和高中数学老师. 功能: 1.命令行输入用户名和密码,两者之间用空格隔开(程序

中小学数学卷子自动生成程序分析

结对编程对方个人项目分析 个人项目:中小学数学卷子自动生成程序 用户:小学.初中和高中数学老师. 功能: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学.初中和高中三个选项中的一个.否则提示“请输入正确的用户名.密码”,重新输入用户名.密码: 2.登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学.初中和高中三

中小学数学卷子自动生成程序分析 个人项目

每个人都弄了一个个人项目,然后结队,编程实现更多功能. 程序要求用户预设账号登录后可以选择自动生成不同数量(10-30道).不同难度(小学.初中.高中)的数学卷子到txt文本中. 通读项目需求,本次程序主要难点集中在题目严谨的数学逻辑与随机出题的结合以及出题不重复的实现. 下面简单分析一下李同学的工程编写优缺点: 优点: 文件路径使用相对路径.文件路径具有相对路径和绝对路径两种形式,而绝对路径可能会使得程序的可重用性差,使得在别的终端上不能运行,而在程序中使用相对路径则会变的有极强的适应性,包括

中小学数学卷子自动生成 - 结对项目wjy的代码分析

[实现思路] 命令行输入用户名和密码,匹配试卷难度,每个类的账号只能生成当前难度下的试卷: 根据试卷难度生成题目,主要是随机生成操作数的个数,每个操作数的形式,两个操作符之间的操作符,最后是随机生成括号,因为设计题目的合理性,所以在写随机生成的时候需要考虑到各种可能的情况: 最后生成的试卷以“年-月-日-时-分-秒.txt”命名方式生成到以用户名命名的文件夹中. [函数结构] public static void main(String[] args) static void init() st

中小学数学卷子自动生成程序: 结对编程对方代码分析

需求分析: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学.初中和高中三个选项中的一个.否则提示“请输入正确的用户名.密码”,重新输入用户名.密码: 2.登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学.初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题.每道题目的操作

中小学数学卷子自动生成程序-结对编程之队友代码分析

一.编程语言:C++ 二.代码解读与分析: 1. 项目逻辑 通过输入信息与数组中存储账户信息比对完成用户登录.根据不同的类型要求生成相应类型的试卷并查重.将生成题目以指定的形式存放在指定文件夹下.过程中可切换试卷类型. 2.函数功能说明 int main():主函数负责调用各个功能函数,将各个功能模块按照项目实际的使用情况与应用逻辑结合适当的提示性信息进行组织和套用. void SetPrimary(int n):生成小学类型的试卷. void SetMiddle(int n):生成初中类型的试

中小学数学卷子自动生成程序——结对分析

在上一周的个人项目中队友用的是C++,代码运行正常,且基本实现了需求文档的要求,然后关于她的代码,我觉得有很多可以借鉴的地方,也有一些需要改进的地方. 优点: 1.总体结构很清楚,思路清晰.从登录到功能切换,从试卷生成到题目生成,以及重复性检测,每一步都有对应的函数代码,思路清晰,逻辑清楚. 2.代码的编写基本符合规范要求,且注释基本到位,可读性强.例如在前面的主要函数声明中注释很清楚地标明清楚了函数的作用,函数基本命名符合规范,可以根据名字而知其意,变量命名也基本符合规范,这一点我得向她学习.

团队项目评测

第一部分 调研,评测 评测 安卓端评测 测试人:文垚 描述最简单直观的个人第一次上手体验. 第一次上手体验,操作简单,界面简洁.课程表与超级课程表差不多,不同课程不同颜色显示,简洁明了.但是整体界面在简洁中透露出些许简陋,整体UI设计缺少灵性,只有最基本的框架没有进行优化,不够美观.特别是教务通知这一版块,显示过于简陋,教务通知显示经常出现排版混乱的问题. 使用思维导图,描述福大助手的结构体系 按照描述的bug定义,找出至少两个功能性的比较严重的bug. 用专业的语言描述bug(每个bug 不少

spring中配置quartz调用两次及项目日志log4j不能每天生成日志解决方法

在quartz中配置了一个方法运行时会连续调用两次,是因为加载两次,只需在tomcat的server.xml中修改配置 <Host name="www.xx.cn" appBase="" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="webapps/demo" reloadable=&quo