注册 登录
编程论坛 JAVA论坛

如程序,怎么实现添加学生的信息

linzichen 发布于 2017-12-09 20:55, 1386 次点击

我定义了一个学生类,里面有姓名和学号两个属性
现在我想在Information类里定义学生类的对象数组,并且定义一个添加信息的方法,
方法的形参是学生对象,我应该怎么往象数组里添加学生对象,而且还得保证录入的学号不重复?


import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Information stu = new Information();
        Student st = new Student();
        stu.add(st);
    }
}

class Student {
    String name;
    int id;
}

class Information {
    Scanner input = new Scanner(System.in);
    Student[] p = new Student[5];

    //添加学生的信息
    public void add(Student p1) {
        for (int i = 0; i < p.length; i++) {
            p[i] = new Student();
            p1 = new Student();

            System.out.println("输入学生的姓名:");
            p1.name = input.next();
            System.out.println("请输入学生的学号:");
            p1.id = input.nextInt();

            /*
             * 想实现一个功能,如果输入的学号和之前的重复,则提示该学号已讯在,
             * 并且询问是否继续添加,应该怎么写
             */
        }
    //显示学生的信息
        for (int i = 0; i < p.length; i++) {
            System.out.println(p[i].name + " " + p[i].id);
        }
    }
}
1 回复
#2
林月儿2017-12-10 01:15
程序代码:
class Information {
    Scanner input = new Scanner(System.in);
    Student[] stus = new Student[5];

    //添加学生的信息
    public void add(Student tmpStu) {
        Map<Integer, Student> stuMap = new HashMap<Integer, Student>(5);
        for (int i = 0; i < stus.length; i++) {
            tmpStu = new Student();

            System.out.println("输入学生的姓名:");
            tmpStu.name = input.next();
            System.out.println("请输入学生的学号:");
            tmpStu.id = input.nextInt();

            /*
             * 想实现一个功能,如果输入的学号和之前的重复,则提示该学号已讯在,
             * 并且询问是否继续添加,应该怎么写
            
*/
            if(stuMap.containsKey(tmpStu.id)){
                JOptionPane.showMessageDialog(null, "该学号已存在.", "警告",JOptionPane.ERROR_MESSAGE);
                i--;
                continue;
            }
            stus[i] = tmpStu;
            stuMap.put(tmpStu.id, stus[i]);
            
        }
    //显示学生的信息
        for (int i = 0; i < stus.length; i++) {
            System.out.println(stus[i].name + " " + stus[i].id);
        }
    }
}


整型接收不了字符串, 异常待处理

[此贴子已经被作者于2017-12-10 01:17编辑过]

1