原题:
编写程序,读入几笔不同的交易。对于每笔新读入的交易,要确定它的ISBN 是否和以前的交易的ISBN 一样,并且记下每一个ISBN 的交易的总数。
通过给定多笔不同的交易来测试程序。这些交易必须代表多个不同的ISBN,但是每个ISBN的记录应分在同一组。
修改:
要求可随意输入不同的ISBN交易信息,并将输入的所有交易分类别输出。(Sales_item.h 到官网下载)
1 #include <iostream> 2 #include <vector> 3 #include "Sales_item.h" 4 #include <algorithm> 5 using namespace std; 6 7 int main() 8 { 9 cout<<"输入交易信息:"<<endl; 10 Sales_item book,firstbook; 11 vector<Sales_item> vctBooks; 12 bool flag = true; //vctBooks中是否需要push数据,true需要push 13 if (cin>>firstbook) 14 { 15 vctBooks.push_back(firstbook); 16 while (cin>>book) 17 { 18 vector<Sales_item>::iterator iter; 19 for (iter = vctBooks.begin(); iter != vctBooks.end(); ++iter) 20 { 21 //如果有相同书目则相加,将flag设为false 22 if (iter->same_isbn(book)) 23 { 24 (*iter) += book; 25 flag = false; 26 break; 27 } 28 } 29 if(flag) 30 { 31 vctBooks.push_back(book); 32 } 33 //将flag重置为ture 34 flag = true; 35 } 36 } 37 vector<Sales_item>::iterator iter; 38 for (iter = vctBooks.begin(); iter != vctBooks.end(); iter++) 39 { 40 cout<<*iter<<endl; 41 } 42 43 return 0; 44 }
结果: