23.08.25 장바구니 Class 로 구현해보기

2023. 8. 25. 21:05카테고리 없음

구현 설계도👇

 

 

구현 코드👇


import Foundation

print("안녕하세요 !")

class HomeMenu{
    
    func menu(){
        print("""

쿠팡 쇼핑몰 입니다.
구매를 원하시는 물품을 고르세요.

    1. 간식
    2. 생필품
    3. 전자기기

""")
    }
    
}

let Home = HomeMenu()

Home.menu()

class Product{
    
    var snacks = "간식"
    var lifeItem = "생필품"
    var electronic = "전자기기"
    
}

class Item1 : Product{
    
    var snack = "포카칩"
    var snack2 = "초코송이"
    var snack3 = "예감"
    var snack4 = "웨하스"
    var snack5 = "뻥이요"
    
    func my_snack(){
        print("""

1. \(snack) 1500원
2. \(snack2) 800원
3. \(snack3) 1000원
4. \(snack4) 600원
5. \(snack5) 2000원

""")
    }
}

let snack : Item1 = Item1()

class Item2 : Product{
    
    var life = "휴지"
    var life2 = "생수"
    var life3 = "칫솔"
    var life4 = "손톱깎이"
    
    
    func my_life(){
        print("""

1. \(life)
2. \(life2)
3. \(life3)
4. \(life4)

""")
        
    }
    
}
let life : Item2 = Item2()

class Item3 : Product{
    
    var electro = "아이폰"
    var electro2 = "노트북"
    var electro3 = "스피커"
    var electro4 = "냉장고"
    
    func my_electro(){
        print("""

1. \(electro)
2. \(electro2)
3. \(electro3)
4. \(electro4)

""")
    }
}

class ShoppingCart : Product{
    func cart(){
        
    }
}

var money:Int = 10000
var pay = Int(readLine()!)!
var input = Int(readLine()!)!


class Payment : Product{
    
    
    func snackPrice(){
        switch input{
        case 1:
            money -= 1500
            print("\(money -= 1500)원이 남았습니다.")
            
        case 2:
            money -= 800
            print("\(money -= 800)원이 남았습니다.")
        case 3:
            money -= 1000
            print("\(money -= 1000)원이 남았습니다.")
        case 4:
            money -= 600
            print("\(money -= 600)원이 남았습니다.")
        case 5:
            money -= 2000
            print("\(money -= 2000)원이 남았습니다.")

        default:
            print("s")
        }
    }
}

let Pay : Payment = Payment()

let electro : Item3 = Item3()




var cart = Int(readLine()!)!


switch input {
case 1:
    print("""
    간식을 선택하셨습니다.
    장바구니에 넣을 물건을 골라주세요.
""")
    snack.my_snack()
    switch input{
    case 1:
        print("\(snack.snack)을 몇개 넣으시겠어요?")
    case 2:
        print("\(snack.snack2)를 몇개 넣으시겠어요?")
    case 3:
        print("\(snack.snack3)을 몇개 넣으시겠어요?")
    case 4:
        print("\(snack.snack4)를 몇개 넣으시겠어요?")
    case 5:
        print("\(snack.snack5)를 몇개 넣으시겠어요?")
    default:
        print("다시 시작하십시오")
        snack.my_snack()
    }
    
    cart = Int(readLine()!)!
    print("\(cart)개를 장바구니에 담았습니다.")

    Pay.snackPrice()
    
    
    
case 2:
    print("""
    생필품을 선택하셨습니다.
    장바구니에 넣을 물건을 골라주세요.
""")
    life.my_life()
case 3:
    print("""
    전자기기를 선택하셨습니다.
    장바구니에 넣을 물건을 골라주세요.
""")
    electro.my_electro()
default:
    print("""
    다시 입력하십시오.
    장바구니에 넣을 물건을 골라주세요.
""")
    Home.menu()
    
}

input = Int(readLine()!)!

//input()

 

위와 같은 코드로 프로그램을 작동시키면

 

어떤종류의 물품을 원하는지  > 어떤 물품을 원하는지 > 몇개를 장바구니에 담을건지 의 순으로 

진행된다.

 

근데 여기서 잘 되지않은부분이 payment클래스에서 돈을 결제하는 로직을 만드는것과

장바구니에 담았다는수치는 표현이되지만 데이터로써 shoppingcart에 저장시키는 방법을 잘 모르겠다.

 

우선 class 를 만들어서 활용하는방법에 대해 진행한 미션이기때문에 , 어느정도 class의 개념을 이해할 수 있어 좋았다.

 

 

😀오늘의 꿀팁

 

단축어로 만들고싶은 문장 복사해서 우클릭하고 , create code snippet누르면

shift + command + L 누른것같은 창이나오고 , 거기서 단축어등록을 할 수 있다.

Completion에 단축어를 저장해놓으면 ( 아래는 #if )

#if 를 눌렀을때 위에있는 코드가 자동 등록되는 형식이다.

⬆️꿀팁