オブジェクト指向の演習問題として、すし注文処理を作成する。
すしデータとして以下のcsvデータを用いる。
にぎり,まぐろ(赤身),100
にぎり,漬けまぐろ,100
にぎり,ビントロ,100
にぎり,真だい,100
にぎり,はまち,100
にぎり,真いわし,100
にぎり,サーモン,100
にぎり,オニオンサーモン,100
にぎり,焼きはらす,100
にぎり,とろサーモン,100
にぎり,そでいか,100
にぎり,大葉甲いか,100
にぎり,大葉真いか,100
にぎり,えんがわにぎり,100
にぎり,えび,100
にぎり,甘えび,100
にぎり,えびアボカド,100
にぎり,生えび,100
にぎり,真たこ,100
にぎり一貫,まぐろ中とろ(一貫),100
にぎり一貫,赤えび(一貫),100
にぎり一貫,うなぎ(一貫),100
にぎり一貫,かににぎり(一貫),100
にぎり一貫,レモンぶり(一貫),100
にぎり一貫,あじ(一貫),100
にぎり一貫,まぐろユッケ手巻き寿司(一貫),100
ぐんかん,ねぎまぐろ,100
ぐんかん,まぐろユッケ,100
ぐんかん,味付いくら,100
ぐんかん,うに,100
ぐんかん,納豆,100
ぐんかん,えびマヨ,100
ぐんかん,サラダ,100
ぐんかん,ツナサラダ,100
ぐんかん,シーフードサラダ,100
ぐんかん,コーン,100
ぐんかん,味玉軍艦,100
ぐんかん,海鮮ねぎ塩軍艦,100
ぐんかん,たらマヨ軍艦,100
ぐんかん,カラフトししゃもっこ軍艦,100
ぐんかん,ほたてうに軍艦,100
ぐんかん,ほたるいか軍艦,100
ぐんかん,ごろっとハム玉軍艦,100
あぶり寿司・細巻き,あぶりサーモンてりマヨ,100
あぶり寿司・細巻き,あぶり豚カルビてりマヨ,100
あぶり寿司・細巻き,あぶりえびチーズ,100
あぶり寿司・細巻き,あぶりチーズサーモン,100
あぶり寿司・細巻き,あぶりチーズ豚カルビ,100
あぶり寿司・細巻き,鉄火巻,100
あぶり寿司・細巻き,きゅうり巻,100
あぶり寿司・細巻き,納豆巻,100
あぶり寿司・細巻き,かんぴょう巻,100
あぶり寿司・細巻き,えび天手巻き寿司(一貫),100
あぶり寿司・細巻き,いか天手巻き寿司(一貫),100
あぶり寿司・細巻き,ぷちずし,100
サイドメニュー,魚介醤油らーめん,360
サイドメニュー,特製茶碗蒸し,180
サイドメニュー,あさり入り赤だし,180
サイドメニュー,京風 だし巻きたまご,100
サイドメニュー,もりもりポテト,230
サイドメニュー,天ぷら盛り合わせ,230
サイドメニュー,いか天,100
サイドメニュー,えび天,100
サイドメニュー,オニオンリング,100
サイドメニュー,京わらびもち,100
サイドメニュー,ミルクレープ,200
サイドメニュー,生ビール,450
サイドメニュー,瓶ビール,500
サイドメニュー,冷酒無添蔵,520
サイドメニュー,オレンジジュース,200
このcsvは
カテゴリー,商品名,価格
で構成されている。以下から同じものをダウンロードできる。
実行例
***ご注文をどうぞ***
***カテゴリ一覧***
0.にぎり
1.にぎり一貫
2.ぐんかん
3.あぶり寿司・細巻き
4.サイドメニュー
番号を入力(e:注文完了)>>0
***にぎり***
0.まぐろ(赤身)(100円)
1.漬けまぐろ(100円)
2.ビントロ(100円)
3.真だい(100円)
4.はまち(100円)
5.真いわし(100円)
6.サーモン(100円)
7.オニオンサーモン(100円)
8.焼きはらす(100円)
9.とろサーモン(100円)
10.そでいか(100円)
11.大葉甲いか(100円)
12.大葉真いか(100円)
13.えんがわにぎり(100円)
14.えび(100円)
15.甘えび(100円)
16.えびアボカド(100円)
17.生えび(100円)
18.真たこ(100円)
番号をカンマ区切りで入力(c:カテゴリ一覧)>>0,0,14
-----注文表-----
まぐろ(赤身)(100円)
まぐろ(赤身)(100円)
えび(100円)
これでよろしいですか(b:戻る,c:カテゴリ一覧,e:注文完了)>>b
***にぎり***
0.まぐろ(赤身)(100円)
1.漬けまぐろ(100円)
2.ビントロ(100円)
3.真だい(100円)
4.はまち(100円)
5.真いわし(100円)
6.サーモン(100円)
7.オニオンサーモン(100円)
8.焼きはらす(100円)
9.とろサーモン(100円)
10.そでいか(100円)
11.大葉甲いか(100円)
12.大葉真いか(100円)
13.えんがわにぎり(100円)
14.えび(100円)
15.甘えび(100円)
16.えびアボカド(100円)
17.生えび(100円)
18.真たこ(100円)
番号をカンマ区切りで入力(c:カテゴリ一覧)>>18
-----注文表-----
まぐろ(赤身)(100円)
まぐろ(赤身)(100円)
えび(100円)
真たこ(100円)
これでよろしいですか(b:戻る,c:カテゴリ一覧,e:注文完了)>>c
***カテゴリ一覧***
0.にぎり
1.にぎり一貫
2.ぐんかん
3.あぶり寿司・細巻き
4.サイドメニュー
番号を入力(e:注文完了)>>2
***ぐんかん***
0.ねぎまぐろ(100円)
1.まぐろユッケ(100円)
2.味付いくら(100円)
3.うに(100円)
4.納豆(100円)
5.えびマヨ(100円)
6.サラダ(100円)
7.ツナサラダ(100円)
8.シーフードサラダ(100円)
9.コーン(100円)
10.味玉軍艦(100円)
11.海鮮ねぎ塩軍艦(100円)
12.たらマヨ軍艦(100円)
13.カラフトししゃもっこ軍艦(100円)
14.ほたてうに軍艦(100円)
15.ほたるいか軍艦(100円)
16.ごろっとハム玉軍艦(100円)
番号をカンマ区切りで入力(c:カテゴリ一覧)>>3,8
-----注文表-----
まぐろ(赤身)(100円)
まぐろ(赤身)(100円)
えび(100円)
真たこ(100円)
うに(100円)
シーフードサラダ(100円)
これでよろしいですか(b:戻る,c:カテゴリ一覧,e:注文完了)>>e
-----注文表-----
まぐろ(赤身)(100円)
まぐろ(赤身)(100円)
えび(100円)
真たこ(100円)
うに(100円)
シーフードサラダ(100円)
合計 600円
仕様
○正常系のみを考慮すればよい(不正な入力はないものとする)
○消費税は考慮しなくてよい
○カテゴリ一覧はcsvデータから動的に生成する
作成
以下のようにSushiApp.javaを作成する
import java.util.*;
import java.io.*;
public class SushiApp{
public static void main(String[] args) throws Exception{
}
}
class Sushi{
//フィールド
String name;
int price;
//コンストラクタ
Sushi(String name,int price){
this.name=name;
this.price = price;
}
//インスタンスメソッド
String showInfo(){
return String.format("%s(%d円)",this.name,this.price);
}
}
ポイント
○今回はカテゴリをキーとしたMap<String,List<Sushi>>を使ってデータを管理していく
◯Sushiクラスのフィールドはnameとprice
○csvファイルを読み込みながらインスタンスを作成していきたいので引数2つのコンストラクを準備しておく。
○実行例を見ると
まぐろ(赤身)(100円)
という表示がされているので自身の情報を表示するメソッドをインスタンスメソッドとして作成する。
コメント