java 167 - 学生列表

本文详细介绍了一个学生类的设计,包括学号、姓名和成绩属性,以及如何在Java中使用LinkedList来存储和操作多个学生对象。文章展示了如何通过命令行输入创建学生对象,并实现了添加、删除和修改学生信息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写学生类,包含学号no、姓名name、成绩score,提供必要的构造函数、toString函数和equals/hashcode函数,其中,toString函数的格式为“no:xxx name:xxx score:xxx”,no参与equals和hashcode的计算
在main函数中构造一个学生列表对象(List),用于存放多个学生对象
从命令行输入多个学生对象,存入列表中
从命令行中读入在列表对象上的操作,具体操作包含:
add 添加一个学生(包含学号和学生姓名)
delete 删除一个学生(包含学号)
set 修改一个学生信息(只修改某学号学生的成绩)
完成操作后按列表顺序输出集合中的学生
import java.util.Iterator;
import java.util.LinkedList;

import java.util.List;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Scanner scan = new Scanner(System.in);

        int num = scan.nextInt();

        List<Student> stu = new LinkedList<Student>();

        for(int i = 0; i < num; i++) {

            int no = scan.nextInt();

            String name = scan.next();

            int score = scan.nextInt();

            Student s = new Student(no, name, score);

            stu.add(s);

            

        }

        num = scan.nextInt();

        for(int i = 0; i < num; i++) {

            String op = scan.next();

            if(op.equals("add")) {

                int no = scan.nextInt();

                String name = scan.next();

                int score = scan.nextInt();

                Student s = new Student(no, name, score);

                stu.add(s);

            }

            else if(op.equals("delete")) {

                int pos = scan.nextInt();

                for(Iterator<Student> it = stu.iterator(); it.hasNext();) {

                    Student st = it.next();

                    if(st.no == pos) {

                        it.remove();

                    }

                }

            }

            else if(op.equals("set")){

                int pos = scan.nextInt();

                int s = scan.nextInt();

                for(Iterator<Student> iter = stu.iterator(); iter.hasNext();) {

                    Student st = iter.next();

                    if(st.no == pos) {

                        st.score = s;

                    }

                }

            }

        }

        

        for(Student s : stu) {

            System.out.println(s);

        }

    }

}

class Student{

    public int no;

    public String name;

    public int score;

    Student(int n, String na, int s){

        no = n;

        name = na;

        score = s;

    }

    public String toString() {

        return "no:"+no+" name:"+name+" score:"+score;

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值