すべて 指定のパッケージ内に作成してください

ソースコード(クラス名.java)をSドライブにアップロードして提出してください

S:\Java\課題提出\基礎\12章


問題1

直方体を表現するクラスを作成します。

以下の仕様でクラスを作成してください。

パッケージ chapter12.kadai1
クラス名 Box
フィールド 必要な値を自分で考えること
引数なし
コンストラクタ
縦、横、高さを全て0とする
コンストラクタ
(引数に整数3つ)
引数で縦、横、高さの値を受け取り、その値をフィールドに設定する。
1つでも0以下の値が指定された時には、全ての辺の値を0とする
メソッド int getVolume()
 体積を計算してリターンする
 直方体の体積は、縦×横×高さ

int getAllArea()
 表面積を計算してリターンする
 直方体の表面積は、(縦×横+縦×高さ+横×高さ)×2

void dispLength()
 縦、横、高さ それぞれの長さをコンソールに表示する

void dispAll()
 縦、横、高さの長さ、体積、表面積をコンソールに表示する

void setLength(int, int, int)
 引数で縦、横、高さの値を受け取り、その値をフィールドにセットする
 1つでも0以下の値が指定された時には、全ての辺の値を0とする

上記 Box クラスを呼び出す BoxMain クラスを作成し、mainメソッドから各コンストラクタ、メソッドを呼び出し、Boxクラスの機能をテストしてください。

問題2

商品在庫を管理するクラスを作成します。

以下の仕様のクラスを作成してください。

パッケージ chapter12.kadai2
クラス名 Zaiko
フィールド
String item 商品名
int stock 在庫数
定数フィールド public static final int LIMIT = 10
 追加発注アラートの定数値  在庫がこの値より少なくなったらアラートを表示
コンストラクタ 引数で商品名(String)と、初期在庫数(int)を受け取り、フィールドにセットする。
初期在庫数にマイナスの値がセットされたら0にする
メソッド void changeItemName(String item)
 商品名変更処理。「商品名を変更しました。旧:○○ 新:●●」と表示

int nyuuka(int add)
 入荷処理。
  • 「入荷処理を行いました」とメッセージを表示し、引数分在庫数を増やす。
  • 入荷数(引数の値)がマイナスの時は、「入荷数が不正です」とメッセージを表示し、在庫数は増やさない。
  • 最後に在庫数をリターンする。
int syukka(int del)
 出荷処理。
  • 出荷数(引数の値)が在庫数以内、0以上の場合は引数分在庫数を減らす。
    「出荷処理を行いました」とメッセージを出力する。
    在庫数が定数LIMITより少なくなった場合、
    「在庫が少なくなりました。追加発注をしてください」とメッセージを出す。
  • 出荷数(引数の値)が在庫数を超える場合は
    「在庫が○個のため、●個出荷できません。出荷処理をキャンセルします」
    とメッセージを出力し、在庫数は減らさない。
  • 出荷数(引数の値)がマイナスの場合は、「出荷数が不正です」とメッセージを表示し、在庫数は減らさない。
  • 最後に在庫数をリターンする。
int checkZaiko()
 在庫数チェック。
 「商品名: ○○ 在庫数: ○個」と画面に出力し、在庫数をリターンする。

上記 Zaiko クラスを呼び出す ZaikoMain クラスを作成し、mainメソッドから各コンストラクタ、メソッドを呼び出し、Zaikoクラスの機能をテストしてください。


実行結果サンプル(「***   ***」で囲われた部分はmainからの出力)

この通りでなくても、全てのコンストラクタ、メソッドがテストできればOK

*** えんぴつ 20 で新規商品登録 ***

商品名:えんぴつ 在庫数:20個

*** 商品名を変更 ***

商品名を変更しました。旧: えんぴつ 新: 鉛筆HB

商品名:鉛筆HB 在庫数:20個

*** 20個入荷 ***

入荷処理を行いました

商品名:鉛筆HB 在庫数:40個

*** 100個出荷 ***

在庫が40個のため、100個出荷できません。出荷処理をキャンセルします

商品名:鉛筆HB 在庫数:40個

*** 5個出荷 ***

出荷処理を行いました

商品名:鉛筆HB 在庫数:35個

*** -5個入荷 ***

入荷数が不正です

商品名:鉛筆HB 在庫数:35個

*** -5個出荷 ***

出荷数が不正です

商品名:鉛筆HB 在庫数:35個

問題3(応用問題)

伝票、明細を表現するクラスを作成します。

あるカフェでは、以下のような伝票を作成し、一回の会計ごとに管理しています。価格は消費税込みです。

品名単価数量小計
アイスコーヒー2502500→ 明細
ロイヤルミルクティー3501350
チーズケーキ4001400
いちごパフェ8001800
 
 
合計2,050

横1行分を明細クラス、伝票全体を伝票クラスとして設計・作成してみましょう。

1伝票には、最大50明細入れば、このお店の業務には支障がありません。

どんなフィールド、メソッドが必要か考えて実装してみましょう。


また、mainメソッドを持つクラスを作成し、オーダーの受注、会計処理などをイメージして各クラスを呼び出してみましょう。