当前位置: 首页 > news >正文

使用List集合专项实验

2.1 验证性实验

1、List编程:创建一个工人类,属性:姓名、年龄、工资,要求如下:

类结构验证:检查 Worker 类是否正确定义了私有属性(姓名、年龄、工资),验证是否提供了无参和有参构造方法,确认所有属性都有对应的 getter 和 setter 方法。

public class Worker {

    // 私有属性

    private String name;

    private int age;

    private double salary;

    

    // 无参构造方法

    public Worker() {}

    

    // 有参构造方法

    public Worker(String name, int age, double salary) {

        this.name = name;

        this.age = age;

        this.salary = salary;

    }

    

    // get/set方法

    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 double getSalary() {

        return salary;

    }

    

    public void setSalary(double salary) {

        this.salary = salary;

}

 // 重写toString方法,方便打印工人信息

    @Override

public String toString() {

     return "姓名:" + name + ",年龄:" + age + ",工资:" + salary;

}

    

}

2、功能验证:

  1. 程序应能正确创建多个 Worker 对象并存储在 List 集合中
  2. 能完整打印所有工人的信息
  3. 平均工资计算应准确无误
  4. 姓名包含 "胡" 的查询应正确(包含中间或结尾有 "胡" 字的情况)
  5. 姓 "胡" 的查询应只返回以 "胡" 字开头的工人
  6. 键盘输入一个姓名,查找是否存在此员工,存在,则打印输出员工的信息,如果不存在,则输出"查无此人"。
  7. 输入一个工资,查询工资 大于 输入工资的员工信息。

代码如下,请验证上述问题相关功能。

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class WorkerTest {

    public static void main(String[] args) {

        // (2) 创建多个Worker类,存储在List集合中

        List<Worker> workers = new ArrayList<>();

        workers.add(new Worker("张三", 30, 5000));

        workers.add(new Worker("胡四", 28, 6000));

        workers.add(new Worker("王五", 35, 7000));

        workers.add(new Worker("胡六六", 40, 8000));

        workers.add(new Worker("赵七", 25, 4500));

        workers.add(new Worker("胡八一", 38, 9000));

        

        // (3) 打印输出所有的工人信息

        System.out.println("(3) 所有工人信息:");

        for (Worker worker : workers) {

            System.out.println(worker);

        }

        

        // (4) 计算所有工人的平均工资

        double totalSalary = 0;

        for (Worker worker : workers) {

            totalSalary += worker.getSalary();

        }

        double avgSalary = totalSalary / workers.size();

        System.out.println("所有工人的平均工资:" + avgSalary);

        

        // (5) 打印输出姓名中包含 "胡" 的所有工人信息

        System.out.println("姓名中包含'胡'的工人信息:");

        for (Worker worker : workers) {

            if (worker.getName().contains("胡")) {

                System.out.println(worker);

            }

        }

        // (6) 打印输出所有姓 "胡" 的工人信息

        System.out.println("姓'胡'的工人信息:");

        for (Worker worker : workers) {

            if (worker.getName().startsWith("胡")) {

                System.out.println(worker);

            }

        }

        // (7) 键盘输入一个姓名,查找是否存在此员工

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入要查找的姓名:");

        String searchName = scanner.nextLine();

        boolean found = false;

        for (Worker worker : workers) {

            if (worker.getName().equals(searchName)) {

                System.out.println("找到该员工:" + worker);

                found = true;

                break;

            }

        }

        if (!found) {

            System.out.println("查无此人");

        }

        // (8) 输入一个工资,查询工资大于输入工资的员工信息

        System.out.println("请输入一个工资:");

        double searchSalary = scanner.nextDouble();

        System.out.println("工资大于" + searchSalary + "的员工信息:");

        for (Worker worker : workers) {

            if (worker.getSalary() > searchSalary) {

                System.out.println(worker);

            }

        }

        scanner.close();

    }

}

2.2 自主设计性实验

2、已知有 User类,属性为姓名、年龄、性别,完成类的封装并提供无参数、有参数构造方法,完成以下要求:

(1) 创建一个 List,在 List 中增加三个User对象

(2) 打印输出集合中所有的女用户信息

(3) 利用自遍历的方式,打印输出用户姓名长度大于 2 的信息

3、创建一个商品(Product)类,属性:商品名,商品单价,商品的数量,商品产地。

(1) 创建多个商品对象,存储在List集合中,集合中不能出现重复商品,商品名相同即为重复,在Product类中添加必要的方法;

(2) 显示所有的商品信息;

(3) 打印输出商品价格 > 1000 的所有商品信息;

(4) 打印售空的商品的信息;

(5) 打印输出商品产地为"北京"的商品信息;

(6) 输入一个商品名,查询出此类商品的信息,如果不存在,则打印商品"商场无此商品!!!"

(7) 输入一个价格段,查询出集合中所有在这个价格区间的所有商品信息。

4、利用 List存储多个整数,例如:19、45、309、21、189,完成以下需求:

(1) 将 集合中所有数据进行打印输出

(2) 将集合中所有的三位数进行打印输出

(3) 计算集合中所有数据的平均值

(4) 打印输出集合中的最大值

(5) 将集合中的所有元素进行倒叙打印输出

5、利用List存储多个字符,例如:’A’、’a’、’s’、’p’、’+’、’X’、’-’,完成以下需求:

(1) 将集合中所有的字符进行拼接,打印拼接结果

(2) 打印输出集合所有的大写字母

(3) 统计集合中非字母的个数,并打印输出

6、根据以下界面提示以及附件源码,设计一个程序,用于管理学生信息。[综合性程序设计]

(附件为TestStudnet.Java)

http://www.dtcms.com/a/611151.html

相关文章:

  • 网站开发程序用什么好wordpress 新建页面 超链接
  • 嘉兴网站开发学校2008建立的php网站慢
  • 训练100B 以上参数需要多少硬件?
  • 找深圳做网站的公司网页设计新手制作的网站代码
  • 怎么通过域名做网站dw做网页的步骤和代码
  • Linux学习日记12:无名通道与有名通道
  • 征程 6X 常见 kernel panic 问题
  • 复盘与导出工具最新版V35.0版本更新----修复东财智能选股,预测量能,开盘啦涨停闪退,炸板数量不匹配问题
  • 招聘网站咋做珠海溢动网络科技有限公司
  • discuz 网站风格境外公司注册
  • 网站的建设原始代码哪家公司做网站便宜
  • 网站建设这块是怎么挣钱汕头建站模板搭建
  • 高水平的郑州网站建设机械网站建设哪家好
  • RAG 和微调(Fine-tuning)核心对比:通俗版 + 实操选型
  • 第四章 Agent的几种经典范式
  • 发光二极管解析
  • 从今日市场动荡看TRS收益互换与场外个股期权系统开发紧迫性
  • 安全版普通用户获取系统对象的访问权限
  • 滕州做网站的多少预订网站模板
  • 免费网站入口网站空间哪家好
  • 松江网站建设哪家好国内外网站开发技术
  • 网站设计电商首页网站平台建设意见
  • BAS16,215 硅高速开关二极管 NXP安世半导体 集成电路芯片解析
  • LangChain的核心组件Messages之初体验
  • RocketMQ代码分析——DefaultLitePullConsumer
  • 六安网站建设招聘企业电子商务网站建设规划
  • Qt开发——常见控件(1)
  • 【WSL】C盘迁移
  • 上海小企业网站建设平台天眼查企业查询
  • 建设团购网站电子商务网站开发公司