扁平化设计网站代码,网站页面构成,网站照片要求,高端网站建设的市场分析接口的综合案例#xff1a;
接口的应用案例#xff1a;班级学生信息管理模块的开发
需求#xff1a;
请设计一个班级学生的信息管理模块#xff1a;学生的数据有#xff1a;姓名、性别、成绩。
功能1#xff1a; 要求打印出全班学生的信息#xff1b;功能2#xff…
接口的综合案例
接口的应用案例班级学生信息管理模块的开发
需求
请设计一个班级学生的信息管理模块学生的数据有姓名、性别、成绩。
功能1 要求打印出全班学生的信息功能2要求打印全班学生的平均成绩。 注意以上功能的业务实现是由多套方案的比如
第一套方案能打印出班级全部学生的信息能够打印班级全部学生的平均分
第二套方案能打印出班级全部学生的信息包含男女人数能够打印班级全部学生的平均分要求去掉最高分、最低分。
要求系统可以支持灵活的切换这些实现功能。
Student类
package cn.ensource.interface_demo;public class Student {private String name;private char sex;private double score;public Student() {}public Student(String name, char sex, double score) {this.name name;this.sex sex;this.score score;}public String getName() {return name;}public void setName(String name) {this.name name;}public char getSex() {return sex;}public void setSex(char sex) {this.sex sex;}public double getScore() {return score;}public void setScore(double score) {this.score score;}
}
ClassManager类
package cn.ensource.interface_demo;import java.util.ArrayList;public class ClassManager {private ArrayListStudent students new ArrayList();
// StudentOperator studentOperator new StudentOperatorImpl1(); //多态的写法StudentOperator studentOperator new StudentOperatorImpl2();public ClassManager() {students.add(new Student(迪丽热巴, 女, 98));students.add(new Student(古丽扎拉, 女, 100));students.add(new Student(马尔扎哈, 男, 80));students.add(new Student(巴拉巴拉, 女, 96));students.add(new Student(卡尔扎巴, 男, 60));}// 打印全班全部学生的信息public void printInfo() {studentOperator.printAllInfo(students);}// 打印全班全部学生的平均分public void printAvgScore() {studentOperator.printAverageScore(students);}
}
StudentOperatorImpl1类
package cn.ensource.interface_demo;import java.util.ArrayList;public class StudentOperatorImpl1 implements StudentOperator {Overridepublic void printAllInfo(ArrayListStudent students) {System.out.println(----全班全部学生信息如下----);for (int i 0; i students.size(); i) {Student s students.get(i);System.out.println(学生姓名 s.getName());System.out.println(学生性别 s.getSex());System.out.println(学生成绩: s.getScore());}System.out.println(-------------------------);}Overridepublic void printAverageScore(ArrayListStudent students) {double sum 0.0;for (int i 0; i students.size(); i) {Student s students.get(i);sum s.getScore();}double avg sum / students.size();System.out.println(平均分 avg);}
}
StudentOperatorImpl2类
package cn.ensource.interface_demo;import java.util.ArrayList;public class StudentOperatorImpl2 implements StudentOperator {Overridepublic void printAllInfo(ArrayListStudent students) {int counter1 0; // 男生计数器int counter2 0; // 女生计数器System.out.println(----全班全部学生信息如下----);for (int i 0; i students.size(); i) {Student s students.get(i);System.out.println(学生姓名 s.getName());System.out.println(学生性别 s.getSex());System.out.println(学生成绩: s.getScore());if (s.getSex() 男) {counter1;}else {counter2;}}System.out.println(男生人数 counter1);System.out.println(女生人数 counter2);System.out.println(-------------------------);}Overridepublic void printAverageScore(ArrayListStudent students) {double sum 0.0;double max students.get(0).getScore();double min students.get(0).getScore();for (int i 0; i students.size(); i) {Student s students.get(i);sum s.getScore();if (s.getScore() max) {max s.getScore();}if (s.getScore() min) {min s.getScore();}}System.out.println(学生最高分 max);System.out.println(学生最低分 min);double avg (sum - max - min) / (students.size() - 2);System.out.println(平均分(去掉最高分、最低分 avg);}
}
测试类
package cn.ensource.interface_demo;public class Test {public static void main(String[] args) {// 目标完成班级学生信息管理系统的案例ClassManager classManager new ClassManager();classManager.printInfo();classManager.printAvgScore();}
}
运行结果
----全班全部学生信息如下----
学生姓名迪丽热巴
学生性别女
学生成绩: 98.0
学生姓名古丽扎拉
学生性别女
学生成绩: 100.0
学生姓名马尔扎哈
学生性别男
学生成绩: 80.0
学生姓名巴拉巴拉
学生性别女
学生成绩: 96.0
学生姓名卡尔扎巴
学生性别男
学生成绩: 60.0
男生人数2
女生人数3
-------------------------
学生最高分100.0
学生最低分60.0
平均分(去掉最高分、最低分91.33333333333333
感觉真的是非常方便。