###數據生成原理
學生興趣:從興趣數組中非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文件