分拣存储2-统计学生每个班级的总分和平均分

本文介绍如何使用Java设计一个Student类,并通过List和Map数据结构,配合ClassRoom类,统计并计算每个班级的总分和平均分。核心代码中,将Student对象添加到List中,然后遍历并按班级进行分拣存储,利用Map的key作为班级,value为包含班级总分和学生对象的ClassRoom实例。

题目要求:定义一个Student类,属性有,name名字,no班级,score成绩,现在将若干不同班级的Student对象放入List中,统计每个班的总分和平均分

题目分析:首先需要一个student类是毋庸置疑的,采用javabean模式设计一个student类,接下来就是选择集合容器来装对象了,我们可以选择List〈student〉来装student对象,然后利用泛型嵌套把List〈student〉嵌套到Map中,
即Map〈String,List〈student〉〉,Map中的key存放班级,List〈student〉存放对应班级的学生,这也是一种办法,这里采用另外一种方式,创建一个新的类,ClassRoom,这就是一个班级类,属性有班级和学生列表,以及总成绩

代码实现:

/**
 * 学生类
 * @author wwyDEPP
 *
 */
public class Student {
   
   
    private String name;
    private String no;
    private double score;
    public Student() {

    }
    public Student(String name, String no, double score) {
        super();
        this.name = name;
        this.no = no;
        this.score = score;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getNo() {
        
### 水果分拣系统 E-R 图设计与数据库建模 水果分拣系统的实体关系图(E-R 图)是描述系统中数据对象及其相互关系的重要工具。在设计水果分拣系统的 E-R 图时,需要考虑系统中的主要实体、属性以及它们之间的关系。以下是关于水果分拣系统 E-R 图设计数据库建模的详细说明。 #### 1. 主要实体及其属性 水果分拣系统的核心实体可能包括以下内容: - **水果(Fruit)**:表示系统中需要分拣的水果。 - 属性:`水果ID`、`名称`、`种类`、`重量`、`颜色`、`尺寸`、`产地`等[^2]。 - **分拣规则(Sorting Rule)**:定义水果分拣的标准或条件。 - 属性:`规则ID`、`规则名称`、`优先级`、`条件表达式`(例如,按重量范围或颜色分类)等[^3]。 - **分拣设备(Sorting Machine)**:用于执行分拣操作的设备。 - 属性:`设备ID`、`设备名称`、`号`、`状态`、`容量`等[^4]。 - **用户(User)**:使用系统进行管理或监控的人员。 - 属性:`用户ID`、`用户名`、`角色`(如管理员或操作员)、`密码`等[^5]。 - **分拣结果(Sorting Result)**:记录每次分拣操作的结果。 - 属性:`结果ID`、`水果ID`、`分拣时间`、`分拣等级`、`目标区域`等[^6]。 #### 2. 实体间的关系 - **水果与分拣规则**:一个水果可以符合多个分拣规则,而一个分拣规则可以应用于多个水果。这是多对多的关系。 - **分拣规则与分拣设备**:一个分拣设备可以执行多个分拣规则,而一个分拣规则可以由多个设备执行。这也是多对多的关系。 - **用户与分拣设备**:一个用户可以操作多个分拣设备,而一个分拣设备可以被多个用户操作。这同样是多对多的关系。 - **分拣结果与水果**:一个分拣结果对应一个水果,而一个水果可以产生多个分拣结果(如果多次分拣)。这是多对一的关系。 #### 3. E-R 图示例 以下是一个简单的水果分拣系统 E-R 图设计示例: ```plaintext +------------------+ +------------------+ +------------------+ | Fruit | | Sorting Rule | | Sorting Machine | +------------------+ +------------------+ +------------------+ | fruit_id (PK) | | rule_id (PK) | | machine_id (PK) | | name | | rule_name | | machine_name | | type | | priority | | model | | weight | | condition_expr | | status | | color | +------------------+ | capacity | | size | +------------------+ +------------------+ +------------------+ +------------------+ | User | | Sorting Result | +------------------+ +------------------+ | user_id (PK) | | result_id (PK) | | username | | fruit_id (FK) | | role | | sorting_time | | password | | sorting_grade | +------------------+ | target_area | +------------------+ ``` #### 4. 数据库建模 基于上述 E-R 图,可以生成对应的数据库表结构。以下是一个简单的 SQL 表定义示例: ```sql CREATE TABLE Fruit ( fruit_id INT PRIMARY KEY, name VARCHAR(50), type VARCHAR(50), weight DECIMAL(5, 2), color VARCHAR(20), size VARCHAR(10), origin VARCHAR(50) ); CREATE TABLE SortingRule ( rule_id INT PRIMARY KEY, rule_name VARCHAR(100), priority INT, condition_expr TEXT ); CREATE TABLE SortingMachine ( machine_id INT PRIMARY KEY, machine_name VARCHAR(100), model VARCHAR(50), status VARCHAR(20), capacity INT ); CREATE TABLE User ( user_id INT PRIMARY KEY, username VARCHAR(50), role VARCHAR(20), password VARCHAR(100) ); CREATE TABLE SortingResult ( result_id INT PRIMARY KEY, fruit_id INT, sorting_time DATETIME, sorting_grade VARCHAR(20), target_area VARCHAR(50), FOREIGN KEY (fruit_id) REFERENCES Fruit(fruit_id) ); ``` #### 5. 注意事项 - 在设计 E-R 图时,确保每个实体的属性完整且无冗余。 - 考虑到实际业务需求,可能需要增加或调整实体关系。 - 数据库建模时应遵循第三范式(3NF),以减少数据冗余并提高查询效率[^7]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值