Advertisement
ghifarazka

kalori

Mar 25th, 2023
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.35 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. class Makanan {
  5.     protected:
  6.         string nama;
  7.         int A, B;
  8.         int gula, karbo;
  9.     public:
  10.         void set(string nam, int gul, int kar) { nama=nam; gula=gul; karbo=kar; }
  11.         string getNama() { return nama; }
  12.         virtual int getKalori() = 0;
  13. };
  14.  
  15. class KayaKalori : public Makanan {
  16.     private:
  17.         int A = 50;
  18.         int B = 20;
  19.     public:
  20.         int getKalori() { return (A * gula + B * karbo); }
  21. };
  22.  
  23. class KayaNutrisi : public Makanan {
  24.     private:
  25.         int A = 20;
  26.         int B = 10;
  27.     public:
  28.         int getKalori() { return (A * gula + B * karbo); }
  29. };
  30.  
  31. class DaftarMakanan {
  32.     private:
  33.         vector<KayaKalori> list_kalori;
  34.         vector<KayaNutrisi> list_nutrisi;
  35.     public:
  36.         void addKalori(KayaKalori mak) {
  37.             list_kalori.push_back(mak);
  38.         }
  39.  
  40.         void addNutrisi(KayaNutrisi mak) {
  41.             list_nutrisi.push_back(mak);
  42.         }
  43.  
  44.         int getTotalKalori() {
  45.             int sum = 0;
  46.             for(int i=0; i<list_kalori.size(); i++) {
  47.                 sum += list_kalori[i].getKalori();
  48.             }
  49.             for(int i=0; i<list_nutrisi.size(); i++) {
  50.                 sum += list_nutrisi[i].getKalori();
  51.             }
  52.             return sum;
  53.         }
  54.  
  55.         void printKalori1000() {
  56.             for(int i=0; i<list_kalori.size(); i++) {
  57.                 if (list_kalori[i].getKalori() > 1000) {
  58.                     cout << list_kalori[i].getNama() << endl;
  59.                 }
  60.             }
  61.             for(int i=0; i<list_nutrisi.size(); i++) {
  62.                 if (list_nutrisi[i].getKalori() > 1000) {
  63.                     cout << list_nutrisi[i].getNama() << endl;
  64.                 }
  65.             }
  66.         }
  67. };
  68.  
  69.  
  70. int main(void) {
  71.     int n; DaftarMakanan daftar;
  72.     string nama, jenis; int gula, karbo;
  73.  
  74.     cin >> n;
  75.     for(int i=0; i<n; i++) {
  76.         cin >> nama >> jenis >> gula >> karbo;
  77.         if (jenis == "Kalori") {
  78.             KayaKalori temp; temp.set(nama, gula, karbo);
  79.             daftar.addKalori(temp);
  80.         }
  81.         else if (jenis == "Nutrisi") {
  82.             KayaNutrisi temp; temp.set(nama, gula, karbo);
  83.             daftar.addNutrisi(temp);
  84.         }
  85.     }
  86.  
  87.     cout << daftar.getTotalKalori() << endl;
  88.     daftar.printKalori1000();
  89.  
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement