インスタンス配列を使用して、集計表示を行う コンストラクタ

インスタンス配列を使用して、集計表示を行う コンストラクタ

練習問題11の1

学生に関するクラス「Student]を下記のメンバーで作成し、これを用いて、下図のような、英語の点数の集計や、表示を行うプログラムを作成する。

 

プログラムの中で、インスタンスの配列を使用する。
public String name→学生の名前
private int english →学生の英語の点数(0?100)
public Student(Sting n, int e)→コンストラクタ
public int getEnglish() →英語の点数を取り出すメソッド
public void displayEnglish()→名前と英語の点数を画面に表示するメソッド

 

実行画面

集計する人数を入力>【enterキー】

 

1人目のデータを入力してください。
名前>takada【enterキー】
英語の点数>100【enterキー】

 

2人目のデータを入力してください。
名前>saitou【enterキー】
英語の点数>15【enterキー】

 

3人目のデータを入力してください。
名前>sonoda【enterキー】
英語の点数>12【enterキー】

 

4人目のデータを入力してください。
名前>endou【enterキー】
英語の点数>3【enterキー】

 

英語の点数の合計は130点です。

 

何人目の情報を表示しますか(0:終了)>1【enterキー】
takadaさんの英語の点数は100点です。

 

何人目の情報を表示しますか(0:終了)>

解答例

class Student

{
public String name;
private int english;
public Student(String n, int e)
{
name = n;
english = e;
if(e < 0){
e = 0;
}
if(e > 100){
e = 100;
}
}
public int getEnglish()
{

return english;
}
public void displayEnglish()
{
System.out.println(name + " さんの英語の点数は " + english + " です。");
}
}

import java.io.*;

 

public class ren11_1
{
public static void main(String[] args) throws IOException
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

 

//集計人数の入力
System.out.print("集計する人数を入力 > ");
int n = Integer.parseInt( br.readLine() );

 

//インスタンスの配列(参照型変数の配列)を宣言
Student student[] = new Student[n];

 

//各データの入力と、インスタンスの生成
for(int i=0; i

 

System.out.println( (i+1) + "人目のデータを入力して下さい。");
System.out.print("名前 > ");
String s = br.readLine();
System.out.print("英語の点数 > ");
int e = Integer.parseInt( br.readLine() );

 

student[i] = new Student( s, e ); //インスタンスを生成

 

System.out.println();
}

 

//合計点を計算して表示
int total = 0;
for(int i=0; itotal += student[i].getEnglish();
}

 

System.out.println("英語の点数の合計は " + total + " 点です。");
System.out.println();

 

//指定された番号の学生の点数を表示
System.out.print("何人目の情報を表示しますか(0:終了) > ");
int number = Integer.parseInt( br.readLine() );
while( number != 0 ){

 

if( 1 <= number && number <= n ){
student[number-1].displayEnglish();
}
else{
System.out.println("該当する学生はいません");
}

 

System.out.println();

 

System.out.print("何人目の情報を表示しますか(0:終了) > ");
number = Integer.parseInt( br.readLine() );
}

 

System.out.println("終了します");
}

 

}

 

インスタンス配列を使用して、集計表示を行う コンストラクタ関連ページ

連続して表示するメソッドを作る for文使用
メソッドを使用して、横幅高さの長方形を表示する
2つの整数の差を計算して表示する メソッド
3つの整数の最小値を返す メソッド
整数nの階乗を計算して表示する メソッド
整数の2乗を表示する メソッド
2乗と4乗を表示するメソッド
4つの整数の中で最小値を表示するメソッド
配列を宣言し、整数逆順に表示する メソッド
クラスを作成し、インスタンスに記憶し表示する
クラスにメソッドを使用する
クラスを作成し、インスタンスに記憶しメソッドを介して表示する
クラスを作成し、メインメソッドを実行し表示を確認する
コンストラクタやメソッドで時計表示
コンストラクタやメソッドで時計表示し何秒か時間を進めたり戻す
メンバ変数、コンストラクタ、メンバメソッドを使用し枚数表示する
メンバ変数、コンストラクタ、メンバメソッドを使用し水量表示する
メンバ変数、コンストラクタ、メンバメソッドを使用し位置表示する
メンバ変数、コンストラクタ、メンバメソッドを使用し財布の中身残量表示する
フィールド変数がprivateで直接参照できないときに返すメソッド
インスタンスを2個生成し操作する
privateを使用して、操作する
インスタンスを複数生成し、操作する