Java 从学员详细信息中,如何使用唯一的卷号调用和显示存储在数组中的特定详细信息

Java 从学员详细信息中,如何使用唯一的卷号调用和显示存储在数组中的特定详细信息,java,arrays,Java,Arrays,例如,若我在数组中存储了20个学生详细信息,并且在运行时给出了值,最后我想使用他们的唯一卷号显示特定的学生详细信息。如何在java程序中使用数组调用和显示学生详细信息 import java.util.Scanner; public class StudInfo { int regno; String name,course; int eng,tam,mat,tot; double avg; //* void getdata() { Scanner ip=new Scanner(System.

例如,若我在数组中存储了20个学生详细信息,并且在运行时给出了值,最后我想使用他们的唯一卷号显示特定的学生详细信息。如何在java程序中使用数组调用和显示学生详细信息

import java.util.Scanner;

public class StudInfo
{
int regno;
String name,course;
int eng,tam,mat,tot;
double avg;
//*
void getdata()
{
Scanner ip=new Scanner(System.in);
System.out.print("\n\n Enter Roll No.\t:\t");
regno=ip.nextInt();
System.out.print("\n Enter Name   \t:\t");
name=ip.next();
System.out.println();
System.out.print(" Enter Marks [English, Tamil and Maths Marks out of 100] : ");
eng=ip.nextInt();
tam=ip.nextInt();
mat=ip.nextInt();
}
//*
void display()
{
tot=eng+tam+mat;
avg=tot/3;
System.out.println("\n"+"\n Roll No.\t:\t"+regno+
    "\n Name   \t:\t"+name+
    "\n English\t:\t"+eng+
    "\n Tamil   \t:\t"+tam+
    "\n Maths   \t:\t"+mat+
    "\n Total   \t:\t"+tot+
    "\n Average\t:\t"+avg);


System.out.print(" Grade   \t:\t");
if((eng>=50)&&(tam>=50)&&(mat>=50))
{
if(avg>=91) System.out.print("O");
else if(avg>=81) System.out.print("A");
else if(avg>=71) System.out.print("B");
else if (avg>=61) System.out.print("C");
else if(avg>=51) System.out.print("D");
else System.out.print("Fail");
}
else System.out.print("Fail");
System.out.println();
}
public static void main(String[] args) {
    int maxs, nos;
    Scanner ip1 = new Scanner(System.in);
    System.out.print("\nEnter No. of Students : ");
    nos = ip1.nextInt();
    StudInfo[] studInfos = new StudInfo[nos];
    for (maxs = 0; maxs < nos; maxs++) {
        System.out.println("\nWelcome to Student database");
        System.out.print("\n Enter Student [ " + (maxs + 1) + " ] details");
        studInfos[maxs] = new StudInfo();
        studInfos[maxs].getdata();
    }
    for (StudInfo s : studInfos) {
        s.display();
    }
}
import java.util.Scanner;
公共类StudInfo
{
国际注册号;
字符串名称,课程;
国际工程、tam、mat、tot;
双平均值;
//*
void getdata()
{
扫描仪ip=新扫描仪(System.in);
System.out.print(“\n\n输入卷号。\t:\t”);
regno=ip.nextInt();
System.out.print(“\n输入名称\t:\t”);
name=ip.next();
System.out.println();
System.out.print(“输入分数[100分中的英语、泰米尔语和数学分数]:”;
eng=ip.nextInt();
tam=ip.nextInt();
mat=ip.nextInt();
}
//*
无效显示()
{
tot=eng+tam+mat;
平均值=tot/3;
System.out.println(“\n”+”\n卷号。\t:\t“+regno+
“\n Name\t:\t”+Name+
“\n英语\t:\t”+eng+
“\n泰米尔\t:\t”+tam+
“\n数学\t:\t”+mat+
“\n总计\t:\t”+tot+
“\n平均值\t:\t”+平均值);
System.out.print(“Grade\t:\t”);
如果((英语>=50)和&(tam>=50)和&(材料>=50))
{
如果(平均值>=91)系统输出打印(“O”);
如果(平均值>=81)系统输出打印(“A”);
如果(平均值>=71)系统输出打印(“B”);
如果(平均值>=61)系统输出打印(“C”);
如果(平均值>=51)系统输出打印(“D”);
else系统输出打印(“失败”);
}
else系统输出打印(“失败”);
System.out.println();
}
公共静态void main(字符串[]args){
整数最大值,个;
扫描仪ip1=新扫描仪(System.in);
系统输出打印(\输入学生编号:);
nos=ip1.nextInt();
StudInfo[]StudInfo=newstudinfo[nos];
对于(maxs=0;maxs
如果学生的卷号是数组中的值,则可以循环数组数据并检查特定卷号。如果卷号匹配,则打印值。如下所示:

int rollnumber = ip1.nextInt();
for (StudInfo s : studInfos)
    if (s.regno == rollnumber)
        s.display();

(注意:您必须将
StudInfo.regno
公开,或使用公开的getter方法。)

您的代码很难阅读。请发布您的文章并改进缩进。我正要自己回答,但鉴于您先发布,我只是将我的示例粘贴在末尾。