结对编程——队友个人项目分析

2021/9/28 22:40:41

本文主要是介绍结对编程——队友个人项目分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

以下是张君逸同学对郭晓哲同学个人项目的代码分析:

  • 概述:

    郭晓哲同学对于需求的分析非常的清晰。根据题目的要求,设计了一个老师类,对这个类设计了诸多函数以实现功能,主要的功能界面跳转是使用switch结构和函数跳转来实现的。

  • 技术分析:
    • 查重

      查重是使用读取用户文件夹生成过的试卷txt,然后再用一个临时的字符串不断地保存题目进行比对,这一点比我的查重逻辑上更好,但是其实有更好的数据结构可以使用,这样的逐一比较方法造成复杂度很高。

    

for (String f:files) {
            
          try {
            FileReader fr = new FileReader(".\\" + teacherName + "\\" + f);
              BufferedReader br = new BufferedReader(fr);
            String str;          
            String tempString;
            
            while ((str = br.readLine()) != null) {    
              if(str.length() > 3) { // 由于题目格式为1、 所以截掉前三个字符进行比较,以免序号不同影响查重
                tempString = str.substring(3);                   
                } else {                   
                  tempString = str;                   
                }                   
              if(tempString.equals(question.substring(3))) {                            
                flagFind = false;                       
                break;                        
              }                     
            }                  
            br.close();                 
            fr.close();            
          } catch (IOException e) {                  
            e.printStackTrace();            
          }
View Code
    • 登录

      登录的方法郭晓哲实现的比较笨,是直接使用switch结构直接赋值实现的,根据输入直接给变量赋值,造成了程序的局限性很强。

 

switch(chooseFlag) {
        case 1:
          teacherName = "张三1";
          break;
        case 2:
          teacherName = "张三2";
          break;
        case 3:
          teacherName = "张三3";
          break;
        case 4:
          teacherName = "李四1";
          break;
        case 5:
          teacherName = "李四2";
          break;
        case 6:
          teacherName = "李四3";
          break;
        case 7:
          teacherName = "王五1";
          break;
        case 8:
          teacherName = "王五2";
          break;
        case 9:
          teacherName = "王五3";    
          break;
        default:
      }
      
View Code
    • 数学题目的生成

       随机生成的大量题目,考虑到了所有的情况,逻辑比较缜密。

  • 优点:

    简单实用,注释清晰,理解起来很快。逻辑很缜密,考虑到了基本需求的所有可能性,完整地处理了所有的特判情况,这一点很值得我学习,我做的时候就有许多的特判没有处理好。他的代码的规范也做的很好,注释也比较清楚,代码的阅读很舒服。

  • 缺点

    缺点也比较明显,虽然完成了基本需求,但是完成的很僵硬,程序的数据结构和算法逻辑没有什么技巧性,造成了代码非常的繁琐,并且缺乏拓展性,没有后续的可开发性。



这篇关于结对编程——队友个人项目分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程