分析以下需求,并用代码实现

  •  1.定义Student类
    属性:
    姓名:String name
    年龄:int age
    成绩:int score
    行为:
    空参构造方法
    有参构造方法
    set和get方法
    toString方法
    2.定义测试类,进行测试
    (1)创建10个学生对象存入ArrayList集合中
    (2)打印最高分的学员姓名、年龄、成绩 [要求封装1个方法 参数是集合对象 返回值类型为Student]
    (3)打印10个学生的总成绩和平均分 [要求封装两个方法完成]
    (4)打印不及格的学员信息及数量 [要求封装一个方法完成]

代码

package com.itheima3;

public class Student {
private String name;
private int age;
private int score; public Student() {
super();
// TODO Auto-generated constructor stub
} public Student(String name, int age, int score) {
super();
this.name = name;
this.age = age;
this.score = score;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public int getScore() {
return score;
} public void setScore(int score) {
this.score = score;
} /*
* toString方法:public String toString()
* 作用:返回此对象本身(它已经是一个字符串!)
*/
@Override
public String toString() {
return "Student [name:"+name+" age:"+age+" score:"+score+"]";
}
}
package com.itheima3;

import java.util.ArrayList;
import java.util.Random; public class Test3 {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> list = new ArrayList<Student>(); //创建元素对象
Student s1 = new Student("张三",18,30);
Student s2 = new Student("李四",19,50);
Student s3 = new Student("王五",20,30);
Student s4 = new Student("赵六",18,86);
Student s5 = new Student("周吴",18,75);
Student s6 = new Student("郑王",19,60);
Student s7 = new Student("大大",21,70);
Student s8 = new Student("老八",19,90);
Student s9 = new Student("哈哈",20,99);
Student s10 = new Student("钱九",18,80); //将元素添加到集合中去
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
list.add(s6);
list.add(s7);
list.add(s8);
list.add(s9);
list.add(s10); //调用方法
Student maxStu = getMaxStudent(list);
System.out.println("最高分的学员信息为:"+maxStu); int sum = getSumScore(list);
System.out.println(list.size()+"名学员的总成绩为:"+sum); int avg = getAvgScore(list);
System.out.println(list.size()+"名学员的平均成绩为:"+avg); printFailStuInfo(list);
}
//打印最高分的学员姓名、年龄、成绩 [要求封装1个方法 参数是集合对象 返回值类型为Student]
public static Student getMaxStudent(ArrayList<Student> list) {
Student s = list.get(0);
for(int i = 0;i < list.size();i++) {
if(list.get(i).getScore() > s.getScore()) {
s = list.get(i);
}
}
return s;
} //打印10个学生的总成绩
public static int getSumScore(ArrayList<Student> list) {
int sum = 0;
for(int i = 0;i < list.size();i++) {
Student s = list.get(i);
sum += s.getScore();
}
return sum;
} //打印10个学生的平均分
public static int getAvgScore(ArrayList<Student> list) {
int sum = getSumScore(list);
return sum / list.size();
} //打印不及格的学员信息及数量 [要求封装一个方法完成]
public static void printFailStuInfo(ArrayList<Student> list) {
int count = 0;
System.out.println("不及格的学生为:");
for(int i = 0;i < list.size();i++) {
Student s = list.get(i);
if(list.get(i).getScore() < 60) {
System.out.println(list.get(i));
count++;
}
}
System.out.println("不及格的学生数量为:"+count);
} }

控制台输出内容

Day_11【集合】扩展案例3_打印最高分的学员姓名、年龄、成绩,打印10个学生的总成绩和平均分,打印不及格的学员信息及数量的更多相关文章

  1. Day_09【常用API】扩展案例3_删除源字符串中的指定字符,并计算指定字符出现的次数

    分析以下需求,并用代码实现 1.键盘录入一个源字符串由字符串变量scrStr接收 2.键盘录入一个要删除的字符串由字符串变量delStr接收 3.要求 删除该字scrStr符串中的所有delStr字符 ...

  2. Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串

    分析以下需求,并用代码实现 1.产生10个1-20之间的随机数要求随机数不能重复 2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母.小写字母.0-9的数字),并遍历打印输出 代码 pa ...

  3. Day_14【IO流】扩展案例3_对文本文件中的字符串内容进行反转

    分析以下需求,并用代码实现 项目根路径下有text.txt文件,内容如下 我爱黑马 123456 利用IO流的知识读取text.txt文件的内容反转后写入text.txt文件中 654321 马黑爱我 ...

  4. Day_08【面向对象】扩展案例3_使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法

    分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨 ...

  5. Day_11【集合】扩展案例1_遍历打印学生信息,获取学生成绩的最高分,获取成绩最高的学员,获取学生成绩的平均值,获取不及格的学员数量

    分析以下需求,并用代码实现: 1.按照以下描述完成类的定义 学生类 属性: 姓名name 年龄age 成绩score 行为: 吃饭eat() study(String content)(content ...

  6. set集合综合案例

    案例01:生成0-10之间5个不相等的数 方法1:使用list集合实现 import random list01 = [] for i in range(100): num01 = random.ra ...

  7. 浅谈集合框架六——集合扩展:Arrays工具类、集合与数组相互转换方式;

    最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系 ...

  8. 【Java】集合综合案例 - 播放器管理

    集合综合案例 文章目录 集合综合案例 需求分析 项目演示 详细设计 代码实现 歌曲类 播放器类 播放列表类 测试 参考资料 播放器管理 需求分析 项目演示 详细设计 代码实现 重新搞一波 复习巩固 简 ...

  9. 006-guava 集合-集合工具类-集合扩展工具类

    一.概述 需要实现自己的集合扩展.也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集 二.使用 2.1.ForwardingList装 ...

随机推荐

  1. 用python爬取之后发现果然如此,都说知乎的小姐姐漂亮

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  2. 告诉你那里最受欢迎,python爬取全国13个城市旅游数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  3. OpenCV 之 基本绘图

    OpenCV 虽是开源的计算机视觉库,但里面也有一些基础的绘图函数,本文将介绍几种常用绘图函数:直线.圆.椭圆.长方形.多边形等. 1  数据结构 1.1  二维向量 cv::Point 代表的是二维 ...

  4. Gatling脚本编写技巧篇(一)

    一.公共类抽取 熟悉Gatling的同学都知道Gatling脚本的同学都知道,Gatling的脚本包含三大部分: http head配置 Scenario 执行细节 setUp 组装 那么针对三部分我 ...

  5. [V&N2020 公开赛] Web misc部分题解

    0x00 前言 写了一天题目,学到了好多东西, 简单记录一下 0x01 Web HappyCTFd 直接使用网上公开的cve打: 解题思路:先注册一个admin空格账号,注意这里的靶机无法访问外网,邮 ...

  6. 看完肯定懂的 Java 字符串常量池指南

    字符串问题可谓是 Java 中经久不衰的问题,尤其是字符串常量池经常作为面试题出现.可即便是看似简单而又经常被提起的问题,还是有好多同学一知半解,看上去懂了,仔细分析起来却又发现不太明白. 背景说明 ...

  7. echarts迁徙图

    前段时间在echarts社区,看见别人写的echarts迁徙图,学习并也写了一个 预览地址: https://gallery.echartsjs.com/editor.html?c=xYS-YtzOa ...

  8. DBeaver数据表的拷贝过程

    通过DBeaver工具链接数据库后,我们就可以通过菜单或者命令功能来实现我们想要的目的. (一)创建数据库 新建数据库,如下图所示:  ——> 在点击“确定”按钮后,可能会遇到失败,此时,我们可 ...

  9. <algorithm>中常用函数

    先说一下STL操作的区间是 [a, b),左边是闭区间,右边是开区间,这是STL的特性,所以<algorithm>里面的函数操作的区间也都是 [a, b). 先声明一下, sort()函数 ...

  10. Python数据分析:大众点评数据进行选址

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:砂糖侠 如果你处于想学Python或者正在学习Python,Pyth ...