结对编程——队友个人项目分析
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
-
- 数学题目的生成
随机生成的大量题目,考虑到了所有的情况,逻辑比较缜密。
- 优点:
简单实用,注释清晰,理解起来很快。逻辑很缜密,考虑到了基本需求的所有可能性,完整地处理了所有的特判情况,这一点很值得我学习,我做的时候就有许多的特判没有处理好。他的代码的规范也做的很好,注释也比较清楚,代码的阅读很舒服。
- 缺点
缺点也比较明显,虽然完成了基本需求,但是完成的很僵硬,程序的数据结构和算法逻辑没有什么技巧性,造成了代码非常的繁琐,并且缺乏拓展性,没有后续的可开发性。
这篇关于结对编程——队友个人项目分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12百万架构师第十五课:源码分析:Spring 源码分析:SpringMVC核心原理及源码分析|JavaGuide
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide