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

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表