结对编程——中小学数学卷子自动生成程序互评

 

此次个人项目的难度其实并不高,且我与我的同伴都是使用C++进行实现。主要注意点是要使用类来实现相应功能,使得代码更加规范,可读性与扩展性更好。

 

题目要求

  1. 使用命令行作为交互环境,用户名和密码用空格隔开(这里没有说空格个数,所以需要仔细处理!)

  2. 程序主要功能

   a.如果输入”切换为XX”表示切换类型,在命令行输入切换为小学或者切换为初中或者切换为高中,然后输入题目数量(10-30)。

   b. 如果输入-1表示退出登录 可以重新登录。

   c. 如果输入10-30的整数,表示生成几个对应类型的题目。

   如果输入数字不是这几种情况,就提示输入不合法,请重新输入;如果没有输入,则提示请输入所需值。

 

  3. 将生成的试卷生成在对应的文件夹中,由于没有新的用户类生成,所以其实文件夹的个数是固定的(一共9个用户),这里可以先创建好,直接使用即可。

优点

  1. 首先其是使用C++进行项目开发的。性能尚可。

  2. 他定义了一个User类将大部分功能都集中在了其中。

 

 

 

3. 注释非常详细。对应功能也能满足个人项目的开发需求。结构清晰。程序结构明确,便于设计和修改。所有类都在main下。比较稳定。

4. 用户体验正常。输入时有相应提示。不会轻易导致用户输入错误。

 

 

 

5. 代码中函数的命名和参数的命名具有一定的描述性,更加便于阅读。

 

缺点

    1. 没有以项目的形式,来编写代码,只有一个cpp文件。

       虽说这个项目较小,但是应该要使用项目的形式进行开发,会增强程序的可读性,以及方便程序管理。

   2. 可扩展性较差,建议User作为虚基类,来创建相应的类。

      比如User类做父类,只有两个虚函数,登录函数,和功能选择函数,三个必要的私有变量,类型、用户名、密码。这样再到相应的类中去重载相应函数,无形中减少了一部分代码量,并且也会时怎个程序变好理解!

   3. 输入没有进行错误检测。

      万一用户发现输入错误,也进入了。不投诉你到死。

      解决方案:用getline先以字符串的形式读入,再处理。而不是简单的使用cin。

   4. 应该将只会被类自身函数调用的类函数,放到private中。这样可以防止别人直接通过类对象访问。

      比如这里只用将LoginAccount函数放在public,用于登录即可。其他的函数都可以放在private中,供其调用

   5. 文件夹没有提前创建好。

      所以我直接运行其代码生成不了试卷……

      我连其试卷都,没看……

   

   其只有一个cpp文件,没有指定的文件夹,且文件名也不规范…..