Advertisement
thangt02ptit

bài 2 thi C++ An

Jan 4th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.33 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. class Store{
  5.     protected:
  6.         int storeNumber;
  7.         int storeProd;
  8.     public:
  9.         Store(int num=0, int pro=0){
  10.             storeNumber = num;
  11.             storeProd = pro;
  12.             if (num<0) storeNumber = 0;
  13.             if (pro<0) storeProd = 0;
  14.         }
  15.         int receipt(int pro){
  16.             storeProd += pro;
  17.         }
  18.         int issue(int pro){
  19.             if (pro>storeProd) cout<<"Error\n";
  20.             else storeProd -= pro;
  21.         }
  22.         int getProd(){
  23.             return storeProd;
  24.         }
  25.         Store &operator += (int val){
  26.             if (val>0) receipt(val);
  27.             if (val<0) issue(val);
  28.             return *this;
  29.         }
  30. };
  31.  
  32. class reservedStore:public Store{
  33.     public:
  34.         static double lost;
  35.         reservedStore(int num=0, int pro=0):Store(num, pro){
  36.         }
  37.         int calculateLoss(){
  38.             return storeProd - storeProd*lost;
  39.         }
  40.         int calculateLoss(int year){
  41.             for (int i=0; i<year; i++){
  42.                 storeProd *= (1.0-lost);
  43.                 cout<<storeProd<<" ";
  44.             }
  45.         }
  46. };
  47.  
  48. class DailyStore:public Store{
  49.     public:
  50.         static int promotion;
  51.         DailyStore(int num=0, int prod=0):Store(num, prod){
  52.         }
  53.         int issue(int val){
  54.             if (val<storeProd){
  55.                 Store::issue(val);
  56.                 storeProd-=promotion;
  57.             }
  58.             else cout<<"Error\n";
  59.         }
  60. };
  61.  
  62. int DailyStore::promotion=20;
  63. double reservedStore::lost=0.05;
  64.  
  65. int main (){
  66.     Store s(1001, 500);
  67.     s.issue(10);
  68.     s.receipt(5);
  69.     cout<<s.getProd()<<endl;
  70.     reservedStore rs1(1002,100), rs2(1003, 200);
  71.     cout<<rs1.calculateLoss()<<" "<<rs2.calculateLoss()<<endl;
  72.     rs1.issue(20);
  73.     rs1.receipt(15);
  74.     rs2.issue(15);
  75.     rs2.receipt(20);
  76.     reservedStore::lost = 0.1;
  77.     cout<<rs1.calculateLoss()<<" "<<rs2.calculateLoss()<<endl;
  78.     DailyStore ds1(1004, 1000), ds2(1005, 400);
  79.     ds1.receipt(50);
  80.     ds1.issue(100);
  81.     ds2.issue(200);
  82.     ds2.receipt(100);
  83.     cout<<ds1.getProd()<<" "<<ds2.getProd()<<endl;
  84.     DailyStore::promotion=50;
  85.     ds1.receipt(50);
  86.     ds1.issue(100);
  87.     ds2.issue(200);
  88.     ds2.receipt(100);
  89.     cout<<ds1.getProd()<<" "<<ds2.getProd()<<endl;
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement