- 某高中的入学考试包含三门科目:语文,数学、英语。各科满分均为150分。
入学录取条件:
(1) 单科考试成绩需大于等于单科总分的60%且总分分数需大于等于300分,可录取;
(2) 若某一门分数大于等于95%,可以按特长生身份,录取。
学生类包含姓名、总分、三科成绩等成员变量及对应的getXX()和setXX()方法;定义接口JudgeInterface,其中抽象方法名为judge,其实现类为JudgeImplement,主要功能判断学生是否被录取;运行类Test,主要功能为录入学生信息、调用判断学生是否录取的方法、打印被录取的学生信息等。
要求: - 使用集合(或列表)保存学生对象;
- 指定考生数量,录入考生的信息及成绩;
- 输出所有考生姓名;
- 筛选录取学生,并对打印其全部信息。
java sclipse程序设计
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 示例代码如下:
学生类:public class Student { /** * 满分 */ public static final Double MAX = 150d; /** * 学生姓名 */ private String name; /** * 语文成绩 */ private Double chinese; /** * 数学成绩 */ private Double math; /** * 英语成绩 */ private Double english; /** * 总成绩 */ private Double total; public String getName() { return name; } public void setName(String name) { this.name = name; } public Double getChinese() { return chinese; } public void setChinese(Double chinese) { this.chinese = chinese; } public Double getMath() { return math; } public void setMath(Double math) { this.math = math; } public Double getEnglish() { return english; } public void setEnglish(Double english) { this.english = english; } public Double getTotal() { return total; } public void setTotal(Double total) { this.total = total; } @Override public String toString() { return MessageFormat.format("姓名:{0},语文成绩:{1},数学成绩:{2},英语成绩:{3},总成绩:{4}", name, chinese, math, english, total); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } Student student = (Student) o; return Objects.equals(name, student.name) && Objects.equals(chinese, student.chinese) && Objects.equals(math, student.math) && Objects.equals(english, student.english) && Objects.equals(total, student.total); } @Override public int hashCode() { return Objects.hash(name, chinese, math, english, total); } }
接口 JudgeInterface:
public interface JudgeInterface { /** * 学生能否被录取 * @param student * @return */ boolean judge(Student student); }
实现类 JudgeImplement:
public class JudgeImplement implements JudgeInterface { @Override public boolean judge(Student student) { double percent60 = Student.MAX * 0.6; double percent95 = Student.MAX * 0.95; if (student.getChinese() >= percent60 && student.getMath() >= percent60 && student.getEnglish() >= percent60 && (student.getChinese() + student.getMath() + student.getEnglish() >= 300)) { // 单科考试成绩需大于等于单科总分的60%且总分分数需大于等于300分,可录取; return true; } else if (student.getChinese() >= percent95 || student.getMath() >= percent95 || student.getEnglish() >= percent95) { // 若某一门分数大于等于95%,可以按特长生身份,录取。 return true; } return false; } }
运行类 Test:
public class Test { public static void main(String[] args) { List<Student> students = new ArrayList<>(); Scanner scanner = new Scanner(System.in); System.out.print("请指定考生数量:"); int count = scanner.nextInt(); System.out.println("请录入学生信息及成绩:"); for (int i = 0; i < count; i++) { System.out.printf("录入第%d个学生信息及成绩:\n", i + 1); Student student = new Student(); System.out.print("\t学生姓名:"); student.setName(scanner.next()); System.out.print("\t语文成绩:"); student.setChinese(scanner.nextDouble()); System.out.print("\t数学成绩:"); student.setMath(scanner.nextDouble()); System.out.print("\t英语成绩:"); student.setEnglish(scanner.nextDouble()); student.setTotal(student.getChinese() + student.getMath() + student.getEnglish()); students.add(student); } System.out.printf("所有考生姓名:%s\n", students.stream().map(Student::getName).collect(Collectors.joining("\t"))); System.out.println("录取学生:"); JudgeInterface judgeInterface = new JudgeImplement(); students.stream().filter(judgeInterface::judge).forEach(System.out::println); } }
运行结果:
如有帮助,请采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
- ¥50 分布式追踪trace异常问题
- ¥15 人在外地出差,速帮一点点
- ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
- ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
- ¥50 vue router 动态路由问题
- ¥15 关于#.net#的问题:End Function
- ¥15 无法import pycausal
- ¥15 weditor无法连接模拟器Local server not started, start with?
- ¥20 6-3 String类定义