一、前言

  首先,在这里特别感谢我的结对编程伙伴HnuLyx,他在算法上和设计思路上都与我有很大的不同,个人项目互评中,为我的项目提出了很多很好的建议,让我在认清自己不足的同时,了解到很多以前没有注意的地方。此处附上链接,便于以后翻阅。

  其次,我来对HnuLyx的个人项目稍作评论,在发现内在不足的同时,学习长处,取长补短。

二、测试与评价

1. 黑盒测试

  在拿到项目文件后,我先进行了黑盒测试,从运行上体会程序的编写。

  (1) 优点1:界面设计较好(是我要学习的地方),用户体验感会得到适度的提升,操作简单易懂,便于操作,题目正确;

     缺点1:平方的“^2”换成“²”(Alt+0178就可以用键盘打出);

           

  (2) 将已建立的文件夹删除后,显示报错;

      缺点2:但是建议制作创建文件夹的操作,mkdir()函数可以解决这个问题,可以为大批量用户使用时,节省很多不必要的创建文件夹的操作;

    

    

  (3) 缺点3:与描述不符,建议修改,明明是退出当前用户,却返回上一界面,需要优化。

    (虽然已经实现了需求的退出功能,但是使用上的合理性也是要考虑的呢,可不要功亏一篑咯~)

    

  (4)优点2:数据容错性较高,错误输入会提示并可供重新输入。

    

  以上,为黑盒测试的全部内容,功能正常,界面舒适。

2. 白盒测试

  为了进行白盒测试,HnuLyx与我用了一个下午来交流双方的代码,并且进行讨论。

  经过他的讲解,我对系统内部的结构和工作原理有一个清楚的了解,明白盒子内部的东西以及里面是如何运作的,从而考虑测试用例,发现内部的长处与不足。

  (1)优点3:整体上,先大致浏览代码,我会清晰的感觉到,HnuLyx的代码模块化设计良好,一个函数实现一个功能,极大的增强了代码的逻辑性,可读性;

     (虽然我也有写一些函数,但是在功能的架构上,可能略逊与他,不是特别清晰)

    

  (2)优点4:登录数据保存在文件中;

     (其实,通过了解代码后才发现,HnuLyx为了提高程序的可拓展性,将用户登录数据存储在txt文件中,每次登录时进行查询。

     如果在以后拓展程序,这将会带来极大的便利。)

    

    

  (3)缺点4:在了解了该程序算式生成的算法后,经过多次测试,我发现了一个问题,虽然题目达到需求的要求,但是无法将题目完全随机,如:

        每个操作数只能有一个左括号,举个例子:7*(8+(9+1))+5   而不能生成如7*((8+9)+1)+5。

    (右括号受左括号限制,需求中最多五个操作数,则右括号最多3个:A + ( B + ( C + ( D +E)))。)此处数据过多,不便截图展示,抱歉。

  (4)优点5:HnuLyx在编程时,他除了考虑了架构的合理性,还考虑到了程序的性能问题,有所针对的优化部分代码,提高程序性能。

        如,通过getchar(),cin,scanf三者性能的比较,得到getchar()的效率最高,并且加以调用,以便未来在查重时大量数据的输入效率问题。

  

  以上,为白盒测试的全部内容。再次感谢HnuLyx同学的耐心讲解。

三、简单几句

  在软件工程导论的学习过程中,我逐渐有了一种职业感:个人项目、结对编程、团队项目。逐渐,逐渐,我们将在学习中逐渐成为真正有能力,有担当的中国青年程序员!
  我们会在老师的引导下坚持相互学习,共同进步。
  相信在结对编程过后,我们都会有长足的进步!
 

HNU_中小学数学卷子自动生成程序(个人项目)简要分析的更多相关文章

  1. 中小学数学卷子自动生成程序--对G同学的代码分析

    前几天,在课程要求下完成了个人项目的项目工程编写,即一个中小学数学卷子自动生成程序. 程序主要功能是用户预设账户登录后可以选择等级进行对应的小中高的数学卷子对应出题生成txt文本. 本文针对partn ...

  2. ExtJS6的中sencha cmd中自动创建案例项目代码分析

    在之前的博文中,我们按照sencha cmd的指点,在自己win7虚拟机上创建了一个案例项目,相当于创建了一个固定格式的文档目录结构,然后里面自动创建了一系列js代码.这是使用sencha cmd自动 ...

  3. 中小学生试卷自动生成程序--jialin大佬代码分析

    结对编程代码评价 有幸和小jialin结对编程.拿到jialin的代码后. 我先是尝试用idea运行.结果报了如下错误. 无法加载主类,再尝试用eclipse运行. 好的,可以运行,那为什么用idea ...

  4. Jenkins自动部署Tomcat项目

    Jenkins自动部署Tomcat项目 1.安装jenkins 插件 启动Jenkins,进入系统管理-插件管理: 选择Deploy to container Plugin 插件安装:

  5. Yeoman自动构建js项目

    Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...

  6. Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn+maven+tomcat)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...

  7. 解放双手 | Jenkins + gitlab + maven 自动打包部署项目

    前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...

  8. Demo005 小学四则运算自动生成程序

    目录 小学四则运算自动生成程序 0.传送门 1.题目要求 2.功能实现 2.1 总体设计 2.2 用户欢迎界面 2.3 用户功能界面 2.4 屏幕输出 2.5 文本输出 2.6 获取时间 2.7 用户 ...

  9. Linux下Jenkins与GitHub自动构建Node项目(Vue)

    根据上篇文章<Linux下Jenkins与GitHub自动构建NetCore与部署>,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发, ...

随机推荐

  1. Unity进阶:用AssetBundle和Json做了一个玩家登陆界面

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  2. Fire Balls 05——坦克和子弹的制作以及炮台发射子弹

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  3. WebGL简易教程(三):绘制一个三角形(缓冲区对象)

    目录 1. 概述 2. 示例:绘制三角形 1) HelloTriangle.html 2) HelloTriangle.js 3) 缓冲区对象 (1) 创建缓冲区对象(gl.createBuffer( ...

  4. Super和This总结

    this: this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. Java关键字this只能用于方法体内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自 ...

  5. Ubuntu 18.04 安装 onedrive

    问题 在Ubuntu 18.04上安装Onedrive 问题背景 对于文档的同步,还是喜欢用Onedrive,主要因为Onedrive对文档的在线编辑支持很好. Onedrive初始免费容量5G,加上 ...

  6. 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(3)-项目依赖注入

    简介 依赖注入主要是一种结构性的模式,注重的是类与类之间的结构,它要达到的目的就是设计原则中最少知道和合成复用的原则,减少内部依赖,履行单一职责,最终就是强解耦.依赖注入目前最好的实现就是依赖注入容器 ...

  7. jupyter notebook快速入门教程

    什么是jupyter notebook? 官网:https://jupyter.org/ 上面是官方网址,就简单的介绍下,就不多做解释了,juoyter notebook,就是一个web应用,比较强大 ...

  8. MapReduce案例运行及分词

    首先查询进程,发现hadoop并没有启动 如何配置hadoop,参考我的另外一篇博文<Hadoop环境准备> 接下来,启动hadoop start-all.sh 或者 start-dfs. ...

  9. WebGL简易教程(四):颜色

    目录 1. 概述 2. 示例:绘制三角形 1) 数据的组织 2) varying变量 3. 结果 4. 理解 1) 图形装配和光栅化 2) 内插过程 5. 参考 1. 概述 在上一篇教程<Web ...

  10. NOIP2012 D2 T3 疫情控制 洛谷P1084

    题目链接:https://www.luogu.org/problemnew/show/P1084 算法:倍增,二分答案,贪心 + 瞎搞.. 背景:上学长的数论课啥也听不懂,于是前去提高组找安慰.不巧碰 ...