ICode9

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

湖南大学结对编程——分析结对编程队友的个人项目

2022-09-13 23:35:54  阅读:207  来源: 互联网

标签:同学 文件 结对 java 代码 编程 用户 出题 湖南大学


湖南大学结对编程——分析结对编程队友的个人项目

分析对象:郭家乐同学的个人项目

分析人:凌志豪

 

目录

一、需求问题分析

二、简述郭家乐同学的解决方案

三、项目结构及代码分析

四、程序测试

五、总结

 

一、需求问题分析

此次个人项目的需求是,写一个程序,能够实现以下功能:

  ①用户登录

  ②切换用户出题年级

  ③根据用户身份自动出题

其中,功能③是最为核心的功能。要实现上述功能,面对的几个核心问题是:

  1. 如何存储用户数据和题目数据?

  2. 题目的生成方式?

  3. 用户身份的切换方法?

  4. 如何做到随机出题不重复?

 

二、简述郭家乐同学的解决方案

  2.1 针对问题1,选择了用txt文本文档存储题库以及用户信息:

 

 

 

  这样做的好处是:对题库数据的增删改查操作可以很简单,便于管理题库和用户;

  坏处是:用户数据安全性不足,较高的文件流读写频率高会造成性能损失。

 

  2.2 针对问题2,采用的是预先自拟题目的做法,相比于编程序随机出题的做法,好处是能够自定义题目的难易,但出题需要耗费部分人力。

 

  2.3 针对问题3、4的解决方案,在第三部分代码分析讲解。

 

三、项目结构及代码分析

  3.1 先看src目录结构:

  郭同学很好的将java文件打包装好,方便开发。

  但在这里存在一个规范问题,那就是类名的命名问题

  java中对于类的命名,一般都以大写字母开头,采用驼峰命名的规范。

  在项目结构提出的建议是:

    ①将代码分类放入package,比如关于Page视图层的装在一个package里,关于数据操作层的放在一个package里。

    ②可以将文件资源放在单独的resource包里,便于管理。

 

  3.2 代码分析:

    3.2.1 main.java文件

      可以看到,郭同学有个很棒的优点,那就是基本每一个模块、关键代码都有注释解释

     这能够大大降低阅读难度,方便读者理解代码。

 

    3.2.2 funcPage.java 文件

     这是一个功能类,郭同学将一些方法模块化,逻辑清晰

     而且对方法的调用可以体现出面向对象的编程思想

 

 

 

 

 

    3.2.3 loginPage.java 文件

     来看一份用到文件流的代码:

 

 

     优点:依旧是保持了写注释的良好习惯,强调注释的重要性,为后续开发人员的考虑,而且属性和局部变量都做到了初始化。

     缺点:全部采用行尾注释的方法也会使得代码稍显繁杂,可以稍作精简。以下是一个很棒的回答:

 

 

     根据情况改变变量的命名格式可以使得变量意思一目了然,减少不必要的注释量,比如上图获取的id、password用inId、inPassword替代。

 

    3.2.3 paperMaker.java 文件

     优点分析

      郭同学很机智地利用三重循环,严谨的筛选已用过的题目,契合出题需求。

      且在有文件流读写的地方做到了异常处理,增强了程序的稳定性。

      代码以及变量的命名均很规范。

 

 

 

 

四、程序测试

  运行 main.java 文件启动程序:

  用户交互界面简洁明了,在输入对应题目后在指定位置生成了试卷文件:

 

 

  当输入-1时,成功退出登录:

 

  当在登录状态下,输入“切换为XX”,成功切换用户身份且可以自动出对应的题目:

 

 

  测试完成

  在用户交互的建议:增加“切换为xx”这一命令提示。增加生成试卷成功与否的反馈。

 

五、总结

  郭家乐同学的个人项目实现完整,无论是代码规范还是程序使用体验都很不错。

  让我收益匪浅的就是郭同学代码注释的重要性,以及在筛选重复题目的优秀思路。但在部分细节郭同学仍需加强注意,如类的命名格式,用户体验的优化。

  相信这个学期的磨砺,郭同学的编程技术可以一飞冲天,化身大牛程序员,未来可期!!!

标签:同学,文件,结对,java,代码,编程,用户,出题,湖南大学
来源: https://www.cnblogs.com/leon7s/p/16691023.html

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

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

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

ICode9版权所有