学习项目:
4.加入 Benevolent Order ofProgrammer后,在 BOP 大会上,人们便可以通过加入者的真实姓名、头衔或秘密 BOP姓名来了解他(她)。
请编写一个程序,可以使用真实姓名、头衔、秘密姓名或成员偏好来列出成员。编写该程序时,请使用下面的结构:
//Benevolent Order of Programmers name structure
struct bop {
char fullname[strsize];//real name
char titlelstr[size];// job title
char bopnamelstr[size];//secret Bop name
int preference; //0=fullname,1=title,2=bopname
};
该程序创建一个由上述结构组成的小型数组,并将其初始化为适当的值。另外,该程序使用一个循环让用户在下面的选项中进行选择:
a.display by name b.display by title
c.display by bopname d.display by preference
q.quit
注意,“display by preference”并不意味着显示成员的偏好,而是意味着根据成员的偏好来列出成员。
例如,如果偏好号为1,则选择d将显示程序员的头衔。该程序的运行情况如下 :
Benevolent Order ofProgrammers Report
a.display by nameb.display by title
c.display by bopnamed.display by preference
q.quit
Enter your choice : a
Wimp Macho
Raki Rhodes
Celia Laiter
Hoppy Hipman
Pat Hand
Next choice : d
wimp Macho
Junior Programmer
MIPS
Analyst Trainee
LOOPY
Next choice : q
Bye !
这里由于翻译的原因,攒齐把d菜单改为如下的意思,起始我并没有理解他这句话的意思,
#pragma region 练习4.cpp
/*
*/
#if 1
#include <iostream>
#include<cctype>
#include <string.h>
const unsigned strsize = 20;
const unsigned size = 20;
enum pref_t
{
FULLNAME,
TITLE,
BOPNAME
};
//Benevolent Order of Programmers name structure
struct bop {
char fullname[strsize]; //真实姓名
char titlelstr[size]; // 职称
char bopnamelstr[size]; //乳名
pref_t preference; //偏好
};
int main()
{
using namespace std;
bop people[5] = {
{"阳 阳","工程师","苹果",TITLE},
{"小 汪","消防师","梨子",BOPNAME},
{"刘 效力","注册师","杆子",FULLNAME},
{"赵 效力","电子师","橙子",TITLE},
{"忘 效力","攻防师","葡萄",BOPNAME}
};
cout << "a.display by name\t" << "b.display by title" << endl;
cout << "c.display by bopname\t" << "b.display by preference" << endl;
cout << "q.Quit" << endl;
char ch;
cout << "Enter your choice:";
while (cin >> ch && ch != 'q')
{
switch (ch)
{
case 'a':
for (int i = 0; i < 5; i++)
{
cout << people[i].fullname << endl;
}
break;
case 'b':
for (int i = 0; i < 5; i++)
{
cout << people[i].titlelstr << endl;
}
break;
case 'c':
for (int i = 0; i < 5; i++)
{
cout << people[i].bopnamelstr << endl;
}
break;
case 'd':
for (int i = 0; i < 5; i++)
{
cout << people[i].titlelstr << "\t" << people[i].fullname << endl;
}
break;
default:
break;
}
cout << "a.display by name\t" << "b.display by title" << endl;
cout << "c.display by bopname\t" << "b.display by preference" << endl;
cout << "q.Quit" << endl;
}
return 0;
}
#endif
#pragma endregion
这里,基本能满足项目题目要求,所以题目完成