我想通过输入学号来查找该学生是否存在,如果存在的话就打印该学生的所有信息。但是我不知道怎么
从向量中去取出元素来与输入的这个学号进行对比,请谁来帮下我啊,谢谢了!
import java.util.*;;
public class P_193 {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
System.out.println("    "+"/***学生信息管理***\\");
StudentManager sm = new StudentManager();
sm.addStudent();
sm.listAllStudent();
while(true){
System.out.println("/***管理菜单***\\");
System.out.println("1、增加学生");
System.out.println("2、查找学生");
System.out.println("3、修改学生信息");
System.out.println("4、删除学生");
System.out.println("Now 请选择...");
int choose = in.nextInt();
switch(choose){
case 1:
System.out.print("请输入要添加学生的个数:");
int add = in.nextInt();
sm.addStudent2(add);
sm.listAllStudent();
break;
case 2:
System.out.print("请输入学号:");
String Number = in.next();
sm.findStudent(Number);
break;
default:
System.out.println("选择错误,请重新选择:");
}
System.out.print("是否继续管理学生 (Y/N)");
String YN = in.next();
if(YN.equals("Y") || YN.equals("y")){
continue;
}
else
break;
}
}
}
class StudentManager extends Student{
Random r = new Random();
private Scanner in = new Scanner(System.in);
private Vector<Student> v = new Vector<Student>();
public String randomName(){
StringBuffer buffer1 = new StringBuffer("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
StringBuffer randomname = new StringBuffer();
int len = buffer1.length();
for(int i = 0; i < 5; i++){
randomname.append(buffer1.charAt(r.nextInt(len)));
}
return randomname.toString();
}
Student student[] = new Student[5];
public void addStudent(){
Student student[] = new Student[5];
for(int i = 0; i < student.length; i++){
student[i] = new Student();
student[i].setNumber("KY08_"+String.valueOf("0000".toString()+(i+1)));
student[i].setName(randomName());
student[i].setScore(200+r.nextInt(500));
v.add(student[i]);
}
}
Student student2[];
public void addStudent2(int add){
for(int i = 0; i < add; i++){
student[i] = new Student();
System.out.println("请输入第" + " " + (i + 1) + " " + "学生的信息");
System.out.print("学号:");
student[i].setNumber(in.next());
System.out.print("姓名:");
student[i].setName(in.next());
System.out.print("分数:");
student[i].setScore(in.nextDouble());
v.add(student[i]);
}
}
public void listAllStudent(){
if(v.size() == 0){
System.out.println("没有任何学生信息!");
return;
}
System.out.println("编号"+"\t"+"学号"+"\t"+"\t"+"姓名"+"\t"+"分数");
for(int i = 0; i < v.size(); i++){
Student stu = (Student)v.get(i);
System.out.println(i+"\t"+stu.getNumber()+"\t"+stu.getName()+"\t"+stu.getScore());
}
}
public void findStudent(String Number){
/*if(v.contains()
                  请问这个方法该怎么写!
                  */
}
}
class Student{
private String name;
private String number;
private double score;
public void setName(String Name){
name = Name;
}
public String getName(){
return name;
}
public void setNumber(String Number){
number = Number;
}
public String getNumber(){
return number;
}
public void setScore(double Score){
score = Score;
}
public double getScore(){
return score;
}
}

解决方案 »

  1.   

    for(int i = 0; i < v.size(); i++){ 
    Student stu = (Student)v.get(i); 
    System.out.println(i+"\t"+stu.getNumber()+"\t"+stu.getName()+"\t"+stu.getScore()); 

    这不是都取到学生对象了么?
    输入一个学号
    比如int number=scann.nextInt();
    for(int i = 0; i < v.size(); i++){ 
    Student stu = (Student)v.get(i); 
    if(stu.number==number)
    {
    //输出学生信息
    break;
    }

      

  2.   

    正确
    class StudentManager extends Student
    StudentManager不必从Student继承,根本不存在继承关系
      

  3.   

    public void findStudent(String Number) {
    /*
     * if(v.contains() 请问这个方法该怎么写!
     */
    //你要是连接数据库的话,你把学号设为主键
    for (int i = 0; i < v.size(); i++) {
    Student stu = (Student) v.get(i); if(Number.equals(stu.getNumber())){
    System.out.println(i + "\t" + stu.getNumber() + "\t"
    + stu.getName() + "\t" + stu.getScore());
    //输出学生的信息
    break;
    }
    else{
    if(i==v.size())//这里判断是否是最后一条记录
    System.out.println("没有记录");
    }
    }


    }
    }
      

  4.   

    for(int i = 0; i  < v.size(); i++){ 
    Student stu = (Student)v.get(i); 
    System.out.println(i+"\t"+stu.getNumber()+"\t"+stu.getName()+"\t"+stu.getScore()); 

    就行了。