Birleştirme
- Dart kursu
- Başlangıç
- Ders 52/116
- 6 dk
Sepet sınıfını menü döngüsüyle birleştirirsin.
Birleştirme
Tüm parçalar hazır: Cart sınıfı, addItem, getSubtotal ve printCart metotları. Şimdi bunları main akışında birleştirip sepette iki ürün oluşturacak, sepeti yazdıracak ve hem ara toplamı hem de vergili toplamı göstereceğiz.
Bu aşamada her metot kendi görevini yapar; main yalnızca sırayla çağırır. İyi tasarlanmış bir program, metotların küçük ve odaklanmış olmasıyla ölçeklenir. Sepete daha sonra yeni bir özellik eklemek istersen, ilgili metodu değiştirmen yeterli olur.
Menü döngüsü
Bu projedeki main akışı basit: iki ürün ekle, sepeti yazdır, ara toplam ve vergili toplamı göster. Gerçek bir uygulamada, kullanıcıdan sürekli giriş almak için bir menü döngüsü kurulabilir; kullanıcı 'çıkış' yazana kadar döngü devam eder.
Bu derste main tek seferlik bir akış olacak. while ve do-while döngülerini önceki bölümde öğrendin; ileride bunlarla bir menü döngüsü kurabilirsin. Şimdilik tüm parçaların doğru sırayla çağrıldığını doğrulamak önemli.
Uygulama main fonksiyonunu yaz
Bir main fonksiyonu yaz. var cart = Cart(); ile sepet yarat. cart.addItem("Defter", 25.0); ve cart.addItem("Kalem", 10.0); ile iki ürün ekle. cart.printCart(); ile sepeti yazdır. print(cart.getSubtotal()); ile ara toplamı, print(cart.getSubtotal() * 1.20); ile vergili toplamı yazdır. Çıktı 4 satır olmalı: Defter 25.0, Kalem 10.0, 35.0, 42.0.
Başlangıç kodu
class Cart {
List<String> names = [];
List<double> prices = [];
void addItem(String name, double price) {
names.add(name);
prices.add(price);
}
double getSubtotal() {
double sum = 0;
for (var p in prices) {
sum += p;
}
return sum;
}
void printCart() {
for (var i = 0; i < names.length; i++) {
print("${names[i]} ${prices[i]}");
}
}
}
}
// main fonksiyonunu buraya yazÖrnek çözüm
class Cart {
List<String> names = [];
List<double> prices = [];
void addItem(String name, double price) {
names.add(name);
prices.add(price);
}
double getSubtotal() {
double sum = 0;
for (var p in prices) {
sum += p;
}
return sum;
}
void printCart() {
for (var i = 0; i < names.length; i++) {
print("${names[i]} ${prices[i]}");
}
}
}
}
void main() {
var cart = Cart();
cart.addItem("Defter", 25.0);
cart.addItem("Kalem", 10.0);
cart.printCart();
print(cart.getSubtotal());
print(cart.getSubtotal() * 1.20);
}Beklenen çıktı
Defter 25.0 Kalem 10.0 35.0 42.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 vergili toplam satırını yaz
cart.printCart();
print(cart.getSubtotal());
print(cart.getSubtotal() ____);
cart.printCart();
print(cart.getSubtotal());
print(cart.getSubtotal() * 1.20);
Açıklama: * 1.20 ile %20 vergi eklenmiş toplam hesaplanır.
2 Birleştirme aşamasında hangi yapı tüm parçaları çağırır?
// tümleşik akış- for
- class
- main fonksiyonu Doğru cevap
- if
Açıklama: main fonksiyonu tüm metotları sırayla çağırır.
3 Parçayı işleve eşle
| Kavram | Anlamı |
|---|---|
addItem |
Sepete ürün ekler |
printCart |
Sepeti gösterir |
getSubtotal |
Ara toplamı verir |
* 1.20 |
Vergili toplamı verir |