首页 > 代码库 > C++ Primer 课后习题1.24

C++ Primer 课后习题1.24

原题:

编写程序,读入几笔不同的交易。对于每笔新读入的交易,要确定它的ISBN 是否和以前的交易的ISBN 一样,并且记下每一个ISBN 的交易的总数。

通过给定多笔不同的交易来测试程序。这些交易必须代表多个不同的ISBN,但是每个ISBN的记录应分在同一组。

修改:

要求可随意输入不同的ISBN交易信息,并将输入的所有交易分类别输出。

 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,tatol;11     vector<Sales_item> vctBooks;12     bool flag = true;13     if (cin>>tatol)14     {15          vctBooks.push_back(tatol);16         while (cin>>book)17         {18             vector<Sales_item>::iterator iter;19             int cnt = 0;20              for (iter = vctBooks.begin(); iter != vctBooks.end(); ++iter)21             {22                 cnt++;23                 if (iter->same_isbn(book))24                 {25                     (*iter) += book;26                     flag = false;27                     break;28                 }                29             }30             if(cnt == vctBooks.size() && flag)31             {32                 vctBooks.push_back(book);    33                 flag = true;34                 cnt = 0;35             }else36             {37                 flag = true;38             }39         }40     }41     vector<Sales_item>::iterator iter;42     for (iter = vctBooks.begin(); iter != vctBooks.end(); iter++)43     {44         cout<<*iter<<endl;45     }46     47     return 0;48 }
View Code

 结果:

C++ Primer 课后习题1.24