프로젝트 설명
콘솔에서 입력받아 상품을 장바구니에 넣고 총합을 출력하는
콘솔 쇼핑몰을 구현하고자 했다.
구현해야 하는 기능
1. 상품 목록 출력
2. 상품 입력 받아 장바구니에 넣기
3. 장바구니에 있는 상품들의 총합 출력하기
4.장바구니 비우기
5. 프로그램 종료하기
기능 구현
class Product {
String name = '';
int price = 0;
Product();
}
class ShoppingMall extends Product {
List<Product> Product_list = [];
...
void main() {
ShoppingMall shoppingMall = ShoppingMall();
//객체 생성
Product shirt =Product();
shirt.name = '셔츠';
shirt.price = 45000;
우선 상품의 이름과 가격을 변수로 가지는 Product 클래스를 생성하여
그 클래스를 상속받는 ShoppingMall 클래스를 생성해주었다.
클래스는 상속 받았는데.. 값을 어떻게 넣어야 할 지 모르겠어서 고민하다가
ShoppingMall 클래스에 Product를 받는 리스트를 선언해주고
main에서 객체를 생성해주었다.
void addProduct(Product product){
Product_list.add(product);
}
ShoppingMall 클래스에서 객체를 리스트에 넣어주는 메서드를 만들어주었다.
void showProducts(){
for (var product in Product_list) {
print('${product.name} / ${product.price}원');
}
}
위의 과정을 끝내고 나니 나머지 기능은 손쉽게 구현할 수 있었다.
모든 객체를 출력하는 메서드를 만들었다.
List<Product> cartList = [];
void addToCart(){
int inputError = 0;
print('상품 이름을 입력해 주세요!');
String? inputItem = stdin.readLineSync();
print('상품 개수를 입력해 주세요!');
String? inputnum = stdin.readLineSync();
for(var product in Product_list){
if(inputItem==product.name){
for(int i=0;i<int.parse(inputnum!);i++){
cartList.add(product);
inputError++;
}
print('장바구니에 상품이 담겼어요');
}
}
if(inputError == 0){
print('입력값이 잘못 되었습니다!');
}
}
사용자가 원하는 상품을 담을 카트 리스트를 만들어주고
사용자에게 상품의 이름과 개수를 입력받아 장바구니에 넣어주었다.
만약 생성된 객체와 일치하지 않는 상품명이면 입력값이 잘못 되었다고 출력하도록 구현했다.
void showTotal(){
totalPrice = 0;
List<String> inCartList = [];
List<String> showCartList = [];
for(var product in cartList){
totalPrice += product.price;
inCartList.add(product.name);
}
showCartList = inCartList.toSet().toList();
if (totalPrice != 0){
print('장바구니에 $showCartList 가 담겨있네요. 총 $totalPrice 원 입니다!');
}else{
print('장바구니에 담긴 상품이 없습니다!');
}
}
카트에 있는 상품을 불러와 총합을 계산해주는 기능을 구현했다.
도전 기능으로 상품명과 총합을 함께 출력해주고
장바구니에 상품이 존재하지 않을 경우에는 다른 문구를 출력하도록 구현했다.
구현된 기능 보기
1. 상품 목록 출력
2. 상품 입력 받아 장바구니에 넣기
3. 장바구니에 있는 상품들의 총합 출력하기
4.장바구니 비우기
5. 프로그램 종료하기
'TIL' 카테고리의 다른 글
[TIL] 비동기 프로그래밍 (0) | 2024.11.04 |
---|---|
[TIL] 예외/오류 (0) | 2024.11.01 |
[TIL] dart 클래스 (0) | 2024.10.30 |
[TIL] dart 문법 함수 (0) | 2024.10.29 |
[TIL] Dart 문법 기초 (0) | 2024.10.28 |