ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-09-28 22:34:19  阅读:169  来源: 互联网

标签:case 查重 结对 teacherName 项目分析 break 队友 str tempString


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

  • 概述:

    郭晓哲同学对于需求的分析非常的清晰。根据题目的要求,设计了一个老师类,对这个类设计了诸多函数以实现功能,主要的功能界面跳转是使用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
    • 数学题目的生成

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

  • 优点:

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

  • 缺点

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

标签:case,查重,结对,teacherName,项目分析,break,队友,str,tempString
来源: https://www.cnblogs.com/gavinjy/p/15350447.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有