20231214 (금) 키오스크 프로젝트 제출 및 코딩공부
2023. 12. 15. 20:05ㆍTIL
오전에 코드카타를 진행하고 우리조는 수정할만한게 없어서 제출먼저 했다.
이후에는 12시에 해설영상을 보며 각자의 공부를 진행했다.
나는 일단 우리 조가 짠 코드를 다시 제출하긴 힘들다고 생각해서
(코드가 너무 길기도하고 해설영상 내용을 우리조 코드에 맞출려면 거의 처음부터 다시짜야하는 수준이였다.)
해설 영상을 보고 만약 내가 키오스크 프로젝트를 다시 한다고치면 어떤부분을 이용해볼지 연습?하였다.
나중에 써볼만한 코드
1.디스플레이메뉴
fun displayMenu() {
println("아래 메뉴판을 보시고 메뉴를 골라 입력해주세요.")
println("[ 버거킹 메뉴 ]")
// 메뉴 이름의 여백을 맞추기 위함
// 가장 긴 이름의 길이 얻어옴
val maxNameLength = menus.maxOfOrNull { it.name.length } ?: 0
var menuSize = menus.size
var count = 1
for(idx in 1..menuSize) {
val menu = menus[idx-1]
val name = menu.name
if(name == "Order") println("[ ORDER MENU ]")
val desc = menu.description
val padding = " ".repeat(maxNameLength - name.length)
println("$idx. $name$padding | $desc")
count++
}
println("0. 종료 | 프로그램 종료")
}
우리조도 이런식으로 메뉴판을 띄웠으면 어땟을까 생각했다.
전체메뉴뿐만 아니라 장바구니, 상세메뉴까지 이런식으로 다 가능할것 같다.
무엇보다 리스트를 저장할때
val menus: MutableList<Mainmenus> = ArrayList()
val foods: MutableList<Burgerking> = ArrayList()
menus.add(Mainmenus("DRINK","탄산으로 짜릿하게 즐기세요!"))
foods.add(Burgerking("Whopper", "버거킹의 대표 메뉴 쇠고기패티 와퍼!", 8.0, "Whopper"))
이런식으로 해당되는 부분에 알맞는 내용을 적는 방식이라
관리자모드같은걸로 메뉴판을 코드실행중에 수정, 변경하는 방법도 가능할 것 같았다.
실제로 조금 끄적여본결과
while(true) {
displayMenu()
println("이름")
var name:String= readln()
println("설명")
var desc:String= readln()
println("가격 예시) 8.0")
var price= readln().toDouble()
println("카테고리")
var cate:String= readln()
menus.add(Burgerking(name, desc, price, cate))
println("추가 완료")
}
이런식으로도 메뉴 추가가 가능했다.
이후에는 코드카타도 1번부터 새로 풀어보고 잠시 쉬기도 하면서 7시까지 시간을 보냈다.
7시에는 줌특강으로 이번주차 과제에대해 배웠다.
해설영상에서 다룬 클래스 관련 개념을 좀더 자세하게 풀어주셨고, 직접 코드도 만들면서 진행과정도 보여주셨다.
한가지 내가 기억나는것은 절차지향과 객체지향
여태까지 내가 했던 코딩은 객체지향으로 만들고싶었지만 그러지 못했던거 같다.
오늘의 한마디 : 다음엔 좀더 신경써서 작업해보자!
'TIL' 카테고리의 다른 글
20231219 (화) 피드백 반영 코딩 (1) | 2023.12.19 |
---|---|
20231218 (월) 스프링 입문 시작 + 저번주차 과제물 피드백 반영 (1) | 2023.12.18 |
20231214 (목) 키오스크 프로젝트 마무리 (0) | 2023.12.14 |
20231213 (수) 키오스크 프로젝트 이어서.. (0) | 2023.12.13 |
20231212 (화) 키오스크 프로젝트 (0) | 2023.12.12 |