910631286 发表于 2020-4-11 16:31:17

学生管理系统

import java.util.Arrays;
import java.util.Scanner;
public class Demo {
        public static void main(String[] args) {
                boolean flag=true;
                Scanner in= new Scanner(System.in);
                String[] idArr={};
                String[] nameArr={};
                double[] scoreArr={};
                String id;
                String name;
                double score;
                int a;
                int index;//
                while(flag){
                        System.out.println("1.成绩录入\t2.成绩查询\t3.成绩修改\t4.成绩列表\t5.退出系统");
                        a=in.nextInt();
                        switch(a){
                        case 1:
                                System.out.println("请输入学号:");
                                id=in.next();
                                System.out.println("请输入姓名:");
                                name=in.next();
                                System.out.println("请输入分数");
                                score=in.nextDouble();
                                if(show(idArr,id)==-1){
                                        idArr=Arrays.copyOf(idArr,idArr.length+1);
                                        nameArr=Arrays.copyOf(nameArr,nameArr.length+1);
                                        scoreArr=Arrays.copyOf(scoreArr,scoreArr.length+1);
                                        idArr=id;
                                        nameArr=name;
                                        scoreArr=score;
                                        System.out.println("录入成功");
                                }else{
                                        System.out.println("该学生存在,录入失败!!!");
                                }
                                break;
                        case 2://查询
                                System.out.println("请输入学号:");
                                id=in.next();
                                index=show(idArr,id);
                                if(index!=-1){
                                        System.out.println("学号\t姓名\t成绩");
                                        System.out.println(idArr+"\t"+nameArr+"\t"+scoreArr);
                                }else{
                                        System.out.println("没找到该学生的信息");
                                }
                                break;
                        case 3:
                                break;
                        case 4:
                                break;
                        case 5:
                                System.out.println("成功退出系统!!!");
                                flag=false;
                                break;
                        default:
                                System.out.println("输入有误");
                        }
                }
        }
        public static int show(String[]idArr,String id){
                int index=-1;
                for (int i = 0; i < idArr.length; i++) {
                        if(id.equals(idArr)){
                                index=1;
                                break;
                                }
                }
                return index;
        }

}
为什么我标红的那一行会报错

永恒的蓝色梦想 发表于 2020-4-11 16:34:51

改成System.out.println(""+idArr+"\t"+nameArr+"\t"+scoreArr);试试?

还有,下次代码用代码格式发布

910631286 发表于 2020-4-11 16:46:22

还是没用
System.out.println(index);//这个打印出来是1
System.out.println(""+idArr+"\t"+nameArr+"\t"+scoreArr);这个报错

1.成绩录入        2.成绩查询        3.成绩修改        4.成绩列表        5.退出系统
1
请输入学号:
001
请输入姓名:
张三
请输入分数
66.3
录入成功
1.成绩录入        2.成绩查询        3.成绩修改        4.成绩列表        5.退出系统
2
请输入学号:
001
学号        姓名        成绩
1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at Demo.main(Demo.java:45)
这个是控制台输入面板

倒戈卸甲 发表于 2020-4-11 17:03:21

这个异常是数组下标越界,首先考虑下标是否大了1

bird_keeing 发表于 2020-4-24 20:37:21

show 方法错了id是String   idArr是数组
页: [1]
查看完整版本: 学生管理系统