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的方便与强大,但是,运用起来并不得心应手,基本上就是模仿网上的教程,把变量修改成自己想要的。另外就是完成了算法雏形的设计,至于代码的完善,队友主力完成,在观膜中,能啃食多少是多少
Department and Student的更多相关文章
- serialVersionUID, ObjectInputStream与ObjectOutputStream类,Serializable接口,serialVersionUID的作用和用法
ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入 Ser ...
- asp.net 数据库面试题(基础)
今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...
- 常用的 SQL语句------CRUD
复习之前课本上的sql语句,以前上课的时候都是老师在上面讲,我们在下面玩,根本没有把这个放在心上,等到考试的时候临时学习突击下,就可以顺利过60了,但是现在不行了,自己要重新的学习sql,应该把里面最 ...
- MySQL查询语句
来源于网络... Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 ...
- mysql——查询练习
Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 否 否 Sex 性 ...
- .NET高级工程师面试题之SQL篇
1 题目 这确实是一个真实的面试题,琢磨一下吧!知识不用,就会丢掉,我太依赖各种框架和dll了,已经忘记了最基本的东西.有多久没有写过SQL了,我已经不记得了. 已知表信息如下: Department ...
- MySQL数据库小实验
实验1 1.创建数据表 CREATE TABLE guest( Accounts ) NOT NULL, Details ) NOT NULL, Date ) NOT NULL, ,), Class ...
- MySQL学习总结(摘抄)
1.数据库概述 简 而言之,数据库(DataBase)就是一个存储数据的仓库.为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有 效的组织和管理存储在数据库中的数据 ...
- 数据库系统概论 SQL
--(一)创建教材学生-课程数据库 create database s_c go use s_c go --建立“学生”表Student,学号是主码,姓名取值唯一. CREATE TABLE Stud ...
随机推荐
- Spring Cloud Hystrix——熔断器
1.雪崩效应在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者 ...
- Linux常用命令-vim
vim的基本模式 1普通模式Normal mode 输入vim命令后进入的就是普通模式. 2插入模式Insert mode 这是内容修改编辑的模式, 在普通模式进入插入模式方法 按i或insert 在 ...
- Makefile.am文件配置
Makefile.am Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./ ...
- mac在命令行中打开某个文件夹
使用 open 命令,如打开 ~/Download/abc open ~/Download/abc
- 猪圈密码 摩斯密码 QWE加密 栅栏加密 当铺密码
1.猪圈密码 猪圈密码:对应下图就是HORSE 2.摩斯密码 在线摩斯密码翻译器:http://www.mathsking.net/morse.htm 3.QWE加密 键盘按ABC的顺序排列得到对应的 ...
- 图像边缘检测——几种图像边缘检测算子的学习及python 实现
本文学习利用python学习边缘检测的滤波器,首先读入的图片代码如下: import cv2 from pylab import * saber = cv2.imread("construc ...
- JSP+Servlet+mysql简单示例【图文教程】
下载MYSQL:http://dev.mysql.com/downloads/ 下载安装版的 然后安装(安装步骤就不详细说了) 安装好之后,点击托盘图标,打开管理工具 创建一个数据库 数据库的名字 ...
- Animate.css(一款有意思的CSS3动画库)
官网:https://daneden.github.io/animate.css/ animate.css 是一款跨浏览器的动画库. 使用方式: 在页面的 <head>中引入样式文件: & ...
- [转]docker-compose教程(安装,使用, 快速入门)
本文转自:https://blog.csdn.net/pushiqiang/article/details/78682323 教程基于ubuntu下最新的compose版本3 参考: https:// ...
- spring cloud config服务器
Spring Cloud Config提供了一种在分布式系统中外部化配置服务器和客户端的支持.配置服务器有一个中心位置,管理所有环境下的应用的外部属性.客户端和服务器映射到相同Spring Event ...