main源代码:
# include <iostream>
# include "Sales_item.h"
using namespace std;
int main()
{
Complex book1, book2, book3;
cin >> book1 >> book2;
book3 = (book1 + book2);
cout << book3;
system("pause");
return 0;
}
Sales_item源代码:
# include <string>
# include <iostream>
# include <iomanip>
using namespace std;
class Complex
{
public:
Complex();
Complex operator + (Complex & c2);
friend istream & operator >> (istream &, Complex &);
friend ostream & operator << (ostream &, Complex &);
Complex operator = (Complex &);
private:
string order_number;
int number;
double price;
double sum;
double average;
};
Complex::Complex()
{
order_number = "ABC-ABC";
price = 0;
number = 0;
sum = price * number;
average = 0;
}
Complex Complex::operator + (Complex & c2)
{
Complex c3;
if(order_number == c2.order_number)
{
c3.order_number = order_number;
c3.number = number + c2.number;
c3.price = (price * number + c2.price * c2.number) / (number + c2.number);
c3.order_number = order_number;
c3.sum = price * number + c2.price * c2.number;
}
return c3;
}
istream & operator >> (istream & input, Complex & c)
{
cout << "please input order-number number price:\n";
input >> c.order_number
>> c.number
>> c.price;
return input;
}
ostream & operator << (ostream & output, Complex &c)
{
cout << setiosflags(ios::left)
<< setw(20) << "order-number"
<< setw(8) << "number"
<< setw(12) << "unit-price"
<< setw(8) << "total"
<< setw(8) << "average"
<< endl;
output << setw(20)
<< c.order_number
<< setw(8)
<< c.number
<< setw(12)
<< c.price
<< setw(8)
<< c.sum
<< setw(8)
<< c.price
<< endl;
return output;
}
Complex Complex::operator = (Complex &)
{
Complex c3;
c3.order_number = order_number;
c3.number = number;
c3.price = price;
c3.sum = sum;
c3.average = average;
return c3;
}