结对编程项目中对队友项目代码的分析

前言:通过仔细研读刘至臻同学的代码,我觉得这位同学无论是从学习态度上还是个人习惯上,都值得我认真的学习。其代码风格简单而又不缺乏诗意,注释什么的都很完整,整体菜单看起来层次分明,清晰明了,代码写的可读性很高,很容易懂。废话少说,接下来就开始分析刘至臻同学的代码吧!

中小学数学试卷自动生成程序

--------对刘至臻同学的代码分析

优点1:将判断用户信息的程序与用户个人信息分开,这样使得程序具有通用广泛性。也为之后用数据库存放数据作下铺垫。有远见。

这里刘至臻同学建立了一个User.java文件目的是为了将用户个人信息程序与应用设计程序分开,这样就可以避免要从繁杂的应用程序代码中找出个人信息部分,为以后的工作做了简化

优点2:对于题目生成方式的方法值得学习

提到这里我拿至臻关于生成高中问题部分的代码举个例子:

 1   public static String CreatHighProblem(String problem)
 2     {
 3         StringBuffer sBuffer = new StringBuffer(problem);
 4         int i = 0;
 5         while(true)
 6         {
 7             i = g_r.nextInt(problem.length()-1);
 8             if(i == problem.indexOf(‘+‘) || i == problem.indexOf(‘-‘)
 9                     || i == problem.indexOf(‘*‘) || i == problem.indexOf(‘/‘)) break;
10         }
11         sBuffer.insert(i+1, g_sign3[g_r.nextInt(2)]);
12         if(g_r.nextInt(9) > 6) sBuffer.insert(0, g_sign3[g_r.nextInt(2)]);
13         problem  = new String(sBuffer);
14         return problem;
15     }

这里产生算式采用先生成小学算式然后生成加上sin,cos,tan,根号以及平方,最后通过查找可以添加括号的地方再加上括号,这种清晰的思路可以帮我们很好的解决这类最后结果十分复杂的题目,抽丝剥茧,直捣黄龙。

优点3:用hashset来存取之前生成的试题,在之后的查重中因为hashset查找相同速度非常的快,所以查找相同也会变得很快、很方便。

g_set = new HashSet<String>();

将所有的不重复题目放入一个大的题库这样查找就不需要一个个账户文件夹的读,这种思路是我之前并未想到的,我觉得这种想法非常不错。

虽然至臻同学的优点很多,但仍然掩盖不了有部分程序本身存在的问题作为这份代码的瑕疵:

缺点1:随机性问题

题目是否真的能随机产生,这个恐怕是困扰了像我们这样连续几天熬夜完成个人项目的学生。当然程序肯定做不到完全随机,都要有界定的范围,这个无可厚非。在自己阅读了至臻的代码后,我发现他的平方只能在算式最后面,不能达到完全的随机,甚是可惜。

缺点2:界面在切换为“xxx”时没有给用户提示

这个可能导致用户无法使用,我给他改进了一下。

缺点3:使用while(true)来运行界面,导致只能强行关闭这个页面才能够退出

这个只需要加个登录页面函数即可,已帮修改。

综上:除了随机性问题以外,刘至臻同学的项目代码已无其他问题。

原文地址:https://www.cnblogs.com/sky-bug00/p/11552456.html

时间: 2024-07-30 06:27:56

结对编程项目中对队友项目代码的分析的相关文章

03_Android项目中读写文本文件的代码

编写一下Android界面的项目 使用默认的Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.writedata" android:versionCode="1&qu

Findbug在项目中的运用--提高代码质量

 FindBugs是一个静态分析工具,它检查类或者 JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析 第一 手动安装 在Eclipse点击菜单中Help-->菜单 第二:输入地址: http://findbugs.cs.umd.edu/eclipse,出现版本列表: 按照一步步提示安装重启即可 =================================================== 2) (Re-)star

在PHP项目中使用Standford Moss代码查重系统

Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使用它呢? 下载Moss的PHP文件moss.php 您可以访问https://github.com/Phhere/MOSS-PHP 来下载moss.php,并将它放在您的第三方扩展库中 使用moss.php 通过下面的范例代码您就可以简单的做个moss小测试了 <?phpinclude("mo

一个项目中如果有重复代码,如何变成一个标签使其通用?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="Web.index" %> Page:所使用的是page页面,也就是所谓的aspx页面 AutoEventWireup:是否自动关联某些特殊事件(例如:Page_Load(),)默认true CodeBehind:属性并不是一个真正的 ASP.NET

unity3D项目中如何避免硬代码(C#)

平时做项目,代码中是不允许出现硬代码的,一般我们是怎么处理的呢? 那么硬代码又是什么呢? 我们俗称的硬代码:eg:  1 public UIlabel label; 2 label.text = "欢迎来到梦幻岛";  这样我们俗称为硬代码. 好了,那么该如何避免,话不多说,直接上图: 这是一种处理方式,TXT 格式的文档,前面是ID,后面是描述性文字. 可是我们该如何在项目中访问这个txt文件里面的数据呢? 话不多说,直接上代码: 1 using UnityEngine; 2 usi

结对编程——中小学数学出题系统项目互评

队友的代码是用c++写的,根据运行的结果可以看出(如下图),基本上都实现了需求文档上的内容.整个程序分为7个模块,1个结构体.5个子函数.和1个主函数,大体框架非常清晰. 下面来谈谈代码的优缺点. 优点: 1. 使用了结构体来保存9个用户的信息,每个用户的信息(账号.密码.账户类型)都用结构体封装在一起,做到了隐蔽.规整. 2. 代码写得十分规范,可读性好:①函数名都是一个动词加一个名词搭配,变量名都能准确定义变量的含义,使得函数和变量的作用一目了然:②缩进和空行都把握得十分准确,模块之间有空行

结对编程心得---------优秀的队友是成功的一半

一,结对编程的收获 1.团队分工 结对编程作业大部分的时间都是采取共同编写代码,即"一个做驾驶员,一个做领航员",驾驶员负责敲键盘,领航员在一侧提供建议.检查错误或帮忙搜索相关的资料. 就这次团队项目而言,我们合作还是很愉快的.清明节的后两天我和朱池苇同学一起学习了Qt.由于朱池苇同学的工程能力比较强,所以大部分程序都是朱池苇同学作为驾驶员,而我(刘鼎乾)则作为领航员,与朱池苇同学对问题进行讨论,查找资料,检查错误等. 2.结对编程的意义   我觉得结对编程确实具有非常重要的意义: 一

结对编程总结+git使用与GitHub代码管理——by林玉俊&amp;唐宇涵

一.分析需求 在拿到结对编程项目需求文档后,我和队友第一件事就是讨论需求,分析项目给出的需求以及实现的一些细节.比如,登录界面的设置(注册.重置.登录按钮),注册界面的输入框设置(手机号.验证码.密码.确认密码),题目难度和数量界面的设置等这些逻辑流程问题.并大致对各个类需要实现的功能和接口进行了商定,这样方便了后期的合拢. 下图为当时讨论时的笔记-- 二.编程实现 我负责的是用户手机注册并发送验证码到相应手机号部分和随机算式计算结果部分. 1.接收验证码部分 最初是根据老师给的提示,在阿里云平

结对编程学习-对梁同学的代码分析评价

本篇博文主要是对我的结对编程伙伴梁同学的代码进行分析,分析别人的代码对我来说是一种挑战,但在分析与总结中或许能找到逐渐变强的关键. 从main函数开始,着实震惊到了我,一个无限循环,一个初始化函数,最后输出一个字符串.三行便结束了main函数.由此观之,梁同学的代码模块化做得很好. 再看初始化函数,发现他将用户名与密码都用数组存储了起来,管理相对方便,有了些数据库的感觉,判断能否登陆的逻辑很清晰,字符提示也很到位. 然后是一个选择函数.这是我很看好的一个函数,通过这个函数将几种可能或者说分支都提