软工结对项目第二次作业

软工结对项目第二次作业

1.给出结对成员的学号及姓名。

  • 031501118黄梅玲 031502509杜实得

2.首页给出项目的Github链接。

3.贴出你们生成的一组最“好”的数据(给出对应链接即可),并详细说明"数据生成"程序的原理以及你们所考虑的因素。

  • 导入org.json.jar包,先通过给定的路径查找到所需要读取的文件,读取文件。创建department、input、match、student、output类。在各个类里面创建各个类里面所需要的元素,把文件里面student和department字段作为JSONproject存储,student里面的字段applications_department 、tags、free-time、作为jsonarray存储,student_no以string类型存储,因为student_no一个学生只有唯一一个编号,而其他字段有多个。所考虑的因素有:读入的一个学生的tags不能重复,free_time不能相互包含,学生的意向部门不能重复。读入的一个部门的tags不能重复。

4.详细说明你们数据建模及匹配程序的思路及实现方式。

  • 数据建模部分:读入的数据有学生的学生学号、free_time、tags、申请的部门编号。部门的部分有部门编号,限制人数,tags、event_schedules。而部门选择学生主要是根据free-time和event_schedules的关系即free_time要包含event_schedules这个时间段,以及学生的tags和部门的tags的匹配数目的多少来录取。匹配程序的思路先判断部门的event_schedules和所报名的学生的free_time是否符合条件,若符合条件就直接“初步”录取,然后进入下一轮判断,判断部门所要招收的剩余人数是否大于上一步初步录取的学生数,是的话直接录取,如果小于就进入下一轮判断,计算学生的tags和部门的tags的匹配数目,按匹配数目的多少排序,录取部门剩下所需要的人数,排在后面的人就筛掉了。

5.你们在代码遵循了一定的规范,在博客中描述结对团队遵循的代码规范,并截取部分关键代码佐证说明。

  • 为了避免程序太过繁琐,分成多个类来写函数,看起来比较容易理解各个类的功能

6.结果评估。对于程序的匹配结果,你们是否满意?请对你们程序处理结果进行分析。

  • 对于匹配结果差不多达到我们的要求,但仍存在一些不足,比如说当tags数一样但是同一部门名额只剩一个的两位同学该怎么录取,这些问题都是亟待解决的问题,在刚开始的时候对于部门和学生之间的选择考虑不全面。

7.已经尝试过结对编码,你一定很多话要说。请发表结对感受,以及两个人对彼此结对中的闪光点或建议的分享。

  • 在这次结对编码中,其实许多东西都要靠百度,以及请教旁边懂的同学,进度就比较慢,加上都是Java的新手,对于许多方法都比较陌生,也是第一次接触json库,感觉json能解决很多平常解决起来比较繁琐的问题。因为这次用的语言是刚入门的阶段,所以,更多的是请教别人,我觉得两个人结对编码的好处是查找资料比较方便快捷。
posted @ 2017-10-09 21:47  _shell  阅读(124)  评论(4编辑  收藏  举报