本次作业deadline: 2017-10-10 21:00

根据上一次结对作业的背景,实现一个分配算法,根据输入信息,输出:

  • 部门和学生间的匹配信息(一个学生可以确认多个他所申请的部门,一个部门可以分配少于等于其要求的学生数的学生)
  • 未被分配到学生的部门
  • 未被部门选中的学生

说明:仅就上述内容,实现一个单独的程序模块。不需要和之前的原型整合在一起。

要求:

  • 1、输入的数据,另外写生成程序随机实现。
  • 2、为输入输出设计接口,为该匹配程序模块后期可能的整合入系统提供便利。
  • 3、输入输出采用 json 文本文件方式,可自由讨论确定细节内容,但需要明确并体现在博客中。
  • 4、需要为匹配算法确立几条分配或排序原则,比如 绩点优先、或兴趣优先、或活动时间优先、或其他等等,请你们结对讨论确定。
  • 5、对不同策略做出评价,并在博客中展示测试结果。提醒:对于同一组输入,输出的未被导师选中的学生数越少越好。
  • 6、博客中列出代码你们的代码规范要求。
  • 7、实现的程序语言以C/C++优先,部分同学如果对Java/C#掌握更加熟练也可接受。
  • 8、代码提交在GitHub上,并在博客中提供项目链接(注意不是Github个人主页)。
  • 9、两人博客中涉及到设计及代码展示可以相同,但是要求使用自己语言加以描述。

博客要求(模板/评分)

  • 结对情况【1分】

    • 自己

      • 学号后3位
      • 名(为保护隐私省去姓)
    • 队友
      • 学号后3位
      • 名(为保护隐私省去姓)
      • 队友博客链接(本次作业链接,不是主页,既然是一个队伍,保持同时发布并获取对方链接)
  • GitHub 项目链接(不是主页)【1分】
  • 设计说明
    • 接口设计(API)【5分】
    • 内部实现设计(类图)【5分】
    • 匹配算法设计(思想/流程等)【5分】
    • 测试数据如何生成?【5分】
    • 如何评价自己的匹配算法?【10分】
  • 关键代码解释
    • 贴出你认为重要的/有价值的代码片段,并解释【5分】
  • 运行及测试结果展示
    • 测试200位同学,20个部门的情况【5分】
    • 测试500位同学,30个部门的情况【8分】
    • 测试1000位同学,50个部门的情况【10分】
    • 测试5000位同学,100个部门的情况【15分】
    • 以上每组测试分别提供:
      • 测试结果概况描述
      • 测试输入数据片段展示及完整数据链接
      • 测试输出数据片段展示及完整数据链接
      • 完整测试数据建议提交到Github项目tests目录内,再提供链接到博客
      • 测试数据文件命名:
        • 输入: sxxx-dxxx-in.json
        • 输出: sxxx-dxxx-out.json
        • sxxx 中的 xxx 替换同学数目
        • dxxx 中的 xxx 替换部门数目
    • 效能分析报告【5分】
  • 遇到的困难及解决方法【5分】
    • 困难描述
    • 做过哪些尝试
    • 是否解决
    • 有何收获
  • 对队友的评价【5分】
    • 有哪些好的地方值得学习
    • 有哪些不好或者需要改进的地方
  • PSP表格【5分】
  • 学习进度条【5分】

关于PSP/学习进度条等模板请参考: http://www.cnblogs.com/vertextao/p/7469789.html


参考输入输出信息

输入信息:

  • 部门

    • 部门编号
    • 部门需要学生数的要求的上限,单个,数值,在[0,15]内;
    • 部门的特点标签,多个,字符;
    • 部门的常规活动时间段,多个;
    • 更多...
  • 学生
    • 绩点信息,单个,数值;
    • 兴趣标签,多个,字符;
    • 每个学生有不多于5个的部门意愿(部门意愿不能空缺);
    • 更多...

参考输入示例

{"departments" : [{"department_no" : "FZU_BL01","department_name" : "balabala","member_limit" : 10,"tags": ["singing", "dancing", "guitar", ...],"event_schedules" : ["from1-end1", "from2-end2", "from3-end3", ...],...},{"department_no" : "FZU_WL01","department_name" : "wulalala","member_limit" : 15,"tags": ["xxx", "yyy", "bbb", ...],"event_schedules" : ["from1-end1", "from2-end2", "from3-end3", ...],...},...],"students" :[{"student_no" : "FUZSTU_00134011","student_name" : "ZHANGSHAN","tags" : ["dangcing", "painting", "running", ...],"available_schedules" : ["from1-end1", "from2-end2", "from3-end3", ...],...},{"student_no" : "FUZSTU_00134010","student_name" : "LISI","tags" : ["reading", "abc", "ddd", ...],...},...]
}

参考输出示例

{"matched_department_view" :{...},"matched_student_view" :{...},"standalone_departments" :[...],"standalone_students" :[...]
}

转载于:https://www.cnblogs.com/vertextao/p/7616222.html

第六次作业--结对编程第二次相关推荐

  1. 第六次作业--结对编程第二次作业

    结队成员: 自己: 学号 姓名 性别 616 语恳 男 队友: 学号 姓名 性别 队友博客 618 炜坤 男 队友博客 github链接 项目要求 1.输入的数据,另外写生成程序随机实现. 2.为输入 ...

  2. 第六次作业--结对编程

    结对情况 显东 114 松雄 126 队友博客链接 松雄博客 GitHub 项目链接(不是主页) buibui 设计说明 接口设计(API) bool wish(DDepartment *d, SSt ...

  3. 第六次作业--结队编程第二次

    1.结队信息 学号 姓名 博客链接 618 炜坤(po主) 链接 616 语恳 链接 2.gayhub地址 传送门 3.设计说明 接口设计(API) void Generate_JSON(int N, ...

  4. 软件工程(2019)结对编程第二次作业

    结对编程第二次作业 利用普普通通的游戏引擎实现普普通通的电梯调度算法 这是我的结对伙伴张斯豪同学的排版异常诡异的博客(狗头). 单元测试 对关键Elevator类中的WhetherAccept进行单元 ...

  5. 20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(及获小黄衫感想)...

    20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(及获小黄衫感想) 项目介绍 结对伙伴 姓名:张昊然 学号:20172322 舒尔特方格简介 舒尔特方格是 ...

  6. ASE第三次作业——结对编程

    ASE第三次作业--结对编程 成员:张贺 杨涛 石恩升 github地址:https://github.com/ThomasMrY/ASE-project-MSRA 题目简介: 此次编程的题目是--统 ...

  7. 第二次软件综合实验专题作业——结对编程 1759103 李思佳 、 1759107 陶彦婷

    结对编程 本次作业由 1759103 李思佳 与 1759107 陶彦婷 共同完成 经过一番讨论,我们决定用JAVA来完成这次作业.选择JAVA的原因大致可以分为以下三点:(1)我们学过的语言一共有三 ...

  8. 软件工程——结对编程第二次作业

    目录 1. 题目及要求 2. 功能的设计 3. GUI(图形用户界面)的设计 4. 容错机制的设计 4.1 选择运算符的容错处理 4.2 最大值和题目数输入的容错处理 4.3 打开文件容错处理 4.4 ...

  9. 软件工程第二次作业——结对编程

    1.组队成员: 刘宗彦 1500802097 黄亚东 1500802109 博客地址 2.代码链接(coding地址): 四则运算计算器 3.界面及功能截图: 四则运算计算器的界面如下图所示: 四则运 ...

最新文章

  1. Atitit.软件兼容性原理与实践 v3 q326.docx
  2. jakarta-taglibs-standard-1.1.0查找下载
  3. 9032c语言程序设计,2016年中国计量学院机电工程学院9032C语言程序设计考研复试题库...
  4. golang经典书籍--Go语言实战
  5. “零成本”建设数据中心机房容灾方案
  6. 国科大高级人工智能+prml4-CNN
  7. in ms sql 集合参数传递_神奇的 SQL → 为什么 GROUP BY 之后不能直接引用原表中的列?...
  8. web之JavaScript
  9. JS --- this(4)
  10. 算法: 用队列Queue实现栈Stack
  11. php 将url转成伪静态,php实现url伪静态化,全过程详解
  12. vue:antV G2在vue中的使用(阿里图表,类似echarts)
  13. 模拟电路 二极管伏安特性(一)
  14. 一定要记住这20种PS技术!来美化你的照片
  15. android 带刻度的滑动条_Android自定义滑动刻度尺
  16. 【经验分享】技术说“实现不了”的潜台词
  17. java调用支付宝扫码支付接口
  18. OTA线下攻防战 | 一点财经
  19. 教你如何解决VS2015的30天试用期已过即VS2015许可证已过期的问题,使用激活 密钥
  20. linux更换进程执行码,第八节 进程的切换和系统的一般执行过程—— 20135203齐岳...

热门文章

  1. 求解最大公因子(JAVA辗转相除法)、python的最大公因子,最小公倍数
  2. java工具类_非常实用的Java工具类,拿走不谢(一)
  3. 20200727:力扣第31周双周赛题解
  4. 20190831:(leetcode习题)汉明距离
  5. android编辑框显示,为EditText输入框加上提示信息
  6. Linux操作系统下软件的安装与卸载
  7. SCPPO(二十三):SQLServer数据库备份那些事儿
  8. 智能一代云平台(三):15年上半年维护总结
  9. 下个目标是攻克FIFA游戏?DeepMind让AI自学传球配合
  10. 保卫Google!刻不容缓