#include<iostream> #include<string> #include<vector> using namespace std; struct phone_book{ string name; int number; }; vector<phone_book>phone_books; bool accept() { cout<<"Do you want to proceed(y or n)?\n"; char answer=0; cin>>answer; switch(answer){ case'y':return true; case'n':return false; default: cout<<"I'll take that for a no.\n"; return false; } } void Creat_data(){ string str; int num; for(;;) { cout<<"输入,用回车符间隔:姓名 号码\n"; cout<<"姓名:\t"; cin>>str; cout<<"号码:\t"; cin>>num; phone_book pb; pb.name=str; pb.number=num; phone_books.push_back(pb); if(!accept())break; } } void Print_books(){ for(int i=0;i<phone_books.size();i++) cout<<phone_books[i].name<<'\t'<<phone_books[i].number<<endl; } int& Search(){ string str; cout<<"姓名:\t"; cin>>str; for(int i=0;i<phone_books.size();i++) if(phone_books[i].name==str) return phone_books[i].number; /*phone_book pb; pb.name=str; pb.number=0; phone_books.push_back(pb); return phone_books[order].number;*/ } int ShowMainMenu(){ //显示菜单栏 int c; cout<<"请选择:首次使用,建议先选择1\n"; cout<<"1:Enter data\n2:print data\n3:search data\n0:quit"<<endl; cin>>c;cin.get(); return c; } void main(){ for(;;){ int choice; choice=ShowMainMenu(); switch(choice){ case 1:Creat_data();break; case 2:Print_books();break; case 3:for(;;){ cout<<Search()<<endl; if(!accept())break; }break; case 0:exit(1); } } return; } 很简单的一个电话卡程序,准备在看完The C++ programming languge后再添加 一个处理异常的函数及输入输出文件(目前我的编译器无法处理流的重载运算符),然后就是添加删除数据诸如之类完善功能的接口;当然作为实验,也会进行名字空间域的处理,另外看看标准库有没关于这方面的有用的程序;

评论