Menu
CoddyTech

Mencetak Laporan Inventaris

Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 34 dari 56.

challenge icon

Tantangan

Mudah

Selesaikan sistem pelacakan inventarismu dengan menerapkan fitur laporan inventaris yang lengkap. Pelajaran terakhir ini menunjukkan cara melakukan iterasi melalui seluruh map dan menyajikan semua data yang tersimpan dalam format yang rapi dan teratur.

Mulailah dengan inventaris berikut:

map<string, int> inventory = {
    {"apples", 50},
    {"bananas", 30},
    {"oranges", 25},
    {"grapes", 40},
    {"strawberries", 15}
};

Programmu harus:

  1. Membuat laporan inventaris lengkap yang menampilkan semua item beserta jumlahnya saat ini
  2. Menghitung dan menampilkan jumlah total item yang berbeda dalam inventaris
  3. Menghitung dan menampilkan jumlah total seluruh item
  4. Mengidentifikasi dan menampilkan item dengan jumlah tertinggi
  5. Mengidentifikasi dan menampilkan item dengan jumlah terendah

Gunakan format output berikut secara persis:

Header laporan inventaris:

===== INVENTORY REPORT =====

Semua item (dalam urutan alfabetis):

apples: 50
bananas: 30
grapes: 40
oranges: 25
strawberries: 15

Statistik ringkasan:

===== SUMMARY =====
Total items: 5
Total quantity: 160
Highest stock: apples (50)
Lowest stock: strawberries (15)

Gunakan range-based for loop untuk melakukan iterasi melalui seluruh map inventaris. Untuk setiap pasangan kunci-nilai, akses nama item dengan pair.first dan jumlahnya dengan pair.second. Map secara otomatis mempertahankan urutan alfabetis saat dilakukan iterasi, jadi kamu tidak perlu melakukan pengurutan tambahan.

Untuk menemukan item dengan jumlah terendah, inisialisasi variabel lowestQuantity dengan INT_MAX (nilai integer terbesar yang mungkin, tersedia setelah menyertakan <climits>). Ini memastikan jumlah item pertama akan selalu lebih kecil daripada nilai awal, sehingga perbandingan bekerja dengan benar tanpa bergantung pada jumlah sebenarnya dalam inventaris.

Coba sendiri

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Initialize inventory with existing items
    map<string, int> inventory;
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i++) {
        string itemName;
        int quantity;
        cin >> itemName >> quantity;
        
        if (inventory.count(itemName) == 0) {
            cout << "Error: " << itemName << " not found in inventory" << endl;
        } else if (inventory[itemName] < quantity) {
            cout << "Error: Cannot remove " << quantity << " " << itemName << ". Only " << inventory[itemName] << " in stock" << endl;
        } else {
            inventory[itemName] -= quantity;
            cout << "Removed " << quantity << " " << itemName << ". New total: " << inventory[itemName] << endl;
        }
    }
    
    cout << "Final Inventory:" << endl;
    for (auto& item : inventory) {
        cout << item.first << ": " << item.second << endl;
    }
    
    return 0;
}

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online