2.条件分岐

はじめに

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

  • パッケージ名
    web._02

2-1

数値の大小比較

入力された2つの整数値の大小比較を行い、比較結果を画面表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

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

【仕様】

  • 整数値1・整数値2の入力は-99999~99999の半角整数値とする。
  • 整数値1・整数値2が同値の場合は、「同じです」と結果表示する。

【注意点】

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

【画面レイアウト1(整数値1・整数値2が同値じゃない場合)】

整数値1を入力してください。
25
整数値2を入力してください。
180
180のほうが大きく、25のほうが小さいです。

【画面レイアウト2(整数値1・整数値2が同値の場合)】

整数値1を入力してください。
25
整数値2を入力してください。
25
同じです。

【テストパターン】

考え方
・以下パターンの、整数値の組み合わせを入力する。
 整数値1のほうが大きいパターン
 整数値2のほうが大きいパターン
 同値のパターン
・マイナスの値を比較する。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「31」と「-640」
・「55」と「55」
・「100」と「101」

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

S21TwoNumComparison.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package web._02;
/**
* 2-12
*
* @author akira_ishii
*
*/
public class S21TwoNumComparison {
/**
* 2
*
* @param args
*
*/
public static void main(String[] args) {
System.out.println("");
int num1 = new java.util.Scanner(System.in).nextInt();
System.out.println("");
int num2 = new java.util.Scanner(System.in).nextInt();
if (num2 < num1) {
System.out.println(num1 + "" + num2 + "");
} else if (num1 < num2) {
System.out.println(num2 + "" + num1 + "");
} else {
System.out.println("");
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2-2

給与計算

入力された年齢(整数値)と労働時間(整数値)から給与額(整数値)を計算し、結果を画面表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

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

【仕様】

  • 年齢が18歳以上 and 労働時間が4時間より大きい場合のみ給与額を計算する。
    それ以外は「ルール上計算できません。」と画面表示する。
  • 年齢の入力は18~40の半角整数値のみとする。
  • 労働時間の入力は5~12の半角整数値のみとする。
  • 時給1000円で計算する。

【注意点】

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

【画面レイアウト1(年齢・労働時間の入力値が有効範囲内の場合)】

年齢を入力してください。
18
労働時間を入力してください。
8
本日の給料は、8000円です。

【画面レイアウト2(年齢・労働時間の入力値が有効範囲外の場合)】

年齢を入力してください。
55
労働時間を入力してください。
2
ルール上計算できません。

【テストパターン】

考え方
・以下パターンの、整数値の組み合わせを入力する。
 年齢が18以上で、労働時間が4時間より大きいパターン
 年齢が18より下のパターン
 労働時間が4時間以下のパターン
 年齢が18より下かつ労働時間が4時間以下のパターン
・どちらか、または両方を未入力にする。
・片方を英数字に、片方を日本語にする。
・英数字と日本語が混ざった単語を入力する。
・スペースを含んだ文字列を入力する。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「18」と「hour」
・「20」と「4.2」
・「2 0」と「4」

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

S22WageCalculation.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package web._02;
/**
* 2-2
*
* @author akira_ishii
*
*/
public class S22WageCalculation {
/**
*
*
* @param args
*
*/
public static void main(String[] args) {
System.out.println("");
int age = new java.util.Scanner(System.in).nextInt();
System.out.println("");
int hour = new java.util.Scanner(System.in).nextInt();
if (18 <= age && 4 < hour) {
int wage = hour * 1000;
System.out.println("" + wage + "");
} else {
System.out.println("");
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2-3

交通手段の選択

入力された所持金(整数値)とカード(整数値)から選択された交通手段を画面表示するプログラムを作成する。
<画面レイアウト>のように実装すること。
なお、クラス名・実装先メソッドは以下の通り。

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

【仕様】

  • 所持金が1000円より少ない or カードの入力値が不正の場合は、「正しく入力してください。」と表示する。
  • カードの入力値は、0が電車、1がバス、とする。
  • 所持金の入力は0~99999999の半角整数値のみとする。
  • カードの入力は0 or 1の半角整数値のみとする。

【注意点】

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

【画面レイアウト1(所持金・カードの入力値が有効範囲内の場合)】

所持金を入力してください。
1200
お手持ちのカードを入力してください(0:電車 1:バス)。
0
選択された交通手段は「電車」です。

【画面レイアウト2(所持金の入力値が有効範囲外の場合)】

所持金を入力してください。
900
お手持ちのカードを入力してください(0:電車 1:バス)。
0
正しく入力してください。

【画面レイアウト3(カードの入力値が有効範囲外の場合)】

所持金を入力してください。
1900
お手持ちのカードを入力してください(0:電車 1:バス)。
4
正しく入力してください。

【テストパターン】

考え方
・以下パターンの、整数値の組み合わせを入力する。
 所持金が1000円以上で電車かバスを選択したパターン
 所持金が1000円より少ないパターン
 カードの値が0,1 以外のパターン
 上記パターンを組み合わせた場合
・どちらか、または両方を未入力にする。
・片方を英数字に、片方を日本語にする。
・英数字と日本語が混ざった単語を入力する。
・スペースを含んだ文字列を入力する。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「1000」と「3」
・「hello」と「5」
・「1 000」と「1」

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

S23TrafficChoiceDisplay.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package web._02;
/**
* 2-3
*
* @author akira_ishii
*
*/
public class S23TrafficChoiceDisplay {
/**
*
*
* @param args
*
*/
public static void main(String[] args) {
System.out.println("");
int money = new java.util.Scanner(System.in).nextInt();
System.out.println("(0: 1:)");
int card = new java.util.Scanner(System.in).nextInt();
if (1000 <= money) {
if (card == 0) {
System.out.println("");
} else if (card == 1) {
System.out.println("");
} else {
System.out.println("");
}
} else {
System.out.println("");
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2-4

最大値の判定

入力された3つの整数値の中から最大値と最小値を判定し、結果を画面表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
※Math.max()などの関数は使わないこと。
なお、クラス名・実装先メソッドは以下の通り。

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

【仕様】

  • 数値1~数値3が全て同じ値の場合は、「全て同じです。」と表示する。
  • 数値1~数値3の入力は-9999~9999の半角整数値のみとする。

【注意点】

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

【画面レイアウト1(数値1・数値2・数値3が同値じゃない場合)】

数値1を入力してください。
23
数値2を入力してください。
125
数値3を入力してください。
4
これらの中で、最大値は125で、最小値は4です。

【画面レイアウト2(数値1・数値2・数値3が同値の場合)】

数値1を入力してください。
3
数値2を入力してください。
3
数値3を入力してください。
3
全て同じです。

【テストパターン】

考え方
・普通に思いつく数値の組み合わせを入力する。
 数値1が最大、数値2が最小
 数値1が最大、数値3が最小
  ・
  ・
 同値のものが含まれているパターン
 全て同値のパターン
・どれか、またはすべてを未入力にする。
・どれか、またはすべてに数値でないもの(文字、記号)を入力する。
・以下のものが含まれているパターンを入力する。
 マイナス値、0、非常に大きな数値
 その場合、正しい結果が表示されるか
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「-34」と「-12」と「-5」
・「0」と「512」と「0」
・「2」と「2.5」と「2.25」

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

本問題はこちらが用意したテスト仕様書・報告書を使ってテストする問題となっている。
テスト仕様書・報告書および作業内容はこちらを確認して、テストを実施すること。


2-5

月での季節判定

入力された月(整数値)を旧暦に変換し、結果を画面表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

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

【仕様】

  • 月の入力は半角整数値の1~12とする。
  • 表示する旧暦は以下とする。
  • 1月:睦月
  • 2月:如月
  • 3月:弥生
  • 4月:卯月
  • 5月:皐月
  • 6月:水無月
  • 7月:文月
  • 8月:葉月
  • 9月:長月
  • 10月:神無月
  • 11月:霜月
  • 12月:師走
  • 入力値に該当する旧暦がない場合は、「該当する旧暦はありません」と表示する。

【注意点】

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

【画面レイアウト1(該当する旧暦がある場合)】

月を入力してください。
1
1月は睦月です。

【画面レイアウト2(該当する旧暦がない場合)】

月を入力してください。
13
該当する旧暦はありません。

【テストパターン】

考え方
・1~12を、ひととおり入力する。
・月として適切な値の、境界値(0、13)を入力する。
・以下の入力をする。
 未入力、数値でないもの(文字や記号、スペース)、マイナス値、小数値、大きな数値
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「12」
・「13」
・「0.5」
・「0」

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

S25OldCalenderDisplay.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package web._02;
/**
* 2-5
*
* @author akira_ishii
*
*/
public class S25OldCalenderDisplay {
/**
*
*
* @param args
*
*/
public static void main(String[] args) {
System.out.println("");
int month = new java.util.Scanner(System.in).nextInt();
switch (month) {
case 1:
System.out.println(month + "");
break;
case 2:
System.out.println(month + "");
break;
case 3:
System.out.println(month + "");
break;
case 4:
System.out.println(month + "");
break;
case 5:
System.out.println(month + "");
break;
case 6:
System.out.println(month + "");
break;
case 7:
System.out.println(month + "");
break;
case 8:
System.out.println(month + "");
break;
case 9:
System.out.println(month + "");
break;
case 10:
System.out.println(month + "");
break;
case 11:
System.out.println(month + "");
break;
case 12:
System.out.println(month + "");
break;
default:
System.out.println("");
break;
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2-6

拡張子判定

入力されたファイル名(文字列)の拡張子からファイルの種類を判定し、結果を画面表示するプログラムを作成する。
画面は<画面レイアウト>を参照すること。
なお、クラス名・実装先メソッドは以下の通り。

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

【仕様】

  • 対応する拡張子は、Word(.doc)、Excel(.xls)、JPEG(.jpg)、テキスト(.txt)の4点とする。
    それ以外の拡張子の場合は、「判定できません。」と画面表示する。

【画面レイアウト1(対応している拡張子の場合)】

ファイル名を入力してください。
議事録.doc
「議事録.doc」はWordのファイルです。

【画面レイアウト2(対応していない拡張子の場合)】

ファイル名を入力してください。
議事録.bmp
判定できません。

【テストパターン】

考え方
・「xxx.doc」「xxx.xls」「xxx.jpg」「xxx.txt」のものをそれぞれ、ひととおり入力する。
・拡張子も含め、ファイル名をアルファベット大文字で入力する。
・対応していない拡張子のものを入力する(*.html、*.pdf、など)。
・拡張子を重ねてみる(xxx.doc.jpg、など)。
・拡張子だけを入力する(.xls、.jpg、など)。
・未入力にする。
実行例以外の具体的な入力例(実際には、もっといろいろやってみること)
・「議事録.doc.lnk」
・「FUJI.JPG」
・「.txt」
・「5月購入物品のリスト(未チェック).xls」

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

results matching ""

    No results matching ""