Mencetak Laporan Inventaris
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 34 dari 56.
Tantangan
MudahSelesaikan 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:
- Membuat laporan inventaris lengkap yang menampilkan semua item beserta jumlahnya saat ini
- Menghitung dan menampilkan jumlah total item yang berbeda dalam inventaris
- Menghitung dan menampilkan jumlah total seluruh item
- Mengidentifikasi dan menampilkan item dengan jumlah tertinggi
- 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: 15Statistik 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
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi Vektor5Proyek: Alat Inventaris
Menyiapkan ProyekMenambahkan dan Memperbarui BarangLatihan sendiri: Compiler C++ online