C++ Primer Plus 6th 6.11 编程练习题 第4题 菜单选择显示BOP的成员

2079 人浏览 | 时间: 2019-05-04 18:37:58 | 作者: codexia 会员文章,禁止转载

题目:

4.加入Benevolent Order of Programmer后,在BOP大会上,人们便可以通过加入者的真实姓名、头衔或秘密BOP姓名来了解他(她)。请编写一个程序,可以使用真实姓名、头衔、秘密姓名或成员偏好来列出成员。编写该程序时,请使用下面的结构:

// Benevolent Order of Programmers name structure
struct bop{
    char fullname[strsize]; // real name
    char title [strsize];   // job title
    char bopname[strsize];  // secret BOP name
    int preference;         // 0=fullname, 1=title,2=bopname
};

该程序创建一个由上述结构组成的小型数组,并将其初始化为适当的值。另外,该程序使用一个循环,让用户在下面的选项中进行选择:

a. display by nameb.  display by title
c. display by bopname  d. display by preference
q. quit
注意,"display by preference" 并不意味着显示成员的偏好,而是意味着根据成员的偏好来列出成员。
例如,如果偏好号为1,则选择d将显示程序员的头衔。该程序的运行情况如下:
Benevolent Order of Programmers Report
a. display by name        b. display by title
c. display by bopname  d. 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!
#include <iostream>
struct bop {
    char fullname[50]; // real name
    char title[50];    // job title
    char bopname[50];  // secret BOP name
    int preference;    // 0=fullname, 1=title ,2=bopname
};
using namespace std;
int main()
{
    struct  bop arr_bop[5] = { 
        {"Wimp Macho","T-Wimp","Bop-Wimp",0},
        {"Raki Rhodes","Junior Programmer","Bop-Raki",1},
        {"Celia Laiter","T-Celia","MIPS",2},
        {"Hoppy Hipman","Analyst Trainee","Bop-Hoppy",1},
        {"Pat Hand","LOOPY","Bop-Pat",1 } 
    };
    int ch;
    cout << "a.display by name     b.display by title\n";
    cout << "c.display by bopname  d.display by preference\n";
    cout << "q.quit\nEnter  your  choice:";
    
    while (ch = cin.get())
    {
        if (ch == '\n')continue;
        switch (ch)
        {
        case 'a':
            for (int i = 0; i < 5; i++)
            {
                cout << arr_bop[i].fullname << endl;
            }
            break;
        case 'b':
            for (int i = 0; i < 5; i++)
            {
                cout << arr_bop[i].title << endl;
            }
            break;
        case 'c':
            for (int i = 0; i < 5; i++)
            {
                cout << arr_bop[i].bopname << endl;
            }
            break;
        case 'd':
            for (int i = 0; i < 5; i++)
            {
                switch (arr_bop[i].preference)
                {
                case 0:
                    cout << arr_bop[i].fullname << endl;
                    break;
                case 1:
                    cout << arr_bop[i].title << endl;
                    break;
                case 2:
                    cout << arr_bop[i].bopname << endl;
                    break;
                default:
                    break;
                }
            }
            break;
        case 'q':
            cout << "Bye!\n";
            exit(0);
        default:
            break;
        }
        cout << "Next  choice:";
    }
    return 0;
}
当前文章为会员文章,请前往[用户中心]开通会员后继续阅读。

C++ Primer Plus 6th习题