print(Menu(0).strTrens(0))
var category = 0
while (true){
var orderNum = try { readLine()!!.toInt() }
catch (e: NumberFormatException) {
print("\n숫자로만 입력 해주세요\n번호 입력>> ")
continue
}
catch (e: IndexOutOfBoundsException){
print("\n제시된 숫자 중에 선택해 주세요\n번호 입력>> ")
continue
}
when(orderNum as Int){
0->{
if (category == 0) {
print("키오스크를 종료 합니다.")
break
}
else{
category = 0
print( Menu(orderNum).strTrens(orderNum))
}
}
1->{
if (category == 0){
category = orderNum
print(Burger(category,orderNum).strTrens(orderNum))
}
else if (category == 99) {
Cart().payment()
break
}
else{ Burger(category,orderNum).addCart() }
}
2->{
if (category == 0){
category = orderNum
print( Snack(category,orderNum).strTrens(orderNum))
}
else if (category == 99){
category = 0
print( Menu(orderNum).strTrens(orderNum))
}
else{ Snack(category,orderNum).addCart() }
}
3->{
if (category == 0){
category = orderNum
print( Drink(category,orderNum).strTrens(orderNum))
}
else{ Drink(category,orderNum).addCart() }
}
4->{
if (category == 0){
category = orderNum
print( Drink(category,orderNum).strTrens(orderNum))
}
else{ Drink(category,orderNum).addCart() }
}
99->{
category = orderNum
Cart().checkCart()
}
else->{print("\n제시된 숫자 중에 선택해 주세요\n번호 입력>> ")}
}
}
- Lv3
설계한 클래스들을 상속 관계를 가지도록 변경합니다.
open class Menu (val _category: Int) {
var strMenus :String =""
open fun strTrens(_category: Int) : String{
strMenus += menuTitle[0]
for (i in g_property.categoryList){ strMenus += i+"\n" }
strMenus += menuTitle[1] + menuTitle[2]
return strMenus
}
}
open class SubMenu(_category: Int, var _orderNum: Int) : Menu(_category) {
var prises : List<Double> = g_property.priseList[_category-1]
var products : List<String> = g_property.productList[_category-1]
override fun strTrens(_category: Int) : String {
super.strMenus += menuTitle[0]
super.strMenus += g_property.categoryList[_category-1] +"\n"
for ((index,i) in products.withIndex()){ super.strMenus += i +" | w "+ prises[index]+"천원\n" }
super.strMenus += menuTitle[1] + menuTitle[2]
return super.strMenus
}
open fun addCart() {
var pri : Double = prises[_orderNum-1]
var prd : String = products[_orderNum-1]
if(g_property.cartList.containsKey(prd)){pri += g_property.cartList.get(prd)!!}
g_property.cartList.put(prd, pri)
print("${prd} 를 장바구니에 담았습니다. \n| 총 가격 : ${g_property.cartList.values.sum()}천원\n${menuTitle[1]}")
print(strTrens(_category))
}
}
```