프로젝트 설정
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 33번째.
챌린지
쉬움실제 애플리케이션에서 서로 다른 데이터 구조가 어떻게 함께 작동하는지 보여주는 간단한 쇼핑카트 계산기를 만들어 보겠습니다.
이커머스 애플리케이션에 필요한 필수 데이터 구조를 초기화하여 쇼핑카트 계산기 시스템의 기초를 설정하는 프로그램을 작성하세요. 프로그램의 요구 사항은 다음과 같습니다:
- 상점 이름을 나타내는 문자열 입력을 읽습니다.
- 제품 이름과 가격을 나타내는 여러 쌍의 입력을 읽습니다 (입력은
"products_done"을 받으면 종료됩니다). - 제품 이름을 키(key)로, 가격을 값(value)으로 하여 판매 가능한 제품을 저장할 Map을 생성합니다.
- 쇼핑카트를 나타내는 빈 List를 생성합니다.
- 초기 설정 정보를 표시하고 데이터 구조가 올바르게 초기화되었는지 확인합니다.
- 아래에 표시된 정확한 형식으로 상점 설정 보고서를 출력합니다.
예를 들어, 상점 이름이 "Fresh Market"이고 제품에 가격이 1.50인 "Apple", 가격이 0.80인 "Banana", 가격이 2.00인 "Orange", 가격이 3.25인 "Milk"가 포함된 경우 프로그램은 다음과 같이 출력해야 합니다:
Store: Fresh Market
Product Catalog Setup:
Available Products: {Apple: 1.5, Banana: 0.8, Orange: 2.0, Milk: 3.25}
Shopping Cart Initialized: []
System Status:
Total products available: 4
Cart status: Empty
Most expensive item: Milk ($3.25)
Cheapest item: Banana ($0.80)
Average product price: $1.84
Setup Status: Shopping cart system ready for customers상점 이름이 "Tech Store"이고 제품에 가격이 999.99인 "Laptop", 가격이 25.50인 "Mouse", 가격이 75.00인 "Keyboard"가 포함된 경우 프로그램은 다음과 같이 출력해야 합니다:
Store: Tech Store
Product Catalog Setup:
Available Products: {Laptop: 999.99, Mouse: 25.5, Keyboard: 75.0}
Shopping Cart Initialized: []
System Status:
Total products available: 3
Cart status: Empty
Most expensive item: Laptop ($999.99)
Cheapest item: Mouse ($25.50)
Average product price: $366.83
Setup Status: Shopping cart system ready for customers상점 이름이 "Book Corner"이고 제품에 가격이 12.99인 "Novel", 가격이 4.50인 "Magazine", 가격이 89.00인 "Textbook", 가격이 3.99인 "Comic", 가격이 15.75인 "Journal"이 포함된 경우 프로그램은 다음과 같이 출력해야 합니다:
Store: Book Corner
Product Catalog Setup:
Available Products: {Novel: 12.99, Magazine: 4.5, Textbook: 89.0, Comic: 3.99, Journal: 15.75}
Shopping Cart Initialized: []
System Status:
Total products available: 5
Cart status: Empty
Most expensive item: Textbook ($89.00)
Cheapest item: Comic ($3.99)
Average product price: $25.25
Setup Status: Shopping cart system ready for customers프로그램은 String 키(제품 이름)와 double 값(가격)을 가진 Map과 쇼핑카트를 위한 빈 String List를 생성해야 합니다. 제품 Map의 모든 가격을 비교하여 가장 비싼 품목과 가장 저렴한 품목을 찾으세요. 모든 가격의 합계를 제품 수로 나누어 평균 가격을 계산하세요. 표시를 위해 평균값은 소수점 둘째 자리까지 반올림합니다. 입력 형식은 상점 이름, 그 다음 제품 이름과 가격(double로 변환해야 하는 문자열)이 번갈아 나오며, "products_done"으로 끝납니다.
직접 해보기
import 'dart:io';
void main() {
// 상점 이름 읽기
String? storeName = stdin.readLineSync();
// 데이터 구조 초기화
Map<String, double> products = {};
List<String> shoppingCart = [];
// "products_done"이 입력될 때까지 제품 읽기
while (true) {
String? input = stdin.readLineSync();
if (input == "products_done") {
break;
}
String productName = input!;
String? priceInput = stdin.readLineSync();
double price = double.parse(priceInput!);
// 맵에 제품 추가
products[productName] = price;
}
// TODO: 통계를 계산하고 보고서를 생성하기 위해 아래에 코드를 작성하세요
// 상점 설정 보고서 출력
// 출력 결과는 예시에 표시된 정확한 형식과 일치해야 합니다
}로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구