在访问者登录管理系统中使用数组

问题描述 投票:1回答:1

您可以从标题中清楚地猜测到,我是编程的新手,我不知道从哪里开始。我的任务是制作一个具有临时数据存储和有限人数的校园访客登录管理系统。我是大一新生,我们仍然没有讨论SQL,因为它仅适用于大二学生。我的老师还建议使用数组,因为我还是个初学者。任何提示或想法将不胜感激。到目前为止,这是我到目前为止提出的,

        System.out.print("Enter number of visitors: ");
        int number = input.nextInt();

        //visitor's Information
        String name[] = new String[number];
        String department[] = new String[number];
        String reason[] = new String[number];

        System.out.println();

        for(int i = 0; i<name.length;i++){
            System.out.print("Enter full name: ");
            name[i] = input.next();
            System.out.print("\nEnter department: ");
            department[i]= input.next();
            System.out.print("\nEnter reason: ");
            reason[i]= input.next();
        }
        System.out.println();


        for(int i = 0; i<name.length;i++){
            System.out.println("Name: "+name);
            System.out.println("Department: " +department);
            System.out.println("Reason: "+reason);
        }


        //visitor's id number
        for(int i = 0; i<reason.length; i++)    {
            System.out.println(name[i]);
        }
}

}

由于某种原因,结果显示的是地址,而不是名称,部门和原因。我现在不知所措

java arrays authentication java.util.scanner
1个回答
0
投票

在for循环中,您没有访问数组的索引。当前,您正在通过将对象打印到控制台而不提供索引来打印String类(数组的引用类型)的toString方法。

更改

for(int i = 0; i<name.length;i++){
        System.out.println("Name: "+name);
        System.out.println("Department: " +department);
        System.out.println("Reason: "+reason);
    }

收件人

for(int i = 0; i<name.length;i++){
        System.out.println("Name: "+name[i]);
        System.out.println("Department: " +department[i]);
        System.out.println("Reason: "+reason[i]);
    }

让我知道这是否对您有帮助。

为了进一步改善您的代码,您可以尝试创建更多的方法来完成一件事情。例如,打印出包含名称,部门和原因的结果。该功能可以移至名为printResults的方法。

[如果您有更多编程经验,请尝试阅读Robert C. Martin写的一本名为Clean Code的书。使用书中提到的最佳实践将帮助您创建更好和可重用的代码。我个人认为这是每个专业开发人员都必须阅读的。

© www.soinside.com 2019 - 2024. All rights reserved.