zoukankan      html  css  js  c++  java
  • 第三次作业——结对编程

    031402339 林锦
    031402342 许玲玲

    功能分析

    这次作业的要求是要求做一个毕设导师智能匹配的程序:30个导师,100个学生,老师可带最多8个学生,学生有5个志愿选择(老师可重复),要求未被分配到学生的导师 和 未被导师选中的学生尽可能的少。
    此次作业实现的程序语言我们选择的是C/C++,所以我们的实现步骤有以下几点:

    • 1.随机生成两个文本文件:学生选择导师汇总文件(student.txt),老师想带的学生数汇总文件(teacher.txt);
    • 2.将两个文件导入到所编写的C/C++程序中,并进行选择操作;
    • 3.将选导师结果送入新的文件里面(out.txt);

    实现思路

    • Student.txt和teacher.txt的实现
      1.C++随机生成数:rand()函数;
      2.C++文件的读写操作;
    • 将两个文件导入C/C++程序中
    • 程序算法的编程
    • 将最终结果导入到out.txt

    算法的实现过程

    实现学生和导师未被选中的人数尽可能少

    • 根据老师的可选学生人数,从小到大排序
    • 根据学生的可选导师人数,从小到大排序,遍历这些学生:
      (1) 学生可选导师人数少的优先被选中;
      (2)如果学生可选导师人数相等,则按照绩点高的优先被选中。

    代码的规范性

    看了《构建之法》,我们觉得代码的规范性就是能够让别人也可以看懂你所写的代码,但是,讲道理,就算懂这个道理,如果是多个人编程的话,还是很难在编程中实现代码的规范性。

    源码的链接

    算法评估

    • 根据随机生成的程序,100个学生里面有11个未选到导师,30个导师里面有3个导师未分配到学生,其中有2个导师的计划学生数是0,有另一位老师可选学生数为0,所以剩下的学生可能是老师计划数为0(随机问题)或者竞争压力大,老师的计划学生数总额是125,还剩36个名额,学生可进行二轮选择。我们只进行了一组数据测试,应多进行几组测试。

    我们的算法排序是按照可选老师数由小到大,再按绩点排序,有可能出现绩点高却选不到导师的情况,我们做了图表分析,由图表可知没有导师(纵轴为0)的相应的绩点也较小,绩点较高的都有分配到导师,所以这个问题不大。

    PSP表格

    总的来说,这次效率比上次提高了很多,O(∩_∩)O哈哈~。
    

    结对过程

    • 这是我们在分工各自敲代码的情景

    结对心得

    • 我的感受:
      这次编程我们是分工编写不同模块,模块编写过程中有个人编码的时候,也有结对编程,一个在旁边看,一个敲,遇到问题讨论,轮流编程。旁边有个人一起敲代码的感觉很nice,而且是第二次结对,有问题一起解决,压力不会那么大,有点压力分担的感觉。结对编程,两双眼睛对着一段代码,查bug的效率比较高。分工编码,再模块整合,效率也是有提高的,一个人负责整个程序,要考虑到方方面面,难免漏了,分工有所专一减轻了工作压力,提高了质量。
      "队"友说她对这次作业的热情没有上次结对作业高,因为不大喜欢编码,如果不是这次结对编程作业,做下来敲半天代码了的情形已经很久没有发生了。她主要写随机和输入输出模块,这个模块的编码她是不熟悉的,所以是一边百度,一边查书学习写出来的,最后完成了,真的很棒,不管是不是作业所迫的结果,我的“队”友最后完成了,她还是很开心的。“队”友对问题的态度很积极,一起想办法解决问题,提高了我们的工作质量。四个字总结就是“合作愉快”。
    • "队"友的感受
      这次作业是编程,对于我这个C/C++菜鸡来说,难度很大,作为一个计算机的学生,不会编程,确实是个大问题。对于我个人来说,算法太难了,所以我觉得我的队友真是太厉害了,能把这么复杂的东西简单化讲给我听,然后和队友一起讨论,他提出可以用什么什么方式来做,我觉得非常的棒,她在敲具体的解决算法的时候,我在旁边看,遇到了不懂的东西,她还会认真的给我讲解,感觉又学到了一点技术(开心.jpg)。
      我觉得结对编程最好的就是两个人都不会,两个人一起百度,查书,然后再一起学习,虽然分工不一样,但是都把两个人学习的内容也学习了呢。学着学着我们的感情也比以前深厚了呢。(_)。
    • 编程总结(两个人)
      (1)关于代码规范性,在编程之前,应该先把要用到的变量,函数名等都要先约定名称参数等,不然的话,后期整合太痛苦了。我们之前有约定好一部分,但是不够详细,导致后面整合的时候,花费了大量的时间。
      (2)合作很愉快。
  • 相关阅读:
    多个类定义attr属性重复的问题:Attribute "xxx" has already been defined
    好用的批量改名工具——文件批量改名工具V2.0 绿色版
    得到ImageView中drawable显示的区域的计算方法
    得到view坐标的各种方法
    实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置
    Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
    Android 自带图标库 android.R.drawable
    解决 Attempting to destroy the window while drawing!
    解决Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 4
    Material Designer的低版本兼容实现(四)—— ToolBar
  • 原文地址:https://www.cnblogs.com/linjin/p/5924655.html
Copyright © 2011-2022 走看看