Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- class Store{
- protected:
- int storeNumber;
- int storeProd;
- public:
- Store(int num=0, int pro=0){
- storeNumber = num;
- storeProd = pro;
- if (num<0) storeNumber = 0;
- if (pro<0) storeProd = 0;
- }
- int receipt(int pro){
- storeProd += pro;
- }
- int issue(int pro){
- if (pro>storeProd) cout<<"Error\n";
- else storeProd -= pro;
- }
- int getProd(){
- return storeProd;
- }
- Store &operator += (int val){
- if (val>0) receipt(val);
- if (val<0) issue(val);
- return *this;
- }
- };
- class reservedStore:public Store{
- public:
- static double lost;
- reservedStore(int num=0, int pro=0):Store(num, pro){
- }
- int calculateLoss(){
- return storeProd - storeProd*lost;
- }
- int calculateLoss(int year){
- for (int i=0; i<year; i++){
- storeProd *= (1.0-lost);
- cout<<storeProd<<" ";
- }
- }
- };
- class DailyStore:public Store{
- public:
- static int promotion;
- DailyStore(int num=0, int prod=0):Store(num, prod){
- }
- int issue(int val){
- if (val<storeProd){
- Store::issue(val);
- storeProd-=promotion;
- }
- else cout<<"Error\n";
- }
- };
- int DailyStore::promotion=20;
- double reservedStore::lost=0.05;
- int main (){
- Store s(1001, 500);
- s.issue(10);
- s.receipt(5);
- cout<<s.getProd()<<endl;
- reservedStore rs1(1002,100), rs2(1003, 200);
- cout<<rs1.calculateLoss()<<" "<<rs2.calculateLoss()<<endl;
- rs1.issue(20);
- rs1.receipt(15);
- rs2.issue(15);
- rs2.receipt(20);
- reservedStore::lost = 0.1;
- cout<<rs1.calculateLoss()<<" "<<rs2.calculateLoss()<<endl;
- DailyStore ds1(1004, 1000), ds2(1005, 400);
- ds1.receipt(50);
- ds1.issue(100);
- ds2.issue(200);
- ds2.receipt(100);
- cout<<ds1.getProd()<<" "<<ds2.getProd()<<endl;
- DailyStore::promotion=50;
- ds1.receipt(50);
- ds1.issue(100);
- ds2.issue(200);
- ds2.receipt(100);
- cout<<ds1.getProd()<<" "<<ds2.getProd()<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement