0
import java.io.*;
  import java.util.Scanner;
  class StudentDetails
  {
    int regno,no_of_arrears;
    String name;
    float cgpa;
    Scanner in=new Scanner(System.in);
    StudentDetails()
    {
        regno=0;
        no_of_arrears=0;
        name="";
        cgpa=0.0F;
    }   
    void setStudentDetails()
    {
        System.out.print("\nEnter Student regno : ");
        regno=in.nextInt();
        in.nextLine();
        System.out.print("\nEnter Student name : ");
        name=in.nextLine();
        System.out.print("\nEnter Student CGPA : ");
        cgpa=in.nextFloat();
        System.out.print("\nEnter Student no.of.arrears : ");
        no_of_arrears=in.nextInt(); 
    }
    void printStudentDetails()
    {
        System.out.println(regno+"\t"+name+"\t"+cgpa);  
    }
    boolean isPlacementEligible()
    {
        if(cgpa >= 7.5 && no_of_arrears==0)
        {   
            return true;
        }
        else
        {
            return false;
        }
    }

  }
  class Student
  { 
    public static void main(String args[])
    {
        int n=0,i,count=0,ch;
        Scanner in=new Scanner(System.in);
        System.out.println("\t\t\tSTUDENT LIST");
        System.out.println("\t\t\t------------");
        System.out.println("1.Set Student Details\n2.Print all Students\n3.Print   Placement Eligible Student\n4.Exit");    
        do{
            System.out.print("\nEnter the choice : ");
            ch=in.nextInt();
            StudentDetails s1=new StudentDetails();
            StudentDetails s[]={s1};
            switch(ch){
                case 1:
                    System.out.print("\nEnter no of students : ");
                    n=in.nextInt();
                    s=new StudentDetails[n];
                    for(i=0;i<n;i++)
                    {   
                        s[i]=new StudentDetails();
                        System.out.print("\nEnter Details Of Student "+(i+1));
                        System.out.println("\n--------------------------");
                        s[i].setStudentDetails();
                        if(s[i].isPlacementEligible())
                        {
                            count++;
                        }
                    }

                    break;
                case 2:
                    System.out.println(n);
                    System.out.println("\nDetails of All Students ");
                    System.out.println("\n------------------------");
                    System.out.println("Total no of students : "+n);
                    System.out.println("Regno\tName\tCGPA");
                    System.out.println("-----\t----\t----");
                    for(i=0;i<n;i++)
                    {
                        s[i].printStudentDetails();

                    }   
                    break;
                case 3:
                    System.out.println("\nDetails of Eligible Students ");
                    System.out.println("\n-----------------------------");
                    System.out.println("Eligible for placements : "+count);
                    System.out.println("Regno\tName\tCGPA");
                    System.out.println("-----\t----\t----");
                    for(i=0;i<n;i++)
                    {
                        if(s[i].isPlacementEligible())
                        {
                            s[i].printStudentDetails();
                        }
                    }
                    break;
                case 4:
                    System.exit(0);
                default:
                    System.out.println("Enter correct choice ");
            }   
        }while(ch!=4);
    }   
}

出力 : STUDENT LIST ------------ 1.生徒の詳細を設定 2.すべての生徒を印刷 3.配置対象の生徒を印刷 4.終了

選択肢を入力してください: 1

生徒数を入力してください : 1

学生1の詳細を入力してください

生徒の名前を入力してください: 1

生徒名を入力してください: sjnsj

学生 CGPA を入力してください: 9.8

学生の延滞回数を入力してください: 0

選択肢を入力してください: 2 1

全学生の詳細


総学生数 : 1

Regno Name CGPA ----- ---- ---- 0 0.0

選択肢を入力してください: 4

ここでは、ケース 1 でオブジェクトの配列を作成しましたが、ケース 2 では読み取ることができませんでした

4

2 に答える 2

0

do-while ループ内で配列を宣言するため、ループの反復ごとに範囲外になります。

のループの前の反復でインスタンス化した場合でも、ループcase1の 1 回おきの反復で完全に異なる配列にアクセスすることになります。

各反復で同じ配列を使用する場合は、ループの外で宣言します

StudentDetails s1=new StudentDetails();
StudentDetails s[]={s1};
do
{
    ...
}
于 2013-10-01T16:14:57.993 に答える