Java-类的方法练习--实现学生姓名的添加、显示、查找及修改

多个参数的定义。

要求:1、指定查找区间,查找学生姓名并显示是否查找成功

           2、修改学生姓名,输入新、旧姓名,进行修改并显示是否修改成功

效果如下:

         

public class Student {
    String[] names=new String[10];
    public void addName(String name){
        for (int i=0;i<names.length;i++){
            if (names[i]==null){
                names[i]=name;
                break;
            }
        }
    }
    public boolean searchName(int start,int end,String name){ //查找区间时用到
        boolean find=false;
        for (int i=start-1;i<end;i++){  //根据给出的开始及结束的位置查询对应的姓名
            if (names[i] != null && names[i].equals(name)){
                find=true;
                break;
            }
        }
        return find;
    }
    public int searchName(String name){
        for (int i=0;i<names.length;i++){
            if (names[i] != null && names[i].equals(name)){
                return i; //存在则返回姓名数组的索引
            }
        }
        return -1; //不存在则返回-1
    }
    public int updateName(String oldName,String newName){
        int index=searchName(oldName); //获取查找方法的返回值
        if (index==-1){ //根据返回值判断被修改的学生姓名是否存在
            System.out.println("该学生不存在!!!");
            return -1;
        }else {
            names[index]=newName;
            System.out.println("找到并修改成功!!!");
            return 0;
        }
    }
    public void showName(){
        System.out.println("本班学生列表:");
        for (String i : names){
            if (i!=null){
                System.out.print(i+"\t");
            }
        }
    }
}
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Student student=new Student();
        Scanner input=new Scanner(System.in);
        String answer="";
        do {
            System.out.print("请输入学生姓名:");
            String name=input.next();
            student.addName(name);
            System.out.print("继续输入吗?(y/n):");
            answer=input.next();
        }while (answer.equals("y"));
        student.showName();

        System.out.println();
        System.out.print("请选择操作:1.查找学生\t2.修改学生姓名");
        int choose=input.nextInt();
        switch (choose){
            case 1:
                System.out.println();
                System.out.print("请输入开始查找的位置:");
                int start=input.nextInt();
                System.out.print("请输入结束查找的位置:");
                int end=input.nextInt();
                System.out.print("请输入要查找的学生姓名:");
                String name=input.next();
                System.out.println("********查找结果********");
                if (student.searchName(start,end,name)){
                    System.out.println("找到该学生!!!");
                }else {
                    System.out.println("查无此人!!!");
                }
                break;
            case 2:
                System.out.println();
                System.out.print("请输入要修改的学生姓名:");
                String oldName=input.next();
                System.out.print("请输入新的学生姓名:");
                String newName=input.next();
                System.out.println("********修改结果********");
                student.updateName(oldName,newName);
                student.showName();
                break;
                default:
                    break;
        }
    }
}

运行结果如下:

            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我说、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值