二週間ほど前からJavaの勉強をしている者です。
現在、課題でEclipseを使って学生情報を管理(新規登録、検索、更新、削除)するCUIプログラムを作っているのですが、「新規登録で入力した情報を処理の終了まで保持し、かつ更に新たな学生情報を入力、追加する」プログラムがうまく書けなくて困っています。
要素の追加、更新、削除をする場合は配列ではなくArrayListを使うとのことで書いてはみたものの、リストに追加するべき情報が追加ではなく新規登録の度に置換されてしまいます。
仕様
1.メインメニューから各メニューの処理に飛べるようにする。
(今のところ以下のソースコード内のswitch文で実行できています)
2.新規登録ではキーボードから一人あたりID、名前、生年月日、住所の情報を入力してpsリストに格納、さらにそれをpersonリストに格納する。
(多次元配列をリストでやる感じです)
3.登録した情報はメモリに格納せよとのことなので、閉じるで処理を明示的に終了するまでは各メニューの処理後は終了させずにメインメニューにもどる。
(メモリ格納の場合、終了すると登録情報は破棄されると聞きました)
書き慣れていない為見づらいソースコードで恐縮ですが、なにとぞアドバイスの方お願い致します。
ソースコード
Java
1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.util.ArrayList; 5import java.util.Scanner; 6 7class Task1 8{ 9 public static void main(String[] args) throws IOException 10 { 11 System.out.println("----------------------------------------------------"); 12 System.out.println("メインメニュー"); 13 System.out.println("1.学生情報新規登録 (*)"); 14 System.out.println("2.学生情報検索 (*)"); 15 System.out.println("3.学生情報削除"); 16 System.out.println("4.学生情報更新"); 17 System.out.println("5.閉じる (*)"); 18 System.out.println("----------------------------------------------------"); 19 20 BufferedReader br = 21 new BufferedReader(new InputStreamReader(System.in)); 22 23 System.out.println("番号を選択してください。"); 24 String str = br.readLine(); 25 int res = Integer.parseInt(str); 26 27 switch(res) { 28 case 1:;Input.input(); 29 main(args); 30 break; 31 case 2:main(args); 32 break; 33 case 3:main(args); 34 break; 35 case 4:main(args); 36 break; 37 case 5: 38 System.out.println("終了します。"); 39 System.exit(0); 40 break; 41 } 42 } 43} 44 45//リストの作成 46class SL{ 47 ArrayList list; 48 49 public static void create() throws IOException { 50 51 // 2次元配列の宣言 52 ArrayList<ArrayList<String>> person = new ArrayList<ArrayList<String>>(); 53 54 String aa = "a"; 55 56 Scanner sc = new Scanner(System.in); 57 System.out.println(""); 58 59 for(int i = 0; i < 1; i++) { 60 ArrayList<String> ps = new ArrayList<>(); 61 for(int j = 0; j < 1; j++) { 62 System.out.print("ID:"); 63 aa = sc.next(); 64 ps.add(aa); 65 System.out.print("名前:"); 66 aa = sc.next(); 67 ps.add(aa); 68 System.out.print("生年月日:"); 69 aa = sc.next(); 70 ps.add(aa); 71 System.out.print("住所:"); 72 aa = sc.next(); 73 ps.add(aa); 74 } 75 person.add(ps); 76 } 77 78 System.out.println(person); 79 } 80 public ArrayList getlist() { 81 82 return list; 83 } 84} 85 86//登録 87class Input{ 88 89 static void input() throws IOException { 90 91 //学生情報 92 System.out.println("\n学生情報の登録をします。"); 93 SL a = new SL(); 94 95 SL.create(); 96 97 a.getlist(); 98 ArrayList listX = a.getlist(); 99 100 System.out.println("\n\n" + listX); 101 System.out.println("\n登録しました。\n"); 102 103 } 104} 105 106/*//検索 107class Search{ 108 static void search() throws IOException { 109 110 SL a = new SL(); 111 a.getlist(); 112 List listX = a.getlist(); 113 114 } 115} 116 117//削除 118class Delete{ 119 120} 121 122//更新 123class Updata{ 124 125}*/
補足情報(FW/ツールのバージョンなど)
開発環境:Eclipse 4.7 Oxygen 3a(32bit版 Full Edition)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/15 01:17