Java实现的通讯录系统,数据无法传递到数组

package 课设;
import java.util.Scanner;
class Person
{
String name;
int number;
}
class connect
{
Person a[];
public static int number;
public connect()
{
a=new Person[100];
connect.number=0;
}

        public String add(String name,int number)
        {
            if(connect.number == 0)
            System.out.println("请先添加联系人!");
            if(connect.number>99)
            return "添加失败";
            a[connect.number]=new Person();
            a[connect.number].name=name;
            a[connect.number].number=number;
            connect.number++;

            return "添加成功";
        }   

        public Person seek(String name)
        {
            if(connect.number == 0)
            System.out.println("请先添加联系人!");
            for(int i=0;i<connect.number;i++)
            {  
                if((a[i].name).equals(name))
                {
                    System.out.println("联系人: "+a[i].name+"   电话:"+a[i].number);
                    return a[i];
                }
            }
            return null;    
        }

        public void look()
        {
            if(connect.number == 0)
            System.out.println("请先添加联系人!");
            for(int i=0;i<connect.number;i++)
            {
                System.out.println("联系人 "+a[i].name+" 电话 "+a[i].number);
            }
        }

        public String delete(String name)
        {
            if(connect.number == 0)
            System.out.println("请先添加联系人:");
            for(int i=0;i<connect.number;i++)
            { 
                if((a[i].name).equals(name))
                {
                    a[i]=a[connect.number-1];
                    connect.number=connect.number-1;
                    return "删除成功";
                }
            }
            return "删除失败";
        }

}
public class 通讯录
{
public static void main(String[]args)
{
int num3=2;

    Scanner sc=new Scanner(System.in);
    Scanner input = new Scanner(System.in);
    System.out.println("\t\t\t欢迎使用通讯录系统\n");
    System.out.println("\t\t\t1.用户端进入\n\n\t\t\t2.退出\n");
    System.out.println("____________________________________________________________________\n\n");
    System.out.print("请选择相应选项:");
    int num2 = sc.nextInt();  

        do {
            switch (num2)
            {

            case 1:
                {
                    connect c = new connect();
                    System.out.println("\t\t\t1.浏览\n");System.out.println("\t\t\t2.查找\n");
                    System.out.println("\t\t\t3.添加\n");System.out.println("\t\t\t4.删除\n");
                    System.out.println("\t\t\t5.退出\n");
                    System.out.println("输入指令:");
                    int num1 = input.nextInt();
                    switch (num1)
                    {
                        case 1:c.look();break;
                        case 2:
                        {
                            System.out.println("输入查找的名字:");
                            String n1 = sc.next();c.seek(n1);
                        }break;
                        case 3:
                        {
                            System.out.println("输入要添加的人数:");    

                            int s=sc.nextInt();
                            connect.number=s;
                            for(int i=0;i<s;i++)
                            {
                                System.out.println("请输入第"+(i+1)+"个人的个人信息:");
                                String name=sc.next();
                                int number=sc.nextInt();
                                c.add(name,number);

                            }
                        }break;
                        case 4:
                        {
                            System.out.println("输入删除的姓名:");
                            String n3 = sc.next();c.delete(n3);
                        }break;
                        default:
                            {
                                System.out.println("\t\t\t谢谢您的使用\n");
                                System.exit(0);
                            }
                        }   
                    }break;
            case 2:System.out.println("\t\t\t谢谢您的使用\n");break;
            default:System.out.println("输入有误!");
            num2=2;
            }
            System.out.println("如果继续使用输入1,退出请输入2");
            Scanner pd=new Scanner(System.in);
             num3 = pd.nextInt();
             }while(num3==1);
    System.out.println("谢谢使用!");
}

}

你把报错信息截图发出来,看代码的不容易找到痛点。

1.不建议你使用数组进行存储,可以多学一点知识,比如列表,等学完了列表可以再来考虑通讯录
2.删除数据那里会有问题的,删除数组中的一个元素,其他后面的元素都需要往前移动一位,然后把最后一个值置为null
3.添加数据直接创建一个对象添加进去即可,你这里添加的方法中number和connect.number很容易混淆,建议区分一下
4.类名包名不要使用中文
5.类名如果是大写,那就全部采用大写的方式
6.最后还是建议你学完列表之后再来做这个,肯定会比现在要简单,学完也用不了多久的
7.每次进入while循环的时候,你都会重新创建一个connect数组,以前的数组就没了
8.删掉那个输入人数等于connect.number=s,然后添加数据的时候,你的下标就自然的变了,让下标在添加的时候和删除的时候自己发生改变,不要人为的去指定

下面对你的代码进行了一些改进,基本模板还是按照你的套路来的

package cn.base;

import java.util.Scanner;

class Person {
    String name;
    int number;
}

class Connect {
    Person a[];
    public static int number;

    public Connect() {
        a = new Person[100];
        Connect.number = 0;
    }

    public String add(String name, int phoneNumber) {
        if (Connect.number > 99){
            return "添加失败";
        }

        Person person = new Person();
        person.name = name;
        person.number = phoneNumber;
        a[Connect.number++] = person;
        return "添加成功";
    }

    public Person seek(String name) {
        if (Connect.number == 0) {
            System.out.println("请先添加联系人!");
            return null;
        }
        for (int i = 0; i < Connect.number; i++) {
            if ((a[i].name).equals(name)) {
                System.out.println("联系人: " + a[i].name + "   电话:" + a[i].number);
                return a[i];
            }
        }
        return null;
    }

    public void look() {
        if (Connect.number == 0){
            System.out.println("请先添加联系人!");
            return;
        }
        for (int i = 0; i < Connect.number; i++) {
            System.out.println("联系人 " + a[i].name + " 电话 " + a[i].number);
        }
    }

    public String delete(String name) {
        if (Connect.number == 0){
            System.out.println("请先添加联系人:");
            return "";
        }
        for (int i = 0; i < Connect.number; i++) {
            if ((a[i].name).equals(name)) {
                System.arraycopy(a, i + 1, a, i, Connect.number - i);
                a[Connect.number-1] = null;
                Connect.number = Connect.number - 1;
                return "删除成功";
            }
        }
        return "删除失败";
    }
}

class Contract {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("\t\t\t欢迎使用通讯录系统\n");
        System.out.println("\t\t\t1.用户端进入\n\n\t\t\t2.退出\n");
        System.out.println("____________________________________________________________________\n\n");
        System.out.print("请选择相应选项:");
        int command = sc.nextInt();
        do {
            switch (command) {
                case 1:
                    showMenu(sc);
                    break;
                case 2:
                    System.out.println("\t\t\t谢谢您的使用\n");
                    break;
                default:
                    System.out.println("输入有误!");
            }
            System.out.println("如果继续使用输入1,退出请输入2");
            command = sc.nextInt();
        } while (command == 1);
        System.out.println("谢谢使用!");
    }

    private static void showMenu(Scanner sc) {
        Connect c = new Connect();
        System.out.println("\t\t\t1.浏览\n");
        System.out.println("\t\t\t2.查找\n");
        System.out.println("\t\t\t3.添加\n");
        System.out.println("\t\t\t4.删除\n");
        System.out.println("\t\t\t5.退出\n");
        System.out.println("输入指令:");
        int command = sc.nextInt();
        switch (command) {
            case 1:
                c.look();
                break;
            case 2: {
                System.out.println("输入查找的名字:");
                c.seek(sc.nextLine());
            }
            break;
            case 3: {
                System.out.println("输入要添加的人数:");

                int s = sc.nextInt();
                for (int i = 0; i < s; i++) {
                    System.out.println("请输入第" + (i + 1) + "个人的个人信息:");
                    String name = sc.next();
                    int number = sc.nextInt();
                    c.add(name, number);
                }
            }
            break;
            case 4: {
                System.out.println("输入删除的姓名:");
                String n3 = sc.next();
                c.delete(n3);
            }
            break;
            default: {
                System.out.println("\t\t\t谢谢您的使用\n");
                System.exit(0);
            }
        }
    }
}