From e5c1e24fa0f3d1dfc15a1552e135e78db2e5e0d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=96=A2=20=E5=A4=A7=E8=BC=9D?= Date: Fri, 30 Jun 2023 13:49:50 +0900 Subject: [PATCH 1/4] =?UTF-8?q?paiza=20C056=20=E3=81=AE=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dseki/paiza/src/C056.java | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 dseki/paiza/src/C056.java diff --git a/dseki/paiza/src/C056.java b/dseki/paiza/src/C056.java new file mode 100644 index 0000000..425c763 --- /dev/null +++ b/dseki/paiza/src/C056.java @@ -0,0 +1,45 @@ +import java.util.ArrayList; +import java.util.Scanner; + +/** + * テストの採点. + */ +public class C056 { + private final int students; // 生徒の数 + private final int passingGrade; // 合格点 + private final int pointDeductionForAbsence = 5; + + private C056(final int students, final int passingGrade) { + this.students = students; + this.passingGrade = passingGrade; + } + + /** + * メインメソッド. + */ + public static void main(final String[] args) { + final Scanner sc = new Scanner(System.in); + new C056(sc.nextInt(), sc.nextInt()).OutputStudentNoPassingScore(sc); + } + + // 合格点以上の成績の学生番号を出力するメソッド + private void OutputStudentNoPassingScore(final Scanner sc) { + final ArrayList successfulCandidateList = new ArrayList(); // 合格者を格納するリスト + // 生徒の数だけ繰り返す + for (int i = 1; i <= this.students; i++) { + int grade = sc.nextInt() - (sc.nextInt() * pointDeductionForAbsence); // テストの点数と欠席回数から成績を導き出す + // 成績が0未満ならば成績を0にする + if (grade < 0) { + grade = 0; + } + // 合格点以上ならばリストに追加する + if (grade >= this.passingGrade) { + successfulCandidateList.add(i); + } + } + + for (int studentNo : successfulCandidateList) { + System.out.println(studentNo); + } + } +} \ No newline at end of file -- GitLab From 5ff701f0f0bff6ca802b9a8a048e825dae49eac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=96=A2=20=E5=A4=A7=E8=BC=9D?= Date: Fri, 30 Jun 2023 13:52:34 +0900 Subject: [PATCH 2/4] =?UTF-8?q?paiza=20C056=20=E3=81=AE=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dseki/paiza/src/C056.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dseki/paiza/src/C056.java b/dseki/paiza/src/C056.java index 425c763..c3e1c48 100644 --- a/dseki/paiza/src/C056.java +++ b/dseki/paiza/src/C056.java @@ -7,7 +7,7 @@ import java.util.Scanner; public class C056 { private final int students; // 生徒の数 private final int passingGrade; // 合格点 - private final int pointDeductionForAbsence = 5; + private final int pointDeductionForAbsence = 5; // 1回の欠席につき減点する点数 private C056(final int students, final int passingGrade) { this.students = students; @@ -19,11 +19,11 @@ public class C056 { */ public static void main(final String[] args) { final Scanner sc = new Scanner(System.in); - new C056(sc.nextInt(), sc.nextInt()).OutputStudentNoPassingScore(sc); + new C056(sc.nextInt(), sc.nextInt()).outputStudentNoPassingScore(sc); } // 合格点以上の成績の学生番号を出力するメソッド - private void OutputStudentNoPassingScore(final Scanner sc) { + private void outputStudentNoPassingScore(final Scanner sc) { final ArrayList successfulCandidateList = new ArrayList(); // 合格者を格納するリスト // 生徒の数だけ繰り返す for (int i = 1; i <= this.students; i++) { -- GitLab From 67a93499cdc050dcf7048e85c75c965c649de07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=96=A2=20=E5=A4=A7=E8=BC=9D?= Date: Fri, 30 Jun 2023 16:24:18 +0900 Subject: [PATCH 3/4] =?UTF-8?q?paiza=20C056=20=E3=81=AE=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dseki/paiza/src/C056.java | 44 ++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/dseki/paiza/src/C056.java b/dseki/paiza/src/C056.java index c3e1c48..cfc7d05 100644 --- a/dseki/paiza/src/C056.java +++ b/dseki/paiza/src/C056.java @@ -1,4 +1,6 @@ import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import java.util.Scanner; /** @@ -7,7 +9,7 @@ import java.util.Scanner; public class C056 { private final int students; // 生徒の数 private final int passingGrade; // 合格点 - private final int pointDeductionForAbsence = 5; // 1回の欠席につき減点する点数 + private final int POINT_DEDUCTION_FOR_ABSENCE = 5; // 1回の欠席につき減点する点数 private C056(final int students, final int passingGrade) { this.students = students; @@ -20,26 +22,44 @@ public class C056 { public static void main(final String[] args) { final Scanner sc = new Scanner(System.in); new C056(sc.nextInt(), sc.nextInt()).outputStudentNoPassingScore(sc); + sc.close(); } - // 合格点以上の成績の学生番号を出力するメソッド + // 合格点以上の成績の学籍番号を返すメソッド private void outputStudentNoPassingScore(final Scanner sc) { + for (final int outputStudentNo : studentNumberPassingScore(sc)) { + System.out.println(outputStudentNo); + } + } + + // 合格点以上の成績の学生番号リストを作るメソッド + private ArrayList studentNumberPassingScore(final Scanner sc) { final ArrayList successfulCandidateList = new ArrayList(); // 合格者を格納するリスト + final Map listOfStudentGrades = listOfStudentGrades(sc); // メソッドを呼び出して格納 // 生徒の数だけ繰り返す for (int i = 1; i <= this.students; i++) { - int grade = sc.nextInt() - (sc.nextInt() * pointDeductionForAbsence); // テストの点数と欠席回数から成績を導き出す - // 成績が0未満ならば成績を0にする - if (grade < 0) { - grade = 0; - } - // 合格点以上ならばリストに追加する - if (grade >= this.passingGrade) { + if (listOfStudentGrades.get(i) >= passingGrade) { successfulCandidateList.add(i); } } - - for (int studentNo : successfulCandidateList) { - System.out.println(studentNo); + return successfulCandidateList; + } + + // 生徒の学籍番号と成績をマップに格納するメソッド + private Map listOfStudentGrades(final Scanner sc) { + final Map studentGradesList = new HashMap<>(); + for (int i = 1; i <= this.students; i++) { + studentGradesList.put(i, calculateGrade(sc)); + } + return studentGradesList; + } + + // 生徒の成績を計算するメソッド + private int calculateGrade(final Scanner sc) { + int grade = sc.nextInt() - (sc.nextInt() * POINT_DEDUCTION_FOR_ABSENCE); + if (grade < 0) { + grade = 0; } + return grade; } } \ No newline at end of file -- GitLab From 89369f469ef6e2c13c1c022ab0d740c1dd754bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=96=A2=20=E5=A4=A7=E8=BC=9D?= Date: Fri, 30 Jun 2023 16:40:52 +0900 Subject: [PATCH 4/4] =?UTF-8?q?paiza=20C056=20=E3=81=AE=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dseki/paiza/src/C056.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dseki/paiza/src/C056.java b/dseki/paiza/src/C056.java index cfc7d05..6e13802 100644 --- a/dseki/paiza/src/C056.java +++ b/dseki/paiza/src/C056.java @@ -35,10 +35,10 @@ public class C056 { // 合格点以上の成績の学生番号リストを作るメソッド private ArrayList studentNumberPassingScore(final Scanner sc) { final ArrayList successfulCandidateList = new ArrayList(); // 合格者を格納するリスト - final Map listOfStudentGrades = listOfStudentGrades(sc); // メソッドを呼び出して格納 + final Map mapOfStudentGrades = mapOfStudentGrades(sc); // メソッドを呼び出して格納 // 生徒の数だけ繰り返す for (int i = 1; i <= this.students; i++) { - if (listOfStudentGrades.get(i) >= passingGrade) { + if (mapOfStudentGrades.get(i) >= passingGrade) { successfulCandidateList.add(i); } } @@ -46,12 +46,12 @@ public class C056 { } // 生徒の学籍番号と成績をマップに格納するメソッド - private Map listOfStudentGrades(final Scanner sc) { - final Map studentGradesList = new HashMap<>(); + private Map mapOfStudentGrades(final Scanner sc) { + final Map studentGradesMap = new HashMap<>(); for (int i = 1; i <= this.students; i++) { - studentGradesList.put(i, calculateGrade(sc)); + studentGradesMap.put(i, calculateGrade(sc)); } - return studentGradesList; + return studentGradesMap; } // 生徒の成績を計算するメソッド -- GitLab