###数据生成原理
学生兴趣:从兴趣数组中非null的元素中随机产生,取出后该元素置为null。
-部门的编号、活动时间、兴趣与学生的相同。java
兴趣数量也是参考input,以5发散分布。git
beanStudent:github
String student_no 学号算法
List free_time 空闲时间数组
List applications_department 申请的部门app
List tags 我的兴趣dom
boolean Stu_admit 是否匹配到部门函数
beanDepartment:工具
String department_no; 部门编号代码规范
List event_schedules; 活动时间
int member_limit; 人数上限
List tags; 部门但愿申请者拥有的兴趣
boolean Dep_admit 是否匹配到学生
List student_no=new ArrayList<>();已录取的学生的学号
List<beanStudent> stu= b.getStudents(); List<beanDepartment> dep = b.getDepartments(); for(int i=0;i<dep.size();i++) { beanDepartment bd=dep.get(i);//得到部门对象 for(int j=0;j<stu.size();j++) { beanStudent bs=stu.get(j);//得到学生对象 //System.out.println(bs.getApplications_department()); //System.out.println(bd.department_no); if(bs.getApplications_department().contains(bd.department_no)) { boolean Timematch=false; List<String> es=bd.event_schedules; List<String> ft=bs.free_time; for(int k=0;k<es.size();k++) { String DepDay=""; String DepTime=""; for(int l=0;l<es.get(k).length();l++) { if(es.get(k).charAt(l)>=65&&es.get(k).charAt(l)<=122) { DepDay+=es.get(k).charAt(l); } else if(es.get(k).charAt(l)=='.') { continue; } else if(es.get(k).charAt(l)==':') { break; } else { DepTime+=es.get(k).charAt(l); } } for(int n=0;n<bs.free_time.size();n++) { String StuDay=""; String StuTime=""; for(int m=0;m<ft.get(n).length();m++) { if(ft.get(n).charAt(m)>=65&&ft.get(n).charAt(m)<=122) { StuDay+=ft.get(n).charAt(m); } else if(ft.get(n).charAt(m)=='.') { continue; } else if(ft.get(n).charAt(m)==':') { break; } else { StuTime+=ft.get(n).charAt(m); } } if(DepDay==StuTime&&(DepTime==StuTime)||(StuTime+1==DepTime)) { Timematch=true; break; } } if(Timematch=true) break; } List<String> tag=bd.tags; for(int l=0;l<tag.size();l++) if(Timematch=true&&bs.getTags().contains(tag.get(l))) { if(bd.member_limit-->0) { bs.Stu_admit=true; bd.Dep_admit=true; bd.student_no.add(bs.student_no); break; } } } } }
类名首字母应该大写
方法名首字母应该小写
for、if等语句的{}在前面
二、匹配思路太过简单。
改进:可设置绩点属性,对绩点、申请志愿、兴趣匹配度、空闲时间匹配度设置不一样的得分权重,权重分布可详细讨论,对于每个部门都会有一批申申请者,按分数高低进入部门,以后对unluck_student、department进行简单匹配;
此次做业让个人国庆假期不至于太过颓废,java以前有学过一点,写的都是一些很小的简单的程序,第一次用java写像这样的程序,在此次实践后,开始注重代码规范,一些本来没有意识到的知识的漏洞暴露了出来,同时也让我知道了以后前进的方向。而且学到了不少以前不会的技能
了解了jason格式,以及用工具包去解析jason取jason。
会用工具把java打包成.exe文件