7.7
//2018年8月17日 练习7.7
Sales_data total;
if (read(cin, total)) {
sales_data trans;
while (read(cin, trans)) {
if (total.isbn() = trans.isbn()) {
total.combine(trans);
}
else {
print(cout, total) << endl;
}
}
print(cout, total) << endl;
}
else {
cerr << "no data?" << endl;
}
7.9
#include "stdafx.h"
#include "iostream"
#include "stddef.h"
#include "string"
#include<vector>
using namespace std;
//2018年8月17日 练习7.7
class person {
private:
string name;
string address;
public:
istream &read(istream &is, person &item)
{
is >> item.name >> item.address;
return is;
}
ostream &print(ostream &os, const person &item)
{
os << item.name << item.address;
return os
}
};
7.11
//2018年8月17日 练习7.7
class sales_data {
public:
sales_data() = default;
sales_data(const string &s):bookNo(s){}
sales_data(const string &s, unsigned num, double sellprice, double saleprice);
sales_data(string &is);
private:
string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
double sellingprice = 0.0;
};
sales_data::sales_data(const string &s) {
s >> *this;
}
sales_data(const string &s, unsigned num, double sellprice, double saleprice) {
bookNo = s;
units_sold = num;
sellingprice = sellprice;
revenue = sellingprice * units_sold;
}
int main()
{
sales_data data1;
sales_data data2("11-11");
sales_data data3("11-11", 10, 15.5, 100);
sales_data data4(cin);
return 0;
}
7.12
class sales_data {
public:
sales_data() = default;
sales_data(const string &s):bookNo(s){}
sales_data(const string &s, unsigned num, double sellprice, double saleprice);
sales_data(string &is) { is >> *this; }
private:
string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
double sellingprice = 0.0;
};
7.14
sales_data(const string &s) : bookNo(s), num(0), sellprice(0), saleprice(0) {}
7.15
class person
{
private:
string strname;
string straddress;
public:
person() = default;
person(const string &name, const string &add)
{
strname = name;
straddress = add;
}
person(istream &is) { is >> *this; }
string getname() const { return strname; }
string getaddress() const { return straddress; }
};