3.繰り返し

はじめに

本大問で作成するプログラム(演習課題も含む)を保存するためのパッケージを作成する。

  • パッケージ名
    web._03

3-1

指定した数値範囲の総和計算

指定された開始値(整数値)と終了値(整数値)間の総和を計算して画面表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

  • クラス名
    S31ForTwoNumCalculation
  • 実装先メソッド
    mainメソッド

【仕様】

  • 開始値・終了値の入力は-9999~9999の半角整数値のみとする。
  • 開始値・終了値も総和に含める。

【注意点】

※現時点で、入力された値が有効範囲か確認するプログラムを実装する必要はない。
※whileループ/forループの両方のパターンを使ってみる。

【画面レイアウト】

開始する数を入力してください。
5
終了する数を入力してください。
10
5から10の総和は45です。

【テストパターン】

考え方
・普通に思いつく数値の組み合わせを入力する。
・開始・終了が同じ値のパターンを入力する。
・開始よりも終了のほうが小さい値のパターンを入力する。
 その場合、どう表示されるか
 どう表示するのが適切か
・どれか、または両方を未入力にする。
・どれか、または両方を小数にする。
・どれか、または両方に数値でないもの(文字、記号)を入力する。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「-15」〜「15」
・「30」〜「20」
・「6」〜「6」

【サンプルソースコード】

S31ForTwoNumCalculation.java

package web._03; /** * 3-1:開始値から終了値までの総和を計算し、表示するクラスです。 * * @author akira_ishii * */ public class S31ForTwoNumCalculation { /** * 開始値から終了値までの総和を計算し、表示します。 * * @param args * コマンドライン引数 */ public static void main(String[] args) { System.out.println("開始する数を入力してください。"); int start = new java.util.Scanner(System.in).nextInt(); System.out.println("終了する数を入力してください。"); int end = new java.util.Scanner(System.in).nextInt(); int sum = 0; for (int i = start; i <= end; i++) { sum = sum + i; } System.out.println(start + "から" + end + "の総和は" + sum + "です。"); } }

3-2

ある整数値が入力されるまでの総和計算

100が入力されるまでの総和を計算し、結果を画面表示するプログラムを作成する。 画面は<画面レイアウト>を参照すること。 なお、クラス名・実装先メソッドは以下の通り。

  • クラス名
    S32SumCalculationDisplay
  • 実装先メソッド
    mainメソッド

【仕様】

  • 入力される数値は-1000~1000までの半角整数値とする。
  • 100は総和に含めない。

【注意点】

※現時点で、入力された値が有効範囲か確認するプログラムを実装する必要はない。

【画面レイアウト】

数値を入力してください。
10
数値を入力してください。
30
数値を入力してください。
13
数値を入力してください。
21
数値を入力してください。
100
合計で74になります。

【テストパターン】

考え方
・普通に思いつく単語を入力する。
 英数字、日本語、それらの混在、スペース・記号混じり
・未入力にする。
・はじめに100を入れる。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「1 0」
・「サーバー」
・「議事録.doc」
・「Microsoft Excel」

【サンプルソースコード】

S32SumCalculationDisplay.java

package web._03; /** * 3-2:総和の計算を行い、表示するクラスです。 * * @author akira_ishii * */ public class S32SumCalculationDisplay { /** * 100が入力されるまでの総和を計算し、表示します * * @param args * コマンドライン引数 */ public static void main(String[] args) { int num = 0; int sum = 0; while (num != 100) { System.out.println("数値を入力してください。"); num = new java.util.Scanner(System.in).nextInt(); sum = sum + num; } if (sum != 0) { sum = sum - 100; } System.out.println("合計で" + sum + "になります。"); } }

3-3

偶数(整数値)の総和計算

指定された開始値(整数値)と終了値(整数値)間の偶数のみの総和を計算し、結果を表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

  • クラス名
    S33EvenCalculation
  • 実装先メソッド
    mainメソッド

【仕様】

  • 計算結果によって表示内容を変える。
    • 計算結果が100以下の場合は、開始値・終了値・計算結果を表示する。
       [開始値]から[終了値]までの総和は[計算結果]になります。
    • 計算結果が100より大きい場合は、総和計算を中断し、そこまでの計算結果と以下のメッセージを表示する。
       「計算結果が100を超えたため、処理を中断しました」
      ※具体的な表示内容(文言含む)は<画面レイアウト>を参照※
  • 開始値が100を超える場合は計算結果が100を超えたものとみなす。総和は0とする。
  • 開始値100、終了値101以上の場合は開始値の100を総和に含めること。
  • 開始値・終了値の入力は-999~999の半角整数値のみとする。
  • 終了値 < 開始値(例:開始値 30 終了値 10)は異常な入力値と考える。

【注意点】

※現時点で、入力された値が有効範囲か確認するプログラムを実装する必要はない。

【画面レイアウト1(計算結果が100以下の場合)】

開始する数値を入力してください。
1
終了する数値を入力してください。
10
1から10までの総和は30になります。

【画面レイアウト2(計算結果が100より大きい場合)】

開始する数値を入力してください。
1
終了する数値を入力してください。
100
計算結果が100を超えたため、処理を中断しました。
超える前の総和は90になります。    

【テストパターン】

考え方
・普通に思いつく単語を入力する。
 英数字、日本語、それらの混在、スペース・記号混じり
・開始値と終了値を逆にする。
・開始値と終了値を同じにする。
・未入力にする。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「10」「20」
・「50」「10」
・「Microsoft Excel」「サーバー」
・「議事録.doc」「20」

【テスト仕様書・報告書】

本問題はテスト仕様書・報告書を自身で作成してテストする問題なっている。
テスト仕様書・報告書のフォーマットおよび作業内容・注意事項はこちらを確認して、テスト仕様書・報告書の作成およびテストを実施すること。


3-4

買い物の代金計算 - 繰り返し版

(1−7の拡張)
買い物の代金を計算し、税込金額を画面表示するプログラムを作成する。
1−7と同様の処理を、何度でも好きなだけ繰り返して代金計算できるようにする。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

  • クラス名
    S34ShoppingCalculation
  • 実装先メソッド
    mainメソッド

【仕様】

  • 値段または個数に「-1」が入力されたら、代金の計算を終了する。
  • 値段の入力は10~980000の半角整数値のみとする。
  • 個数の入力は1~100の半角整数値のみとする。
  • 消費税は5%で計算する。
  • 消費税計算で端数が出る場合、小数点以下は切り捨ててよい。

【注意点】

※現時点で入力された値が有効範囲か確認するプログラムを実装する必要はない。

【画面レイアウト】

買い物の商品名を入力してください。
携帯ストラップ
買い物の値段を入力してください(整数値)。
498
買い物の個数を入力してください(整数値)。
2
携帯ストラップ の合計は996円、税込金額は1045円です。
=====
買い物の商品名を入力してください。
買いません
買い物の値段を入力してください(整数値)。
-1
買い物の個数を入力してください(整数値)。
-1
プログラムを終了します。            ・・・値段または個数が「-1」なら、終了

【テストパターン】

考え方
・1回の入力・計算が終わったら、そのまま繰り返し次の入力ができるかどうか確認する。
・値段に「-1」を入力したら、プログラムが終了するかどうか確認する。
・個数に「-1」を入力したら、プログラムが終了するかどうか確認する。
・5回以上繰り返し、全パターンが適切に処理されるかどうか確認する。
 正常に計算されるパターン
 エラー入力によりメッセージが表示されるパターン
・1回目でいきなり、「-1」入力で終了させてみる。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・商品名1「かぼちゃ」、値段1「300」、個数1「300」
 商品名2「PS2」、値段2「19800」、個数2「1」
 商品名3「本」、値段3「2500」、個数3「」
 商品名4「」、値段4「198」、個数4「3」
 商品名5「CD」、値段5「3000」、個数5「q」
 商品名6「ミッキーマウスのオルゴール」、値段6「5700」、個数6「-1」

・商品名1「パソコン」、値段1「19800」、個数1「1000」
 商品名2「-1」、値段2「」、個数2「」
 商品名3「」、値段3「-1」、個数3「」

・商品名1「プーさんのはちみつ」、値段1「580」、個数1「3」
 商品名2「プーさんのお皿」、値段2「1200」、個数2「5」
 商品名3「プーさんのおうち」、値段3「-1」、個数3「」

【サンプルソースコード】

S34ShoppingCalculation.java

package web._03; /** * 3-4:買い物の合計金額を計算し、結果を表示するクラスです。 * * @author akira_ishii * */ public class S34ShoppingCalculation { /** * 買い物の合計金額の計算を実行します。 * * @param args * コマンドライン引数 */ public static void main(String[] args) { while (true) { System.out.println("買い物の商品名を入力してください。"); String goodsName = new java.util.Scanner(System.in).next(); System.out.println("買い物の値段を入力してください(整数値)。"); int price = new java.util.Scanner(System.in).nextInt(); System.out.println("買い物の個数を入力してください(整数値)。"); int quantity = new java.util.Scanner(System.in).nextInt(); if (price == -1 || quantity == -1) { System.out.println("プログラムを終了します。"); break; } int total = price * quantity; int totalTax = (int) (total * 1.05); System.out.println(goodsName + "の合計は" + total + "円、税込金額は" + totalTax + "円です。"); System.out.println("====="); } } }

3-5

九九の表

掛け算の九九表を表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

  • クラス名
    S35CreationMultiplicationTable
  • 実装先メソッド
    mainメソッド

【仕様】

  • 処理には、ループ(while文でもfor文でもよい)を使う。

【注意点】

※すべての行/数値を、単純にprintするような書き方は、この課題ではしてはいけない。

【画面レイアウト】

1   2    3    4    5    6    7    8    9
2   4    6    8    10   12   14   16   18
3   6    9    12   15   18   21   24   27
4   8    12   16   20   24   28   32   36
5   10   15   20   25   30   35   40   45
6   12   18   24   30   36   42   48   54
7   14   21   28   35   42   49   56   63
8   16   24   32   40   48   56   64   72
9   18   27   36   45   54   63   72   81

【サンプルソースコード】

S35CreationMultiplicationTable.java

package web._03; /** * 3-5:九九の表を作成するクラスです。 * * @author akira_ishii * */ public class S35CreationMultiplicationTable { /** * 九九の表を作成します。 * * @param args * コマンドライン引数 */ public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j < 10; j++) { System.out.print(i * j); System.out.print("\t"); } System.out.println(); } } }

3-6

文字(単語)カウント

入力された文の中に、指定の文字・単語(文字列)がいくつあるか数え、結果を表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

  • クラス名
    任意
  • 実装先メソッド
    mainメソッド

【仕様】

  • 入力される文、指定の文字・単語の文字数制限はなしとする。
  • 入力される文、指定の文字・単語・に使用できる文字種は英字・数字・ひらがな・カタカナ・漢字とする。
    ただし、環境依存文字などの特殊文字は除外する。

【注意点】

※現時点で、入力された値が有効範囲か確認するプログラムを実装する必要はない。
※テスト仕様書は、とりあえず結構です。

【画面レイアウト1(1文字カウント)】

何か文を入力してください。
only you
数えたい文字を入力してください。
y
「only you」の中に、「y」は2個です。

【画面レイアウト2(複数文字カウント)】

何か文を入力してください。
赤巻紙青巻紙黄巻紙
数えたい文字を入力してください。
巻紙
「赤巻紙青巻紙黄巻紙」の中に、「巻紙」は 3 個です。

【テストパターン】

考え方
・普通に思いつく文と文字(単語)を入力する。
 英数字、日本語、それらの混在、スペース・記号混じり
・どちらか、または両方を未入力にする。
・指定の文字(単語)がひとつもないパターンを入力する。
 その場合、どう表示されるか
 どう表示するのが適切か
・紛らわしい単語(1文字違いなど)が含まれているパターンを入力する。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・文「business system」、文字「sss」
・文「」、文字「て」
・文「http://xon.jp/」、文字「/」

Copyright © Xincor miXell Co., Ltd. All rights reserved

results matching ""

    No results matching ""