| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 313 人关注过本帖
标题:如程序,怎么实现添加学生的信息
只看楼主 收藏
linzichen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-23
结帖率:50%
  已结贴   问题点数:20  回复次数:1   
如程序,怎么实现添加学生的信息

我定义了一个学生类,里面有姓名和学号两个属性
现在我想在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);
        }
    }
}
2017-12-09 20:55
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:84
帖 子:1468
专家分:6388
注 册:2015-3-19
  得分:20 
程序代码:
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编辑过]


like wind.
2017-12-10 01:15







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.129964 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved