zoukankan      html  css  js  c++  java
  • Department and Student

    软工结对作业之二


    整体概况

    模型建立

    • 学生类,属性包括:
        *	1)编号
      
      • 2)空闲时间
      • 3)兴趣
      • 4)选择的部门
      • 5)最大部门申请量
        部门类,属性包括:
        • 1)编号
      • 2)工作时间
      • 3)需求方向
      • 4)部门限制最大人数

    数据生成

    • 根据题意定义300个学生,20个部门。
    Member Student[300];
    Dept Department[20];
    
    • 部门、学生初始化
    void init()
    {
    	//初始化部门和成员编号
    	All_Student_No[300];
    	All_Student_No_string[300];
    	for (int i = 0;i < 300;i++)
    	{
    		stringstream ss;
    		All_Student_No[i] = 1 + i;
    		ss << All_Student_No[i];
    		ss >> All_Student_No_string[i];
    		ss.clear();
    	}
    
    	//初始化成员
    	for (int i = 0;i < 300;i++)
    	{
    		Student[i].Produce(All_Student_No_string[i]);
    		Student[i].Translate(All_Dept_No);
    	}
    	//初始化部门
    	for (int i = 0;i < 20;i++)
    	{
    		Department[i].Produce(All_Dept_No[i]);
    		Department[i].Translate();
    	}
    }
    
    • 学生空闲时间的输出
    Out_Put << "		{" << endl << "			"free_time":[" << endl;
    			for (int j = 0;j < 20;j++)
    			{
    				string * Mid = Student[i].reFreeTime();
    				if (Mid[j] == "")
    				{
    					Out_Put << "			]," << endl;
    						break;
    				}
    				else
    				{
    					if (Mid[j + 1] == ""||j==19)
    						Out_Put << "				" << """ << Mid[j] << """ << endl;
    					else
    						Out_Put << "				" << """ << Mid[j] << ""," << endl;
    				}
    				if (j == 19)
    				{
    					Out_Put << "			]," << endl;
    					break;
    				}
    			}
    
    • 在信息输出部分,如果字符串中已经为空,则最后一行时间已经输出完毕,输出“],”;如果准备输出最后一行的时间,则只输出时间,不输出逗号;其余行,均输出时间和逗号。(部门输出信息与之类似)。

    匹配算法模型(雏形)

    • 初步算法考虑的问题:

      • 1)不能超过部门限制最大人数

      • 2)学生之间应该尽量公平,且学生加入的部门应该和志愿一致此时,我们以某一同学的5个或不到5个志愿为例,依次判断该同学的志愿是否和某一部门匹配,匹配之后,检查该部门人数是否已满。

      • 3)能否进入某一部门的重要判定,在于学生的空闲时间和部门的工作时间是否匹配,若匹配,则考虑其他因素,若不匹配,则无法加入该部门。

        • 首先需要对工作时间和空闲时间进行读取
        • 其次一种情况是空闲时间和工作时间匹配,另一种则存在冲突。
    • 反思:此种算法,存在许多不足。其中之一,根据题目要求,应该优先考虑所有同学的第一志愿,然后依次二、三等志愿,更符合要求;另外,看过输入样例后,只单纯的考虑了以两个小时为每段时间的情况。嗯,抱紧大佬大腿,大佬加油。


    关于JSON

    • 本次实践,第一次听说并认识了Json工具,想要运用工具,首先当然先要找到工具。找齐六个扩展包,在工程文件中,添加一个“lib”文件夹,并将扩展包粘贴其中,并设置路径,将包扩展到了工程文件中,得以使用。
    • 通过对于网上各路大佬博客的浏览,认识到Json常用类别,分别为Json对象和Json数组,对象主要通过key和value来查找,数组则是依次存储,键值从零开始。
    • 分享几个了解Json解析的网址 (1) (2) (3)

    代码规范

    • 类名:首字母大写。
    • 函数:首字母小写,首字母后的单词第一个字母大写
    • 变量:首字母小写,首字母后的单词第一个字母大写

    心得体会:

    本次作业安排在了十一长假期间,咳咳,苦不堪言。十一回家的计划更改不了的情况下,结对作业真的是难以顺利进行,还好留校队友十分给力。放假之前,刚看到作业,最初的问题就是数据的处理,请教之后知道需要学习使用json工具,来整理输入的数据,在同学的解释和了解相关知识之后,确实意识到了json的方便与强大,但是,运用起来并不得心应手,基本上就是模仿网上的教程,把变量修改成自己想要的。另外就是完成了算法雏形的设计,至于代码的完善,队友主力完成,在观膜中,能啃食多少是多少

  • 相关阅读:
    精益敏捷企业的七大核心能力和实施路线图-Scrum中文网
    leangoo思维导图实用过程
    Scrum看板+思维导图联动,高效创新
    Leangoo敏捷开发工具- 6.0.2 版发布
    多项目协同管理软件
    项目管理软件~leangoo
    用Leangoo看板工具做采购流程管理
    Android的简单应用(四)——字符串处理
    Android的简单应用(三)——为你的程序添加监听器
    使用WindowManager添加View——悬浮窗口的基本原理
  • 原文地址:https://www.cnblogs.com/yangguanghaitian/p/7638748.html
Copyright © 2011-2022 走看看