オブジェクト指向(ArrayList)

Java

お題

一般クラスPlayerとアプリケーションクラスScoresAppを作成し、以下の処理を実現する。

実行例

名前と点数をフィールドに持つPlayerクラスのインスンスを指定数作成し、点数を降順にランキング形式で表示する。

何人分のデータを作成しますか>>20
 1. 近藤 98602
 2. 吉田 92054
 3. 坂本 90427
 4. 渡辺 84105
 5. 原田 82304
 6. 阿部 82094
 7. 西村 75986
 8. 松本 67455
 9. 青木 56864
10. 藤原 52695
11. 阿部 49036
12. 井上 40316
13. 田中 35936
14. 福田 35900
15. 小川 35663
16. 遠藤 31132
17. 橋本 27773
18. 青木 21280
19. 遠藤 11334
20. 池田 3458

仕様

◯名前は以下の配列からランダムに取り出すものとする。

		final String[] NAMES = {
           "佐藤", "鈴木", "高橋", "田中", "渡辺", "伊藤", "山本", "中村", "小林", "加藤",
           "吉田", "山田", "山口", "松本", "井上", "木村", "斎藤", "清水", "山崎", "池田",
           "橋本", "阿部", "石川", "山下", "中島", "小川", "前田", "岡田", "藤田", "後藤",
           "石井", "村上", "近藤", "遠藤", "青木", "坂本", "斉藤", "福田", "太田", "西村",
           "藤井", "三浦", "藤原", "岡本", "松田", "中川", "原田", "田村", "金子", "和田",
		};

◯点数は0~99999点のランダムとする

手順

◯新規ファイルScoresApp.javaを作成する。内容は以下

import java.util.*;
public class ScoresApp {
	public static void main(String[] args) {
		

	}
}

◯ScoresAppクラスの下にPlayerクラスを作成する。記述は以下

import java.util.*;
public class ScoresApp {
	public static void main(String[] args) {
		
	}
}
class Player{
	
}

以下はPlayerクラスに記述していくこと

◯フィールド変数
プレイヤーの名前 String name;
プレイヤーの点数 int score;

◯コンストラクタ
引数2つのコンストラクタ を実装し、nameとscoreを初期化する

◯メソッド(メソッドの挙動は実行例を参考にすること)
String info() {}
実行例にあるように、フィールドの値を以下のような文字列にして返すメソッドを作成する。この際にString.formatを使うこと
近藤 98602

アプリケーションクラスの作成

下準備

以下のように名前配列を設置し、ランダムインスタンスとスキャナーインスタンスを作成する。

import java.util.*;
public class ScoresApp{
	public static void main(String[] args){
		final String[] NAMES = {
            "佐藤", "鈴木", "高橋", "田中", "渡辺", "伊藤", "山本", "中村", "小林", "加藤",
            "吉田", "山田", "山口", "松本", "井上", "木村", "斎藤", "清水", "山崎", "池田",
            "橋本", "阿部", "石川", "山下", "中島", "小川", "前田", "岡田", "藤田", "後藤",
            "石井", "村上", "近藤", "遠藤", "青木", "坂本", "斉藤", "福田", "太田", "西村",
            "藤井", "三浦", "藤原", "岡本", "松田", "中川", "原田", "田村", "金子", "和田",
		};
		Random rand = new Random();
		Scanner sc = new Scanner(System.in);
		//①

		//②

		//③

	}
}

① 名前をランダムに一人表示してみよう

まずは名前配列の中から1人を選びその名前を表示する処理を作成する。

[実行例]

田中

② 0~99999の点数をランダムに一つ作成し、表示してみよう

[実行例]

田中
45279

③ 1,2で作成した名前と点数でPlayerクラスのインスタンスを作成し(変数名p1) そのインスタンスの情報を表示してみよう

[実行例]

田中
45279
田中 45279

ここまでできたら①~③をすべて消すか、コメントアウトする

import java.util.*;
public class ScoresApp{
	public static void main(String[] args){
		final String[] NAMES = {
            "佐藤", "鈴木", "高橋", "田中", "渡辺", "伊藤", "山本", "中村", "小林", "加藤",
            "吉田", "山田", "山口", "松本", "井上", "木村", "斎藤", "清水", "山崎", "池田",
            "橋本", "阿部", "石川", "山下", "中島", "小川", "前田", "岡田", "藤田", "後藤",
            "石井", "村上", "近藤", "遠藤", "青木", "坂本", "斉藤", "福田", "太田", "西村",
            "藤井", "三浦", "藤原", "岡本", "松田", "中川", "原田", "田村", "金子", "和田",
		};
		Random rand = new Random();
		Scanner sc = new Scanner(System.in);
		//④
		//⑤

		//⑥
		for(){
				  //⑦
				  //⑧
				  //⑨
				  //⑩  
		}
		//⑪
		//⑫
		for(){
				  //⑬
		}
	}
}

④ Playerクラスのインスタンスを格納するArrayListを作成せよ(変数名 list)

⑤ 実行例のように人数をたずね、キーボードからの入力を変数nに代入する

⑥ n回回るforループを作成する

⑦ 名前をランダムに作成する(変数名 name)

⑧ 点数をランダムに作成する(変数名 score)

⑨ Playerインスタンスを作成する(変数名 p)

⑩ listにPlayerインスタンス pを追加する

⑪ listを点数降順にsortする

⑫ リストの要素数の数だけ回るforループを作成する

⑬ 実行例のようになるようにランキングを出力する

Java
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

タイトルとURLをコピーしました