簡體   English   中英

如何顯示另一個類的輸入(java)

[英]how to display the input from another class(java)

我正在開發有關創建學生記錄系統的硬件,但我不知道為什么我的代碼無法顯示所有輸入。 你們能給我一些解決這個問題的建議嗎? 我的預期輸出是:0:名字,姓氏,身份證,學生編號,分數

這是我的代碼:

import java.util.Scanner;`
    public class semifinal{
        static String[][] records = new String[50][50];
        static int num = 0;
        public static void main(String args[]){
            Scanner kb = new Scanner(System.in);
            System.out.println("Welcome to the Student record management system!");
            System.out.println();
            int i, n = 0;
            while(true){
                System.out.println("enter 'input' for inputting student's records"); 
                System.out.println("enter 'update' for updating the student's records"); 
                System.out.println("enter 'search' for searching the student's records"); 
                System.out.println("enter 'display' for displaying all students according to the final exam scores.");
            String word = kb.nextLine();
            if(word.equals("input")){
                System.out.println("Input student["+num+"]:");
                System.out.println("input <first name> ");
                String firstname = kb.nextLine();
                System.out.println("input <last name> ");
                String lastname = kb.nextLine();
                System.out.println("input <ID> ");
                String id = kb.nextLine();
                System.out.println("input <Student Number>");
                String num = kb.nextLine();
                insert(firstname, lastname, id, num);
            }else if(word.equals("update")){
                System.out.println("Enter the student number to update the student records"); 
                String num = kb.nextLine(); 
                System.out.println("Update the final exam score:"); 
                String score = kb.nextLine(); 
                update(num, score);
            }else if(word.equals("search")){
                System.out.println("Enter the student number to search the student records");
                String number = kb.nextLine();
                String[] input = search(number);
                System.out.println();
                System.out.println(input[0]+" "+input[1]+" "+input[2]+" "+input[3]+" "+input[4]+" ");           

            }else if(word.equals("display")){ 
                Display();

            }else{
                System.out.println();
                System.out.println("Please enter a valid input again!");

            }
        }
    }
    public static void insert(String firstname, String lastname, String id, String num){
        for(int i = 0; i<records.length; i++){
        records[i][0] = firstname;
        records[i][1] = lastname;
        records[i][2] = id;
        records[i][3] = num;
        i++;
    }
    }
    public static void update(String num, String score){
        for(int i = 0; i<records.length; i++){
        records[i][4] = score;
        String[] update = search(num);
        update[4] = score;
        }
    }
    public static String[] search(String number){
        for(int i = 0; i<records.length; i++){
            if(number.equals(records[i][3])){
                 return records[i];
                 }
            }
            return null;
        }

   public static void Display(){
                sort();
                for(int i = 0; i<num; i++){
                    System.out.println(num+" "+records[i][0]

+" "+records[i][1]+" "+records[i][2]+" "+records[i][3]+" "+records[i][4]);
            }
        }

        public static void sort(){
            int[] sort = new int[num];
            for(int i = 0; i<num; i++){
                sort[i] = Integer.parseInt(records[i][4]);
            }
            for(int i = 0; i<num-1; i++){
                for(int j = i+1; j<num; j++){
                    if(sort[j]<sort[i]){
                        int temp = sort[j];
                        String[] x = records[j];
                        records[j] = records[i];
                        records[i] = x;
                        sort[j] = sort[i];
                        sort[i] = temp;
                    }
                }
            }
        }

我的代碼有什么問題嗎? 我不知道如何解決它。

您正在隱藏num變量

您已將其設置為字段

int num = 0;

但是在您的代碼中,您也有

String num = kb.nextLine(); 

可能應該用

num = Integer.valueof(kb.nextLine());

該代碼存在許多邏輯錯誤。 我在評論中強調了其中一些。 我已經修復了部分問題,您可以繼續工作。

public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        System.out.println("Welcome to the Student record management system!");
        System.out.println();
        int i, n = 0;
        while(true){
            System.out.println("enter 'input' for inputting student's records");
            System.out.println("enter 'update' for updating the student's records");
            System.out.println("enter 'search' for searching the student's records");
            System.out.println("enter 'display' for displaying all students according to the final exam scores.");
            String word = kb.nextLine();
            if(word.equals("input")){
                System.out.println("Input student["+ ++num +"]:");
                System.out.println("input <first name> ");
                String firstname = kb.nextLine();
                System.out.println("input <last name> ");
                String lastname = kb.nextLine();
                System.out.println("input <ID> ");
                String id = kb.nextLine();
                System.out.println("input <Student Number>");
                String studNum = kb.nextLine();
                insert(firstname, lastname, id, studNum);
            }else if(word.equals("update")){
                System.out.println("Enter the student number to update the student records");
                String num = kb.nextLine();
                System.out.println("Update the final exam score:");
                String score = kb.nextLine();
                update(num, score);
            }else if(word.equals("search")){
                System.out.println("Enter the student number to search the student records");
                String number = kb.nextLine();
                String[] input = search(number);
                System.out.println();
                System.out.println(input[0]+" "+input[1]+" "+input[2]+" "+input[3]+" "+input[4]+" ");

            }else if(word.equals("display")){
                Display();

            }else{
                System.out.println();
                System.out.println("Please enter a valid input again!");

            }
        }
    }

插入時無需循環。

public static void insert(String firstname, String lastname, String id, String studNum){
        int index = num -1;
        records[index][0] = firstname;
        records[index][1] = lastname;
        records[index][2] = id;
        records[index][3] = studNum;
    }

無需在顯示中打印索引4(注釋排序,因為沒有時間修復該索引)。

public static void Display(){
        //sort();
        for(int i = 0; i<num; i++){
            System.out.println(num+" "+records[i][0]

                    +" "+records[i][1]+" "+records[i][2]+" "+records[i][3]);
        }
    }

現在它將至少打印記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM