123345

 /*第二关,设置集合元素,输入一个学号,查找该学生,
        若找到,则显示"该学生存在”,然后删除,否则提示“该学生不存在” 。最后显示集合列表。
        请在下面标注【】处补充代码
 */
import java.util.ArrayList;
import java.util.Scanner;
import java.util.*;
public class StudentTest2 {
        
    public static void main(String[] args) {
        //创建ArrayList类的集合 stuScoreList,表示多个学生对象
        ArrayList<StudentScore>stuScoreList=new ArrayList<StudentScore>();

        /*将以下三个学生的信息添加到集合中
        学号: 200807201 姓名:   wanghai 成绩:  78.0
        学号: 200807202 姓名:    hanhan 成绩:  85.0
        学号: 200807203 姓名:    weimin 成绩:  95.0
        */
        StudentScore stu; 
        stu= new StudentScore("200807201","wanghai",78);
        stuScoreList.add(stu);
        StudentScore stu1; 
        stu1= new StudentScore("200807202","hanhan",85);
        stuScoreList.add(stu1);
        StudentScore stu2; 
        stu2= new StudentScore("200807203","weimin",95);
        stuScoreList.add(stu2);
        //输入学号,
        System.out.println("输入待查找的学生的学号:");
        Scanner sc = new Scanner(System.in);
        String number;
        number = sc.nextLine();
        stu = new StudentScore(number, " ",0);
        //根据学号查找该学生的索引号,若找到,则返回该索引号,否则返回-1。 用indexOf()方法
        int index = -1;
        for(int x=0; x<stuScoreList.size(); x++) {
            StudentScore s = stuScoreList.get(x);
            if(s.stuNumber.equals(number)) {
                index = x;
                break;
            }
        }
        if(index == -1) {
            System.out.println("该学生不存在");
        }else {  
        //根据返回值判断该学生是否存在,若存在,则显示"该学生存在"并删除,否则提示"该学生不存在"
        stuScoreList.remove(index);
        System.out.println("该学生存在");
        }
        //显示集合列表
        showList(stuScoreList);   
    }
    
    //显示学生集合list中的元素
    public static void showList(ArrayList<StudentScore > list) {
        Iterator <StudentScore>it=list.iterator();
        while(it.hasNext()){
            it.next().show();
        }
    }
}

 //定义学生成绩类,在下面标注【】处补充代码
public class StudentScore {

    String stuNumber; // 学号
    String stuName;   // 姓名
    float  score;     //成绩
    
    //定义带3个参数的构造方法
    public StudentScore(String stuNumber,String stuName,float score) {
         this.stuNumber=stuNumber;
         this.stuName=stuName;
         this.score=score;
    }
    
    //显示学生信息
    public void show() {
        System.out.printf("学号:%10s 姓名:%10s 成绩:%6.1f\n",stuNumber,stuName,score);
    }
    
    //重写equals()方法,实现按学号查询
    @Override
    public boolean equals(Object obj) {
         if (obj == null)
            return false;
        StudentScore stu = (StudentScore)obj;
        if ( stu.stuNumber.equals(this.stuNumber))
            return true;
        else
            return false;
    }
    }
 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值