新規作成
This commit is contained in:
110
1日目_実装ミッション指示書.md
Normal file
110
1日目_実装ミッション指示書.md
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
# 1日目 実装ミッション指示書
|
||||||
|
|
||||||
|
## この指示書について
|
||||||
|
|
||||||
|
このミッションは、「StringCheck 詳細設計書」で定義されている短文投稿プログラムの完成を目指す、複数日にわたる実装課題の1日目です。今日の講義で習った内容だけを使って、`StringCheck.java` の土台となる部分を組み立てます。
|
||||||
|
|
||||||
|
### 今日はまだ次のことを習っていません。使わないでください。
|
||||||
|
|
||||||
|
- `if` / `switch` / `for` / `while` などの制御構文(ループ・条件分岐)
|
||||||
|
- 独自のメソッドを定義すること(`inputString()` や `setUpLogger()` などは、まだ作りません)
|
||||||
|
- 例外処理(`try` / `catch`)
|
||||||
|
- ログ出力(`Logger`)
|
||||||
|
|
||||||
|
### 今日使ってよいもの
|
||||||
|
|
||||||
|
- 基本データ型(`int`, `double`, `boolean`, `char` など)と変数宣言・リテラル
|
||||||
|
- 算術演算子・比較演算子・論理演算子
|
||||||
|
- 配列(1次元配列)の宣言・初期化
|
||||||
|
- 標準入力から文字列を読み取る方法、文字列の前後の空白を除去する方法(★自分で調べること。下記「参考」を参照)
|
||||||
|
|
||||||
|
すべての処理は `main` メソッド1本の中に、上から順番に書き並べてください。メソッドへの切り出し(リファクタリング)は、メソッドの定義方法を習った後日のミッションで行います。
|
||||||
|
|
||||||
|
## 開発環境について(Eclipse)
|
||||||
|
|
||||||
|
本ミッションは **Eclipse** を使用する前提とします。あらかじめ Java プロジェクトを作成し、その中に `StringCheck` という名前のクラスを作成してください(クラス名に合わせて、Eclipseが自動的に `StringCheck.java` というファイルを作成します)。
|
||||||
|
|
||||||
|
- **コンパイルエラーの確認方法:** `javac` コマンドは使いません。Eclipseはファイルを保存すると自動でコンパイルします。エディタの左端(行番号の横)や、Package Explorer上のファイル・プロジェクトのアイコンに赤い×印(エラーマーカー)が付いていなければ、コンパイルエラーはありません。
|
||||||
|
- **実行方法:** エディタ上で右クリック →「実行(Run As)」→「Java アプリケーション(Java Application)」を選択するか、ツールバーの緑色の実行ボタンを押してください。
|
||||||
|
- **入力の方法:** 実行すると画面下部に **[コンソール](Console)** ビューが開きます。コンソール内をクリックしてカーソルを合わせてから文字を入力し、Enterキーを押すとプログラムに入力を渡せます。
|
||||||
|
|
||||||
|
## 今日のゴール
|
||||||
|
|
||||||
|
`StringCheck.java` を作成し、次の一連の流れを、**検証(未入力チェック・文字数チェック)なしの「正常系のみ」**で動作させます。
|
||||||
|
|
||||||
|
```
|
||||||
|
いまなにしてる?
|
||||||
|
(ここでユーザーが文章を入力する)
|
||||||
|
|
||||||
|
↓↓↓↓↓↓ 投稿されました ↓↓↓↓↓↓
|
||||||
|
(入力した文章がそのまま表示される)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 進め方(3段階)
|
||||||
|
|
||||||
|
### 段階1:クラスの雛形とメッセージ配列の定義
|
||||||
|
|
||||||
|
1. `StringCheck` という名前のクラスを作成し、`public static void main(String[] args)` を用意してください(他のメソッドはまだ作りません)。
|
||||||
|
2. 画面に表示する以下の文言を、1つの `String` 配列にまとめて `main` の中に宣言・初期化してください。
|
||||||
|
- `"いまなにしてる?"`
|
||||||
|
- `"何も入力されていません"`
|
||||||
|
- `"投稿文が長すぎます"`
|
||||||
|
- `"↓↓↓↓↓↓ 投稿されました ↓↓↓↓↓↓"`
|
||||||
|
|
||||||
|
**この段階の完了確認**
|
||||||
|
|
||||||
|
- エディタおよびPackage Explorer上に赤いエラーマーカーが表示されていないこと(コンパイルエラーがないこと)
|
||||||
|
- 配列の要素数が4つで、内容が上記と一字一句一致していること
|
||||||
|
|
||||||
|
### 段階2:標準入力の読み込みと空白除去
|
||||||
|
|
||||||
|
1. `main` の中に直接、標準入力から1行分の文字列を読み込む処理を書いてください。
|
||||||
|
2. 読み込んだ文字列の前後にある空白文字(半角スペース・全角スペースなど)を除去し、`String` 型の変数 `str` に格納してください。
|
||||||
|
3. 動作確認のため、`str` の内容をそのまま画面に表示してください。
|
||||||
|
|
||||||
|
**この段階の完了確認**
|
||||||
|
|
||||||
|
- Eclipseで実行し、[コンソール]に前後に半角・全角スペースを含む文章(例:` 今日は晴れ `)を入力すると、スペースが除去された状態(`今日は晴れ`)で表示されること
|
||||||
|
|
||||||
|
**参考(自分で調べること)**
|
||||||
|
|
||||||
|
「標準入力から1行読み取る方法」「文字列の前後の空白を除去する方法」は、[Java SE 21 API ドキュメント(日本語版)](https://docs.oracle.com/javase/jp/21/docs/api/index.html) で調べてください。「Java + 実現したいこと」で検索すると見つけやすくなります。自分で見つけたクラスやメソッドの仕様(引数・戻り値・挙動)は、必ず公式ドキュメントで裏を取ってから使用してください。
|
||||||
|
|
||||||
|
### 段階3:判定値の算出と、正常系のみの一連の流れの実装
|
||||||
|
|
||||||
|
1. 段階2で `str` に格納した文字列の**文字数**をもとに、比較演算子を使って次の2つの真偽値(`boolean`)を求め、画面に表示してください。**`if` 文はまだ使わず、値を表示するだけで構いません。**
|
||||||
|
- 空文字判定:`str` の文字数が `0` かどうか
|
||||||
|
- 文字数超過判定:`str` の文字数が `140` を超えるかどうか
|
||||||
|
2. 算術演算子を使って「残り入力可能文字数(`140 - 文字数`)」を計算し、画面に表示してください。
|
||||||
|
3. 次の一連の流れを、`main` の中に上から順番に書き並べて完成させてください(検証は行わず、必ず投稿が成功する「正常系のみ」の流れです)。
|
||||||
|
1. 配列から取り出した「いまなにしてる?」を表示する
|
||||||
|
2. 段階2の読み込み処理で `str` に値を格納する
|
||||||
|
3. 空行を1行表示する
|
||||||
|
4. 配列から取り出した投稿完了バナーを表示する
|
||||||
|
5. `str` の内容を表示する
|
||||||
|
|
||||||
|
**この段階の完了確認(動作例)**
|
||||||
|
|
||||||
|
Eclipseで実行し、[コンソール]で次のように動作することを確認してください。
|
||||||
|
|
||||||
|
```
|
||||||
|
いまなにしてる?
|
||||||
|
ラーメンを食べています
|
||||||
|
|
||||||
|
↓↓↓↓↓↓ 投稿されました ↓↓↓↓↓↓
|
||||||
|
ラーメンを食べています
|
||||||
|
```
|
||||||
|
|
||||||
|
- 上記のように、入力した文章がそのまま投稿として表示されること
|
||||||
|
- 真偽値・残り文字数の表示が、入力する文章の長さに応じて正しく変化すること(空文字を入力した場合や、141文字以上を入力した場合など、複数パターンを自分の目で確認すること)
|
||||||
|
|
||||||
|
## 提出物
|
||||||
|
|
||||||
|
- 作成した `StringCheck.java`
|
||||||
|
- 動作確認メモ(段階2・段階3の完了確認で、どんな入力を試して、どう表示されたかを簡単に記録したもの。詰まった点があれば併記してください)
|
||||||
|
|
||||||
|
## 今日は実装しないこと(翌日以降に扱います)
|
||||||
|
|
||||||
|
- 未入力・文字数超過時に「再表示して入力させ直す」処理(`if` 文・ループが必要なため)
|
||||||
|
- `inputString()` や `setUpLogger()` のような独立したメソッドへの切り出し
|
||||||
|
- ログ出力(`Logger` によるファイル出力)
|
||||||
BIN
StringCheck_詳細設計書.pdf
Normal file
BIN
StringCheck_詳細設計書.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user