结对第二次作业
本次作业deadline: 2017-10-10 10:00am
编码实现一个部门与学生的智能匹配的程序。
提供输入包括:20个部门(包含各部门需要学生数的要求的上限,单个,数值,在[0,15]内;各部门的特点标签,多个,字符;各部门的常规活动时间段,多个,字符/日期),300个学生(包含绩点信息,单个,数值;兴趣标签,多个,字符),每个学生有不多于5个的部门意愿(部门意愿不能空缺)和空闲时间段(多个,字符/日期)。实现一个智能自动分配算法,根据输入信息,输出部门和学生间的匹配信息(一个学生可以确认多个他所申请的部门,一个部门可以分配少于等于其要求的学生数的学生) 及 未被分配到学生的部门 和 未被部门选中的学生。
###要求:
-
1、代码具有规范性。
-
2、实现的程序语言不做限制性要求,但需要能生成Windows平台的可执行文件。C/C++/C#编译后即可生成,其他语言可以使用打包工具把依赖打包上传,比如 exe4j。但注意,本次没有重测机会,请确保你项目的所有依赖文件都上传到了Github中。为确保没有问题,最好在无相应语言环境的机器上克隆项目并进行测试。
-
3、代码提交在Github上,首页给出项目的Github链接。
-
4、两个人共同撰写一个博客,包含上述内容的描述,同时包含结对感受,以及两个人对彼此结对中的闪光点或建议的分享。
-
5、输入的数据,另外写生成程序,实现可定制的输入数据。在博客中举一个样例(贴出关键数据即可),并说明生成数据的所考虑因素。输入/输出数据文件也需要提交Github,文件名为:import.txt、 output.txt统一放于文件夹clubProject下面。
-
6、为输入输出设计标准化、通用化、可扩展的接口,为该智能匹配程序模块后期可能的整合入系统提供便利。
-
7、输入输出的格式,如采用文本文件或数据库的方式输入,可自由讨论确定,但需要明确,为后期可能的整合入系统提供便利。博客中要给出小组建立的数据模型。
-
8、需要为智能匹配算法确立几条分配或排序原则,比如 绩点优先、或兴趣优先、或活动时间优先、或其他等等,请你们结对讨论确定。
-
9、进行结果分析,给出不同优先条件下算法输出的结果、算法的运行时间分析,形成算法测试报告,格式如下。
优先条件 | 匹配学生个数 | 未匹配学生个数 | 实际耗时(s) | 输出文件路径 |
---|---|---|---|---|
例如:活动时间优先 | 260 | 40 | 0.6s | https://github.com/**/clubProject/ output _time.txt |
评分规则
1、详细说明你们根据需求所建立的数据模型;贴出你们生成的一组最“好”的数据(给出对应链接即可),并详细说明"数据生成"程序的原理以及你们所考虑的因素;20分
2、描述结合数据模型的算法,描述须合理且规范;35分
3、你们在代码遵循了一定的规范,在博客中描述结对团队遵循的代码规范,并截取部分关键代码佐证说明;5分
4、结果分析评价。结合算法测试报告,对于同一组输入,输出的未被导师选中的学生数越少越好;不同优先条件下,算法的执行时间越短越好。30分
5、已经尝试过结对编码,你一定很多话要说。请发表结对感受,以及两个人对彼此结对中的闪光点或建议的分享。10分
-
说明:仅就上述内容,实现一个单独的程序模块。不需要和之前的原型整合在一起。
-
请各位同学务必保证上传输入数据文件,输入/输出文件必须让助教能够清晰的了解数据的构成,并保证自己程序的正确性。
-
请认真并详实地记录你们的测试结果和测试时间,形成测试报告。
-
性能评分将采取档级评分制度,助教将根据同学们的博客和程序分为若干档,每一档的同学得到的分数为 5/档级数。