📄 courseulities.java
字号:
package org.minjey.cjsjk.report;import java.text.NumberFormat;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.Iterator;import java.util.List;import org.minjey.cjsjk.model.Course;import org.minjey.cjsjk.model.Major;import org.minjey.cjsjk.model.Student;import org.minjey.cjsjk.model.StudentCourse;public class CourseUlities { private Major major; private Course course; private int countpath; private int countunpath; private double averagescore; private String snames; private int stulength; private List students; public CourseUlities(Major major, Course course) { this.major = major; this.course = course; stulength = major.getStudents().size(); initCourse(); } public int getGradeLength() { return students.size(); } public Student getStudent(int i) { if(i >= students.size()) { return null; } else { return (Student)students.get(i); } } private List<Student> initOrder(Major major) { HashMap<Integer, Object> shms = major.getStudents(); List list = new ArrayList(shms.values()); MyComparator comp = new MyComparator(); Collections.sort(list, comp); return list; } public String getBkmd() { return snames; } public String getAverageScore() { return String.valueOf(averagescore); } public int getPathCount() { return countpath; } public int getUnpathCount() { return countunpath; } public Course getCourse() { return course; } public String getStudentPoint(int stuid) { StudentCourse sc = (StudentCourse)this.course.getStudentcourses().get(stuid); String sgrade = sc.getGrade(); try{ float fgrade = Float.parseFloat(sc.getGrade()); fgrade = (fgrade - 50) / 10; if(fgrade < 1) { return "0.0"; } else { NumberFormat fm = NumberFormat.getInstance(); fm.setMaximumFractionDigits(2); return fm.format(fgrade); } } catch (NumberFormatException e){ if(sgrade.equals("优秀")) { return "4.0"; } else if(sgrade.equals("良好")) { return "3.0"; } else if(sgrade.equals("中等")) { return "2.0"; } else if(sgrade.equals("及格")) { return "1.0"; } else if(sgrade.equals("不及格")){ return "0.0"; } else { return " "; } } } private void initCourse() { HashMap<Integer, Object> students = major.getStudents(); HashMap<Integer, Object> grades = course.getStudentcourses(); this.students = new ArrayList(); Iterator it = students.values().iterator(); Student student = null; StudentCourse sc = null; double sum = 0; int hg = 0; String snames = new String(); while(it.hasNext()) { student = (Student)it.next(); sc = (StudentCourse)grades.get(student.getId()); if(sc == null) { snames = snames + student.getName() + ", "; } else { String grade = sc.getGrade(); try{ double fs = Double.valueOf(grade); sum = sum + fs; if(fs >= 60) { hg ++; } else { snames = snames + student.getName() + ", "; } } catch (NumberFormatException e){ if(grade.startsWith("优")) { sum = sum + 90; hg ++; } else if(grade.startsWith("良")) { sum = sum + 80; hg ++; } else if(grade.startsWith("中")) { sum = sum + 70; hg ++; } else if(grade.startsWith("及")) { sum = sum + 60; hg ++; } else if(grade.startsWith("不")) { sum = sum + 50; snames = snames + student.getName() + ", "; } else if(grade.trim().length() == 0){ snames = snames + student.getName() + ", "; continue; } } this.students.add(student); } } averagescore = sum / this.students.size(); countpath = hg; countunpath = this.students.size() - countpath; this.snames = snames; } private class MyComparator implements Comparator{ private int compare(Student s1, Student s2){ if(s1.getSorder() < s2.getSorder()){ return -1; }else if(s1.getSorder() == s2.getSorder()){ return 0; }else{ return 1; } } public int compare(Object o1, Object o2) { return compare((Student) o1, (Student) o2); } } public int getStulength() { return stulength; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -