会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
spring学习笔记
C++ Primer 第10章 习题10.25
//10.25.cpp //定义一个vector容器,存储在未来6个月里要阅读的书的名字 //定义一个set,用于记录已经看过的书名。 //本程序支持从vector中选择一本没有读过而现在要读的书。 //并且支持从已读数目的set中删除书的记录 //在虚拟的6个月后,输出已读和还没有读的书目 #include<iostream> #include<set> #include<vector> #include<string> #include<cstdlib> #include<ctime> using namespace std; int main() { vector<string> books; set<string> readedbooks; string name; //建立保存未来6个月要阅读的书名的vector cout<<"Enter names for books you'd like to read (Ctrl-z to end):" <<endl; while(cin>>name) books.push_back(name); cin.clear(); //使流对象重新有效 bool timeOver=false; string answer, bookName; //用当前系统时间设置随机数发生种子 srand((unsigned)time(NULL)); //模拟随时间的流逝而改变读书记录 while(!timeOver&& !books.empty()) { //时间未到6个月且还有书没有度过 cout<<"Would you like to read a book?(Yes/No)"<<endl; cin>>answer; if(answer[0]=='y'||answer[0]=='Y') //在vector中随机选择一本书 { int i=rand()%books.size(); //产生一个伪随机数 bookName=books[i]; cout<<"You can read this book:" <<bookName<<endl; readedbooks.insert(bookName); //将该书放入已读集合 books.erase(books.begin()+i); //从vector对象中删除该书 cout<<"Did you read it?(Yes/No)"<<endl; cin>>answer; if(answer[0]=='n'||answer[0]=='N') { //没有读这本书 readedbooks.erase(bookName); //从已读集合中删除该书 books.push_back(bookName); } } cout<<"Time over?(Yes/No)"<<endl; cin>>answer; if(answer[0]=='y'||answer[0]=='Y') { timeOver=true; } } if(timeOver)//虚拟的6个月结束了 { //输出已读书目 cout<<"books read:"<<endl; for(set<string>::iterator sit=readedbooks.begin(); sit!=readedbooks.end();++sit) cout<<*sit<<endl; //输出还没有读的数目 cout<<"books not read:"<<endl; for(vector<string>::iterator vit=books.begin(); vit!=books.end();++vit) cout<<*vit<<endl; } else cout<<"Congratulations! You have read all these books." <<endl; return 0; }
posted on
2012-02-25 15:23
spring学习笔记
阅读(
115
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
联系
订阅
管理
公告