软工结对作业之二


整体概况

模型建立

    1. 学生类,属性包括:
    2. * 1)编号
    • 2)空闲时间
    • 3)兴趣
    • 4)选择的部门
    • 5)最大部门申请量

      部门类,属性包括:

      • 1)编号
    • 2)工作时间
    • 3)需求方向
    • 4)部门限制最大人数

数据生成

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

匹配算法模型(雏形)

  • 初步算法考虑的问题:

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

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

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

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


关于JSON

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

代码规范

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

心得体会:

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

Department and Student的更多相关文章

  1. serialVersionUID, ObjectInputStream与ObjectOutputStream类,Serializable接口,serialVersionUID的作用和用法

    ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入 Ser ...

  2. asp.net 数据库面试题(基础)

    今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...

  3. 常用的 SQL语句------CRUD

    复习之前课本上的sql语句,以前上课的时候都是老师在上面讲,我们在下面玩,根本没有把这个放在心上,等到考试的时候临时学习突击下,就可以顺利过60了,但是现在不行了,自己要重新的学习sql,应该把里面最 ...

  4. MySQL查询语句

    来源于网络... Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 ...

  5. mysql——查询练习

    Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 否 否 Sex 性 ...

  6. .NET高级工程师面试题之SQL篇

    1 题目 这确实是一个真实的面试题,琢磨一下吧!知识不用,就会丢掉,我太依赖各种框架和dll了,已经忘记了最基本的东西.有多久没有写过SQL了,我已经不记得了. 已知表信息如下: Department ...

  7. MySQL数据库小实验

    实验1 1.创建数据表 CREATE TABLE guest( Accounts ) NOT NULL, Details ) NOT NULL, Date ) NOT NULL, ,), Class ...

  8. MySQL学习总结(摘抄)

    1.数据库概述 简 而言之,数据库(DataBase)就是一个存储数据的仓库.为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有 效的组织和管理存储在数据库中的数据 ...

  9. 数据库系统概论 SQL

    --(一)创建教材学生-课程数据库 create database s_c go use s_c go --建立“学生”表Student,学号是主码,姓名取值唯一. CREATE TABLE Stud ...

随机推荐

  1. 使用shell脚本来自动化处理我们的工作,解放双手

    Shell脚本介绍 1.Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合. 2.Shell可以直接使用在wi ...

  2. Angular2入门:TypeScript的类型 - 数组解构

  3. 深入浅出 JVM GC(3)

    # 前言 在 深入浅出 JVM GC(2) 中,我们介绍了一些 GC 算法,GC 名词,同时也留下了一个问题,就是每个 GC 收集器的具体作用.有哪些 GC 收集器呢? Serial 串行收集器(只适 ...

  4. Windows安装diango框架<一>

    下一篇:使用Django创建网站项目<二> python工具安装 python下载:https://www.python.org/downloads/windows/(我的版本3.7.0) ...

  5. vb.net Function使用

    Public Function colour(ByVal Code As Int16) As Color'顏色 Select Case Code Case 1 colour = Color.White ...

  6. 【Java】模拟Sping,实现其IOC和AOP核心(二)

    接着上一篇,在上一篇完成了有关IOC的注解实现,这一篇用XML的方式实现IOC,并且完成AOP. 简易的IOC框图 注解的方式实现了左边的分支,那么就剩下右边的XML分支: XmlContext:这个 ...

  7. 在CentOS下的docker容器中部署spring boot应用的两种方式

    我们通常在 windows 环境下开发 Java,而通常是部署在Linux的服务器中,而CentOS通常是大多数企业的首选,基于Docker的虚拟化容器技术,多数Java应用选择这种方式部署服务.本文 ...

  8. Spring基于注解和XML混合方式的使用

    首先要明白,基于注解和XML两种方式的实现功能是一样的,只是两种不同的配置方式. 一.IoC配置 1.配置xml 在使用注解与xml结合的方式配置IoC之前,首先要引入context标签: xmlns ...

  9. 26个精选的JavaScript面试问题

    译者按: 从各个平台精选整理出26道由浅入深的题目助你面试 原文: Top 26 JavaScript Interview Questions I Wish I Knew 译者: Fundebug 为 ...

  10. csharp: mappings using Dapper-Extensions+Dapper.net.

    sql: CREATE TABLE [PotoUsers] ( [UserID] INT IDENTITY(1,1) PRIMARY KEY, [UserName] NVARCHAR(50), [Fi ...