挑戦問題を格納しました
This commit is contained in:
1
CUI_オブジェクト指向復習問題/Question1/.gitignore
vendored
Normal file
1
CUI_オブジェクト指向復習問題/Question1/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/bin/
|
||||
11
CUI_オブジェクト指向復習問題/Question1/README.md
Normal file
11
CUI_オブジェクト指向復習問題/Question1/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# オブジェクト指向総合復習問題 Question1
|
||||
完成したプログラムを確認しコメントを追加してください。
|
||||
追加するコメントは以下とします。
|
||||
|
||||
- クラス自体へのコメント
|
||||
Induction.javaを参考にして書いてみてください
|
||||
|
||||
- メソッド自体へのコメント
|
||||
Induction.javaを参考にして書いてみてください
|
||||
|
||||
- 1行1行処理のコメント
|
||||
9
CUI_オブジェクト指向復習問題/Question1/file/DBCurriculum.csv
Normal file
9
CUI_オブジェクト指向復習問題/Question1/file/DBCurriculum.csv
Normal file
@@ -0,0 +1,9 @@
|
||||
05/26 10:00,DB概要・環境構築
|
||||
05/26 13:30,パラメータ設定、SQL基礎
|
||||
05/27 10:00,SQL応用(結合・サブクエリ)
|
||||
05/27 13:30,SQL応用(グルーピング・集約関数)
|
||||
05/31 10:00,トランザクション、ロック
|
||||
05/31 13:30,インデックス、ストアドプロシージャ、JDBC
|
||||
06/01 10:00,SQLインジェクション対策
|
||||
06/01 13:30,DAO/DTO
|
||||
06/02 10:00,DAO/DTOを用いたCRUD構築演習
|
||||
|
23
CUI_オブジェクト指向復習問題/Question1/file/JavaCurriculum.csv
Normal file
23
CUI_オブジェクト指向復習問題/Question1/file/JavaCurriculum.csv
Normal file
@@ -0,0 +1,23 @@
|
||||
04/21 10:00,Javaを始めよう
|
||||
04/21 13:30,プログラムの書き方
|
||||
04/22 10:00,アルゴリズム
|
||||
04/22 13:30,式と演算子
|
||||
04/25 10:00,制御構文(if文、while文)
|
||||
04/26 13:30,制御構文(switch、do~while、for文)
|
||||
05/02 10:00,配列
|
||||
05/02 13:30,メソッド
|
||||
05/06 10:00,複数クラスを用いた開発
|
||||
05/11 10:00,Java基本文法総合演習
|
||||
05/12 10:00,オブジェクト指向概要
|
||||
05/12 13:30,インスタンスとクラス
|
||||
05/13 10:00,様々なクラス機構
|
||||
05/13 13:30,カプセル化
|
||||
05/19 10:00,継承
|
||||
05/19 13:30,抽象クラス、インタフェース
|
||||
05/20 10:00,多態性
|
||||
05/20 13:30,Java標準ライブラリ
|
||||
05/23 10:00,アノテーション
|
||||
05/23 13:30,例外
|
||||
05/24 10:00,コレクション
|
||||
05/24 13:30,Java総合テスト
|
||||
05/25 10:00,オブジェクト指向プログラミング総合演習
|
||||
|
@@ -0,0 +1,86 @@
|
||||
package com.rhizome.beans.course;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.List;
|
||||
|
||||
import com.rhizome.beans.curriculum.Curriculum;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public abstract class Course {
|
||||
// コース名
|
||||
protected String courseName;
|
||||
// カリキュラムリスト
|
||||
protected List<Curriculum> curriculumList;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
protected Course() throws FileNotFoundException {
|
||||
this.courseName = getCourseName();
|
||||
// TODO
|
||||
createInductionCurriculums();
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
public void printAllCurriculumName() {
|
||||
for (int i = 0; i < this.curriculumList.size(); i++) {
|
||||
Curriculum curriculum = curriculumList.get(i);
|
||||
|
||||
// TODO
|
||||
System.out.println(curriculum.getCurriculumName());
|
||||
|
||||
// TODO
|
||||
curriculum.printAllUnitName();
|
||||
|
||||
System.out.println("■■■■■■■■■■■■■■■■■■■■■■■■■■");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @return TODO
|
||||
*/
|
||||
public abstract String getCourseName();
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param dateTime TODO
|
||||
* @return TODO
|
||||
*/
|
||||
public String getUnitNameByDateTime(String dateTime) {
|
||||
String unitName = null;
|
||||
|
||||
// TODO
|
||||
for (int i = 0; i < curriculumList.size(); i++) {
|
||||
Curriculum curriculum = curriculumList.get(i);
|
||||
// TODO
|
||||
unitName = curriculum.getUnitName(dateTime);
|
||||
|
||||
// TODO
|
||||
if (unitName != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return unitName;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
protected abstract void createInductionCurriculums() throws FileNotFoundException;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.rhizome.beans.course;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.rhizome.beans.curriculum.Curriculum;
|
||||
import com.rhizome.beans.curriculum.DBCurriculum;
|
||||
import com.rhizome.beans.curriculum.JavaCurriculum;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public class JavaCourse extends Course {
|
||||
// コース名
|
||||
private final static String COURCE_NAME = "Javaコース";
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
public JavaCourse() throws FileNotFoundException {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCourseName() {
|
||||
return COURCE_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
protected void createInductionCurriculums() throws FileNotFoundException {
|
||||
// TODO
|
||||
JavaCurriculum javaCurriculum = new JavaCurriculum();
|
||||
// TODO
|
||||
DBCurriculum dbCurriculum = new DBCurriculum();
|
||||
|
||||
// TODO
|
||||
super.curriculumList = new ArrayList<Curriculum>();
|
||||
super.curriculumList.add(javaCurriculum);
|
||||
super.curriculumList.add(dbCurriculum);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.rhizome.beans.curriculum;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public abstract class Curriculum {
|
||||
// カリキュラムがあるフォルダのパス
|
||||
private final static String CURRICULUM_FOLDER_PATH = "file/";
|
||||
|
||||
// カリキュラム対象ファイル
|
||||
private File targetFile;
|
||||
|
||||
// カリキュラムのマップ <実施日時(String), 単元名(String)>で保持
|
||||
private Map<String, String> curriculumMap = new LinkedHashMap<String, String>();
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param fileName TODO
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
protected Curriculum(String fileName) throws FileNotFoundException {
|
||||
this.targetFile = new File(CURRICULUM_FOLDER_PATH + fileName + ".csv");
|
||||
|
||||
// TODO
|
||||
createCurriculumMap();
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO key:日付 value:単元名
|
||||
*
|
||||
* @return TODO
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
private void createCurriculumMap() throws FileNotFoundException {
|
||||
Scanner scanner = null;
|
||||
try {
|
||||
// ファイルを読み込む
|
||||
scanner = new Scanner(this.targetFile, "UTF-8");
|
||||
// ファイルの内容を1行1行読み込み、リストに加える
|
||||
while (scanner.hasNext()) {
|
||||
// 日付とカリキュラム名で分割
|
||||
String[] lineData = scanner.nextLine().split(",");
|
||||
// マップに追加
|
||||
curriculumMap.put(lineData[0], lineData[1]);
|
||||
}
|
||||
} finally {
|
||||
// もしScannerがnullではなかったらクローズする
|
||||
if (scanner != null) {
|
||||
scanner.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param dateTime TODO
|
||||
* @return TODO
|
||||
*/
|
||||
public String getUnitName(String dateTime) {
|
||||
return this.getCurriculumMap().get(dateTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
public void printAllUnitName() {
|
||||
for (String key : this.getCurriculumMap().keySet()) {
|
||||
System.out.println(key + ":" + this.getCurriculumMap().get(key));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @return TODO
|
||||
*/
|
||||
public Map<String, String> getCurriculumMap() {
|
||||
return this.curriculumMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param curriculumMap TODO
|
||||
*/
|
||||
public void setCurriculumMap(Map<String, String> curriculumMap) {
|
||||
this.curriculumMap = curriculumMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @return TODO
|
||||
*/
|
||||
public abstract String getCurriculumName();
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.rhizome.beans.curriculum;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public class DBCurriculum extends Curriculum {
|
||||
// DBカリキュラム名一覧のテキストファイル名
|
||||
private final static String DB_CURRICULUM_FILE_NAME = "DBCurriculum";
|
||||
|
||||
// カリキュラム名
|
||||
private final static String CURRICULUM_NAME = "DB";
|
||||
|
||||
public DBCurriculum() throws FileNotFoundException {
|
||||
super(DB_CURRICULUM_FILE_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCurriculumName() {
|
||||
return CURRICULUM_NAME;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.rhizome.beans.curriculum;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public class JavaCurriculum extends Curriculum {
|
||||
// Javaカリキュラム名一覧のテキストファイル名
|
||||
private final static String JAVA_CURRICULUM_FILE_NAME = "JavaCurriculum";
|
||||
|
||||
// カリキュラム名
|
||||
private final static String CURRICULUM_NAME = "Java";
|
||||
|
||||
// 使用するテキスト名
|
||||
public final static String JAVA_TEXT = "スッキリわかるJava入門";
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param fileName TODO
|
||||
* @throws FileNotFoundException TODO
|
||||
*/
|
||||
public JavaCurriculum() throws FileNotFoundException {
|
||||
super(JAVA_CURRICULUM_FILE_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCurriculumName() {
|
||||
return CURRICULUM_NAME;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.rhizome.beans.student;
|
||||
|
||||
import com.rhizome.beans.course.Course;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public class JavaStudent extends Student {
|
||||
|
||||
// 受講するコース(受講コースは共通のためstatic)
|
||||
private static Course courses;
|
||||
|
||||
private final static String INTRO_DEFAULT_MESSAGE = "初心者なので頑張ります!";
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param name TODO
|
||||
* @param age TODO
|
||||
*/
|
||||
public JavaStudent(String name, int age) {
|
||||
super(name, age);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param name TODO
|
||||
* @param age TODO
|
||||
* @param introMessage TODO
|
||||
*/
|
||||
public JavaStudent(String name, int age, String message) {
|
||||
super(name, age, message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void introduce() {
|
||||
System.out.println("初めまして。" + this.name + "と申します。");
|
||||
|
||||
// TODO
|
||||
if (introMessage != null) {
|
||||
System.out.println(introMessage);
|
||||
} else {
|
||||
System.out.println(INTRO_DEFAULT_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
public static Course getCourses() {
|
||||
return courses;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
public static void setCourses(Course courses) {
|
||||
JavaStudent.courses = courses;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.rhizome.beans.student;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
|
||||
public interface Learn {
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param unit TODO
|
||||
*/
|
||||
void question(String unit);
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param unit TODO
|
||||
*/
|
||||
void learn(String unit);
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param unit TODO
|
||||
*/
|
||||
void review(String unit);
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param unit TODO
|
||||
*/
|
||||
void prepare(String unit);
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.rhizome.beans.student;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public abstract class Student implements Learn {
|
||||
// 名前
|
||||
protected String name;
|
||||
|
||||
// 年齢
|
||||
protected int age;
|
||||
|
||||
// 自己紹介メッセージ
|
||||
protected String introMessage;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param name TODO
|
||||
* @param age TODO
|
||||
*/
|
||||
protected Student(String name, int age) {
|
||||
this.name = name;
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param name TODO
|
||||
* @param age TODO
|
||||
* @param introMessage TODO
|
||||
*/
|
||||
public Student(String name, int age, String message) {
|
||||
this(name, age);
|
||||
this.introMessage = message;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*/
|
||||
public abstract void introduce();
|
||||
|
||||
@Override
|
||||
public void question(String unit) {
|
||||
System.out.println(unit + "の質問をします。");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void learn(String unit) {
|
||||
System.out.println(unit + "の学習をします。");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void review(String unit) {
|
||||
System.out.println(unit + "の復習をします。");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prepare(String unit) {
|
||||
System.out.println(unit + "の予習をします。");
|
||||
}
|
||||
}
|
||||
107
CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/main/Induction.java
Normal file
107
CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/main/Induction.java
Normal file
@@ -0,0 +1,107 @@
|
||||
package com.rhizome.main;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.rhizome.beans.course.Course;
|
||||
import com.rhizome.beans.course.JavaCourse;
|
||||
import com.rhizome.beans.student.JavaStudent;
|
||||
import com.rhizome.beans.student.Student;
|
||||
|
||||
/**
|
||||
* 新入社員研修実行クラス
|
||||
* コースや受講生を作成し、研修を実施するクラス
|
||||
*
|
||||
* @author ITCollege
|
||||
* @since 2022
|
||||
* ------------------------------------------------------------
|
||||
* Copyright(c) Rhizome Inc. All Rights Reserved.
|
||||
*/
|
||||
public class Induction {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// TODO
|
||||
Course javaCourse = null;
|
||||
try {
|
||||
javaCourse = createCourse();
|
||||
} catch (FileNotFoundException e) {
|
||||
System.out.println("コース作成時にエラーが発生しました。システムを終了します");
|
||||
// TODO
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
JavaStudent.setCourses(javaCourse);
|
||||
|
||||
// TODO
|
||||
List<Student> studentList = createStudentList();
|
||||
// TODO
|
||||
introduceTime(studentList);
|
||||
|
||||
// TODO
|
||||
inductionStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* コース作成メソッド
|
||||
* @return 作成したコース
|
||||
* @throws FileNotFoundException カリキュラム作成時のエラー
|
||||
*/
|
||||
private static Course createCourse() throws FileNotFoundException{
|
||||
// TODO
|
||||
JavaCourse javaCourse = new JavaCourse();
|
||||
return javaCourse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 受講生作成メソッド
|
||||
* @return 作成した受講生リスト
|
||||
*/
|
||||
private static List<Student> createStudentList() {
|
||||
List<Student> studentList = new ArrayList<Student>();
|
||||
// TODO
|
||||
Student studentTanaka = new JavaStudent("田中", 22);
|
||||
Student studentYamada = new JavaStudent("山田", 22, "少しだけ経験ありますが、忘れているので頑張ります!");
|
||||
|
||||
// TODO
|
||||
studentList.add(studentTanaka);
|
||||
studentList.add(studentYamada);
|
||||
|
||||
return studentList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 自己紹介タイム
|
||||
* 受講生分 introduceメソッドを実行する
|
||||
* @param studentList 受講生リスト
|
||||
*/
|
||||
private static void introduceTime(List<Student> studentList) {
|
||||
System.out.println("研修初日なので自己紹介をしていただきます。");
|
||||
System.out.println();
|
||||
|
||||
// TODO
|
||||
for (int i = 0; i < studentList.size(); i++) {
|
||||
System.out.println((i + 1) + "人目");
|
||||
|
||||
// TODO
|
||||
studentList.get(i).introduce();
|
||||
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 研修開始メソッド
|
||||
*/
|
||||
private static void inductionStart() {
|
||||
System.out.println("今回の研修では以下のJavaとDBを学びます");
|
||||
// TODO
|
||||
JavaStudent.getCourses().printAllCurriculumName();
|
||||
System.out.println();
|
||||
|
||||
// TODO
|
||||
String today = "06/01 10:00"; // 本当は現在日時から作成するべきだが今回は固定とする
|
||||
String unitName = JavaStudent.getCourses().getUnitNameByDateTime(today);
|
||||
System.out.println("今日学習する単元は" + unitName + "です。");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user