J015_班级学生信息管理模块(接口应用案例)

2024-04-14 19:44

本文主要是介绍J015_班级学生信息管理模块(接口应用案例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Student

package com.itheima.d4_interfacecase1;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;}
}

StudentOperator

package com.itheima.d4_interfacecase1;import java.util.ArrayList;public interface StudentOperator {void printAllInfo(ArrayList<Student> students);void printAverageScore(ArrayList<Student> students);
}

StudentOperatorImpl1

package com.itheima.d4_interfacecase1;import java.util.ArrayList;public class StudentOperatorImpl1 implements StudentOperator{//输出全班学生信息@Overridepublic void printAllInfo(ArrayList<Student> students) {System.out.println("-------------全班学生信息如下-----------------");for (int i = 0; i < students.size(); i++) {Student s = students.get(i);System.out.println("姓名:" + s.getName() + ",性别:" + s.getSex() + ",分数:" + s.getScore());}System.out.println("-------------------------------------------");}//打印班级平均分@Overridepublic void printAverageScore(ArrayList<Student> students) {double averageSource = 0.0;for (int i = 0; i < students.size(); i++) {Student s = students.get(i);averageSource += s.getScore();}System.out.println("平均分:" + averageSource/students.size());}
}

StudentOperatorImpl2

package com.itheima.d4_interfacecase1;import java.util.ArrayList;public class StudentOperatorImpl2 implements StudentOperator{@Overridepublic void printAllInfo(ArrayList<Student> students) {//记录男生人数int count1 = 0;//记录女生人数int count2 = 0;System.out.println("-------------全班学生信息如下-----------------");for (int i = 0; i < students.size(); i++) {Student s = students.get(i);System.out.println("姓名:" + s.getName() + ",性别:" + s.getSex() + ",分数:" + s.getScore());if (s.getSex() == '男') {count1 ++;}else {count2 ++;}}System.out.println("男生人数为:" + count1 + ",女生人数为:" + count2);System.out.println("总人数为:" + students.size());System.out.println("-------------------------------------------");}@Overridepublic void printAverageScore(ArrayList<Student> students) {double averageSource = 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);averageSource += s.getScore();if (s.getScore() > max) {max = s.getScore();}if (s.getScore() < min) {min = s.getScore();}}System.out.println("最高分为:" + max + "最低分为:" + min);System.out.println("平均分:" + (averageSource - max - min) / (students.size() - 2));}
}

ClassManger

package com.itheima.d4_interfacecase1;import java.util.ArrayList;public class ClassManger {private ArrayList<Student> students = new ArrayList<>();private StudentOperator operator = new StudentOperatorImpl2();public ClassManger() {students.add(new Student("迪丽热巴",'女',99));students.add(new Student("古力娜扎",'女',99.9));students.add(new Student("黑八可",'男',80));students.add(new Student("小白白",'男',70));}//打印学生全部信息public void printInfo() {operator.printAllInfo(students);}//打印学生平均分public void printAveScore(){operator.printAverageScore(students);}
}

Test

package com.itheima.d4_interfacecase1;public class Test {public static void main(String[] args) {//完成班级学生信息管理模块案例ClassManger clas = new ClassManger();clas.printInfo();clas.printAveScore();}
}

这篇关于J015_班级学生信息管理模块(接口应用案例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903842

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时