#include <iostream>
const int strsize=20;
struct bop {
char fullname[strsize];
char title[strsize];
char bopname[strsize];
int preference;//0=fullname 1=title 2=bopname
};
int main()//主函数
{
using namespace std;
const int size=5;
bop stru[size]={ //初始化结构数组
{"王","程序员","wang",2},
{"李","数学家","li",1},
{"史","高级程序员","shi",1},
{"孟","工程师","meng",0},
{"肖","设计师","xiao",2}
};
cout << "Benevolent Order of Programmers Report/n"
<<"a. display by name b. display by title/n"
<<"c. display by bopname d. display by preference/n"
<<"q. quit/n";
cout << "Enter your choice: ";
char ch;
cin >>ch;
while (ch!='q') //ch不是q时循环
{
if (!(ch>='a'&&ch<='d')) //ch不在a到d之间,重新选择
cout << "Please enter a a,b,c,d or q: ";
else if (ch>='a'&&ch<='d') //ch在a到d之间选择分支语句
{
switch (ch)
{
case 'a':for (int i=0;i<size;++i)
{
cout <<stru[i].fullname <<endl;
}
cout <<"Next choice: ";
break;
case 'b':for (int i=0;i<size;++i)
{
cout <<stru[i].title <<endl;
}
cout <<"Next choice: ";
break;
case 'c':for (int i=0;i<size;++i)
{
cout <<stru[i].bopname <<endl;
}
cout <<"Next choice:";
break;
case 'd':for (int i=0;i<size;++i)
{
if (stru[i].preference==0)
cout << stru[i].fullname<<endl;
else if (stru[i].preference==1)
cout <<stru[i].title <<endl;
else cout <<stru[i].bopname <<endl;
}
cout <<"Next choice: ";
break;
}
}
cin >>ch;//再次输入ch
}
cout <<"Bye!/n";
return 0;
}