Получение ArrayList, напечатанного другим методом - PullRequest
2 голосов
/ 05 мая 2020

Я очень запутался, потому что как можно получить ArrayList из другого метода и распечатать его другим методом? Итак, моя проблема здесь в том, что мой код касается системы регистрации студентов, в которой есть 2 метода: admin и student, поэтому из метода администратора мы можем добавлять массивы, которые мы хотим, и когда мы распечатываем их в методе администратора, он работает нормально. Но когда я пытаюсь распечатать это в студенческом методе, кажется, что это не работает. Вот код:

import java.util.*;

public class myStudent {

boolean logins = false;
int myId;
String addCourse="No Record";
String NewCourse;
String removeCourse="No Record";
int modifyCourse;
String password = null;
ArrayList test = new ArrayList();

public static void main(String[] args){

    myStudent obj0 = new myStudent();

    obj0.login();

}

void login(){
    myStudent obj1 = new myStudent();
    Scanner myScanner = new Scanner(System.in);

    System.out.println("  **Student Registration**");
    System.out.println("\t--LOGIN--");

    System.out.println("\n1)Login as student \n2)Login as admin \n3)Exit");
    System.out.print(">");
    int optionMenu = myScanner.nextInt();

    if(optionMenu == 1){
        obj1.showMenuStudent();
    }
    else if(optionMenu == 2){
        obj1.showMenuAdmin();
    }
    else if(optionMenu == 3){
        System.out.println("THANK YOU!");
        System.exit(0);
    }
 }

 void showMenuAdmin(){


        if (!logins) {
    //String myPass;
    Scanner myScanner = new Scanner(System.in);

    System.out.println("\n--LOGIN--");       
    try{
    System.out.print("Admin ID : ");
    myId = myScanner.nextInt();
    }
    catch(Exception e){
        System.out.println("INVALID ID!");
        System.exit(0);
    }

    System.out.print("Admin Password : ");
    password = myScanner.next();

        logins = true;
    }


    char option;
    Scanner myScanner = new Scanner(System.in);


    System.out.println("\n--WELCOME--");
    System.out.println("A. Create Course");
    System.out.println("B. Drop Course");
    System.out.println("C. Modify Course");
    System.out.println("D. Display Course");
    System.out.println("E. Logout");

    do
    {
    System.out.print("Enter An Option > ");
    option = myScanner.next().charAt(0);
    System.out.print("\n");


    switch(option){
        case 'A':

            System.out.print("Create Course(Maximum is 6) :");
            addCourse = myScanner.next();
            test.add(addCourse);
            System.out.println("\nCourse Added Successfully!");
            display();

        break;

        case 'B':


            Object[] myArray = test.toArray();

            System.out.println("Current Courses List: ");
            int k=1;
            for(int i=0; i < myArray.length; i++){

            System.out.println(k + ". " + myArray[i]);
            k++;
            }

                System.out.println("Enter course name you want to remove :");
                System.out.println("Enter 'back' to cancel");
                System.out.print(">");
                removeCourse = myScanner.next();
                if(removeCourse!="back"){
                test.remove(removeCourse);
                System.out.println("\nSucceed");
                display();
                }else
                display();

            break;

        case 'C':
            Object[] myArray2 = test.toArray();

            System.out.println("Current Courses List: ");
            int m=1;
            for(int i=0; i < myArray2.length; i++){

            System.out.println(m + ". " + myArray2[i]);
            m++;
            }

            System.out.println("Select course you want to modify :");

            System.out.print(">");
            modifyCourse = myScanner.nextInt();

            try{
            if(modifyCourse==1){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(0, NewCourse);
                System.out.println("Succeed!");
                display();
            }
            else if(modifyCourse==2){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(1, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==3){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(2, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==4){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(3, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==5){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(4, NewCourse);
                System.out.println("Succeed!");
                display();
            }else if(modifyCourse==6){
                System.out.print("Change to :");
                NewCourse=myScanner.next();
                test.set(5, NewCourse);
                System.out.println("Succeed!");
                display();
            }
            else{
                System.out.print("Invalid!");
                display();
            }
            }
            catch(Exception e){
                System.out.print("Invalid, Course not available!");
                display();
            }

            break;


        case 'D':

            Object[] myArray3 = test.toArray();

            System.out.println("Courses List: ");
            int j=1;
            for(int i=0; i < myArray3.length; i++){

            System.out.println(j + ". " + myArray3[i]);
            j++;
            }
            display();
        break;
        }

    }while(option != 'E');

   System.out.println("Logged Out Successfully.Thank You!");
   login();


 }

 void showMenuStudent(){

    if (!logins) {

    Scanner myScanner = new Scanner(System.in);

    System.out.println("\n--LOGIN--");

    try{
    System.out.print("Student ID : ");
    myId = myScanner.nextInt();
    }
    catch(Exception e){
        System.out.println("INVALID ID!");
        System.exit(0);
    }

    System.out.print("Student Password(Default is IC Number) : ");
    password = myScanner.next();

        logins = true;
    }

    Object[] myArray4 = test.toArray();
    int n=1;
    for (Object myArray41 : myArray4) {
        System.out.println(n + ". " + myArray41);
        n++;
    }


 }

 void display(){
    showMenuAdmin();
 }
 }

Я очень надеюсь, что кто-то поймет мою проблему и попытается ее исправить .. Пожалуйста :( и спасибо

Вот результат от начала до результата:

ВЫВОД:

Регистрация студента

- ВХОД -

1) Войти как студент

2 ) Войти как admin

3) Выйти

2

- ВХОД -

Admin ID: 123

Пароль администратора: 321

- ДОБРО ПОЖАЛОВАТЬ -

A. Создать курс

B. Курс падения

C. Изменить курс

D. Показать курс

E. Выход

Введите параметр> A

Создать курс (максимум 6): CS123

Курс успешно добавлен!

- ДОБРО ПОЖАЛОВАТЬ -

А. Создать курс

B. Курс падения

C. Изменить курс

D. Курс дисплея

E. Выйти

Введите параметр> E

Выполнен выход из системы. Спасибо!

Регистрация учащихся

- ВХОД--

1) Войти как студент

2) Войти как admin

3) Выход

1

--ВХОД -

Идентификатор студента: 123

Пароль студента (по умолчанию I C Число): 321

[] Введите параметр>

// в этот момент, я знаю, почему он так запущен, я просто хочу распечатать то, что администратор ввел в массив, но это похоже на метод студента, просто повторно запустите метод администратора снова, даже если я никогда его не вызываю, и он Также показано, что массив пуст. В чем моя ошибка? или мне что-то здесь не хватает? : (

1 Ответ

0 голосов
/ 05 мая 2020

Итак, я запустил ваш код и обнаружил проблему. Вы создаете новый объект myStudent каждые login(), если вы:

  • Удалите строку myStudent obj1 = new myStudent();
  • и замените obj1.showMenuStudent(); на showMenuStudent()
  • И замените obj1.showMenuAdmin(); на showMenuAdmin();

Вы исправите эту проблему и получите желаемый результат. Вот результат, который я получил, надеюсь, он синхронизируется c с тем, что вы хотите получить:

  **Student Registration**
    --LOGIN--

1)Login as student 
2)Login as admin 
3)Exit
>2

--LOGIN--
Admin ID : 1
Admin Password : 1

--WELCOME--
A. Create Course
B. Drop Course
C. Modify Course
D. Display Course
E. Logout
Enter An Option > A

Create Course(Maximum is 6) :CS123

Course Added Successfully!

--WELCOME--
A. Create Course
B. Drop Course
C. Modify Course
D. Display Course
E. Logout
Enter An Option > E

Logged Out Successfully.Thank You!
  **Student Registration**
    --LOGIN--

1)Login as student 
2)Login as admin 
3)Exit
>1
1. CS123
Enter An Option > 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...