思维碰撞——结对编程:对cyb项目代码的分析

结对编程对程延博的项目代码分析

一.需求实现分析

用户名密码存储,输入,和比较

优:

       需求正确并完整地实现了

用户密码存放于txt文件里,可以自行编写txt中的账号密码,使用十分方便,只需在txt中修改,程序就能正确读取账户密码并与用户的输入进行比对,并且在用户正确后获取出默认账户类型

不足:

       没有密码修改功能,不能通过程序修改txt

输入题目数量,根据账号类型出题

优:

       功能实现了,能根据输入的生成题目数量和卷子类型进行合适题目生成,并能进行数目的10-30区间判断,同时在不满足条件时向用户发出错误提示。能够在数目-1的时候退出程序

扫描二维码关注公众号,回复: 7322334 查看本文章

不足:

生成数学题目后什么提示都没有就直接跳回了主菜单,用户使用体验感有待提升

试卷生成

优:

能够实现按照试卷类型生成相应数目的题目并保存在txt中,并且文件以以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行

生成的题目也满足难度要求

不足:

这也是很多同学的普遍不足,我的个人项目也有这种问题

       生成的小学题目可以添加括号来改变运算顺序,从而使得题目更加多样化。

三角函数以及开方的操作未考虑到被操作数是否能很好地被操作,比如一个非平方数开方后的结果误差就很大。

其余功能

       切换卷子类型选项也很好的实现了,在退出程序时也有提示

       能够实现对题目的重复性进行判断

       能够将合格的题目写入试题文件

二. 代码分析

优点

1注释较为详细,有利于代码的阅读和理解

2对于程序运行中可能会出现的一些异常或者是错误进行了处理,能够起到提醒用户的作用

也便于开发者的维护

3各种语句的书写格式十分规范,便于理解和维护

4代码的逻辑结构十分清晰,便于理解和维护

5代码的注释清楚,便于理解和维护

6代码的内聚程度高,耦合程度低,代码块与代码块间的相互影响小

待改进

  1. 变量的命名有待改进,有些数组的名称取的十分随意,不利于代码的阅读和理解,建议是最好取和数组作用相关的名字,比如一些存放运算符号的数组用np,dp这种名字就很难让人理解意图
  1. 代码的模块性有待提升,个人认为有些地方的重复代码(比如说小学初中和高中的试题生成部分有一些重叠)可以采用函数,这样能节省代码,减少冗余,同时,也有利于代码的维护和理解
  2. 试题生成函数作为一个单一函数,他的代码量有些过多,个人认为最好是将其切分成一些小的函数,这样代码的结构会更加清晰

    就是下面这个函数。感觉有点太长了,可以去一下重,改成几个函数

  

  1. 同一代码块的不同逻辑块之间可以用空格隔开,便于代码的阅读和理解
  2. 有些函数的参数永远不会被修改,可以将它修改为const

三. 运行体验分析

1有的地方给出了用户足够的提示,但有的地方的提示还欠缺一些,比如试题生成之后最好给用户一个提醒。

2只是通过命令行输入,不如UI界面形象,当然这个在结对编程中会做,在这里只是提一下

3总体来讲,用户的使用体验是不错的,只要跟着提示一步一步进行就好

四. 思维碰撞之我的感受

1因为我的用户名和密码是通过类的实例来实现的,我觉得不如cyb这种存储在txt中的方便,因为txt文件很小,便于我们通过其他一些工具快速修改,这样能够在每次程序运行时直接读取账号密码,而不是每一次都要去创建类的实例

2通过他的代码也让我了解了一些以前并不怎么清楚的类和API接口,增加了知识储备

3总而言之对通过别人代码的阅读自己也收获了不少

本人:杨瑞                                                                                搭档:程延博

猜你喜欢

转载自www.cnblogs.com/yr7950969/p/11552932.html
今日推荐