第3章 第9题

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;

class Transaction
{
	public:
		Transaction(int n=0,double p=0,int q=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;//the saler's number
		double price;//the price of each product
		double discount;//The discount of the day
		int quantity;//the number of each transaction
		static double revenu;//the revenu of the whole transactions
		static int q_sum;//the sum of the number of the transations
};

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 the transaction is: "
		<<revenu<<endl
		<<"The average price of the product 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 transactions totally.
	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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值