结对编程——队友个人项目分析
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
-
- 数学题目的生成
随机生成的大量题目,考虑到了所有的情况,逻辑比较缜密。
- 优点:
简单实用,注释清晰,理解起来很快。逻辑很缜密,考虑到了基本需求的所有可能性,完整地处理了所有的特判情况,这一点很值得我学习,我做的时候就有许多的特判没有处理好。他的代码的规范也做的很好,注释也比较清楚,代码的阅读很舒服。
- 缺点
缺点也比较明显,虽然完成了基本需求,但是完成的很僵硬,程序的数据结构和算法逻辑没有什么技巧性,造成了代码非常的繁琐,并且缺乏拓展性,没有后续的可开发性。
这篇关于结对编程——队友个人项目分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)