#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Transaction
{
public:
Transaction(int n=0,double p=0,intq=0,double
d=1):num(n),price(p),quantity(q),discount(d){}
static double average();
static void display();
void show();
void total();
private:
int num;//卖方的数量
double price;//每个产品的价格
double discount;//一天的折扣
int quantity;//每个事务的数量
static double revenu;//revenu整个事务
static int q_sum;//交易数量的总和
};
//initialize the static data members
double Transaction::revenu=0;
int Transaction::q_sum=0;
double Transaction::average()
{
return revenu/q_sum;
}
void Transaction::total()
{
q_sum+=quantity;
//if more than or equal with 10, 2%discount plus
double discount_plus;
if(quantity>=10)
discount_plus=0.98;
else
discount_plus=1;
revenu+=discount*discount_plus*price*quantity;
}
void Transaction::display()
{
cout<<"The revenu of all thetransaction is: "
<<revenu<<endl
<<"The average price of theproduct is: "
<<average()<<endl;
}
void Transaction::show()
{
cout<<setw(10)<<num
<<setw(10)<<setiosflags(ios::fixed)<<setprecision(2)<<price<<setw(10)<<quantity
<<setw(10)<<setiosflags(ios::fixed)<<setprecision(2)<<revenu<<setw(10)<<q_sum<<endl;
}
int main()
{
const int number=3;//3 transactionstotally.
Transaction t[number]=
{
Transaction(101,23.5,5),
Transaction(102,24.56,12),
Transaction(103,21.5,100),
};
for(int i=0;i<number;i++)
{
t[i].total();
t[i].show();
}
Transaction::display();
return 0;
}