zoukankan      html  css  js  c++  java
  • 第二次结对作业——学生与部门的匹配


    ## 结对成员: ### 031501102 叶文滔 ### 031502409 杜宏庆
    ## Github地址: https://github.com/a270331257/Matching
    ## 部分数据展示: ### 学生数据 ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171009201105402-183136262.png) ### 部门数据 ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171009201113652-104473838.png) ### 数据生成原理: 数据生成的流程首先是建立各种需要的数据的随机库,比如星期几、时间段、兴趣标签的库等,然后从各个随机库中随机选取内容进行组装,组成一个完成的学生或部门实体。组装过程采用朴素的流水线方式进行。首先组装学生,先随机决定空闲时间段数,再根据数目随机选择时间段,接下来是按序生成学生的学号,再随机生成学生的部门志愿,最后随机生成学生的兴趣标签等等。生成完学生再生成部门,步骤雷同。
    ## 匹配模式 ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171009200215355-726602817.png) 我们采用的是以兴趣标签为主的匹配模式,先说一下我们为何选择这个模式。我们觉得学生与部门的匹配重要的应该是学生的工作兴趣是否与部门相适应,这决定的学生在部门的工作热情与工作效率,在现实生活中,时间往往不是固定死的,空闲时段大部分都可调整。并且大多数情况下的部门工作都可以由学生选择自由时间段来完成,只要在规定时间以前。因此我们觉得弱化时间段的因素,主要以兴趣标签来进行双方的匹配。 具体的实现方法是,从部门端开始对学生进行遍历,若学生的志愿中包含该部门,那么检索学生的兴趣标签,若兴趣标签中有一项与部门相符,学生对该部门的tag值+1,遍历完成后,按tag值进行排序,选取前N(N为部门纳新人数)名学生纳新。
    ## 团队代码规范 我们的协作代码规范主要有两个方面,一是在注释上解释接口位置以及对应的数据内容,见下: ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171009202038184-1914586191.png) 第二是用注释进行区域划分,见下: ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171009202110777-1040024715.png)
    ## 匹配结果 ### unlucky_students ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171010011346168-490688893.png) ### admit ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171010011414840-1066218592.png) ### unlucky_departments ![](http://images2017.cnblogs.com/blog/1227195/201710/1227195-20171010011436652-923648806.png) 我个人对我们的结果并不满意,匹配的算法还存在一些BUG,出于时间关系来不及做更周全的修改,之后仍需要进一步改进。
    ## 个人总结 这次很惭愧因为我的原因耽误的许多我们讨论的时间,因为国庆已经很早就与家人定了外出计划,所以期间我只能尽量找空闲时间进行代码写作,也因此我们的进度比较缓慢,大约到昨天回到福州才开始全身心投入工作,在此要先向我的队友道个歉。尽管我们做的时间相较于其他结对小组不长,但这中间我们结对面对面进行讨论,交换代码意见,然后分工完成任务的过程还是比较顺利的,杜同学关于匹配的思路给了我许多启发,我们也就JSON这个我们都不懂的数据交换格式做了许多探讨、共同查找资料,学习到了很多又是前所未有的知识,我觉得几天的辛苦也相当值得。但是很遗憾我们目前还是对于JSON的具体C++上实现有许多困难得不到解决,因此在实际程序上的输入输出或许与题目要求有偏差或错误,所以接下来我也会花更多时间与他去学习一下这个全新的知识,争取将来能熟练的运用到编程中。
  • 相关阅读:
    菜鸟学python之程序初体验
    菜鸟学python之大数据的初认识
    js获取本地ip地址和外网IP地址
    Js中foreach()用法及使用的坑
    模拟实现Promise,探究Promise原理
    搞懂JS的事件循环(Event Loop)和宏任务/微任务
    NodeJS 中的 LRU 缓存(CLOCK-2-hand)实现
    设计模式在前端项目中的应用
    JS 中一些高效的魔法运算符
    Js中如何克隆对象?
  • 原文地址:https://www.cnblogs.com/iwayney/p/7641809.html
Copyright © 2011-2022 走看看