当前位置: 首页 > article >正文

【C++ Primer Plus习题】6.4

问题:

这里是引用

解答:

#include <iostream>
using namespace std;

const int strsize = 40;
const int usersize = 40;

typedef struct _Bop
{
	char fullname[strsize];
	char title[strsize];
	char bopname[strsize];
	int preference;
}Bop;

Bop bop_user[usersize] =
{
	{"Wimp Macho","Programmer","MIPS",0},
	{"Raki Rhodes","Junior Programmer","",1},
	{"Celia Laiter","","MIPS",2},
	{"Hoppy Hipman","Analyst Trainee","",1},
	{"Pat Hand","","LOOPY",2}
};

void showmenu();
void print_by_name();
void print_by_pref();
void print_by_title();
void print_by_bopname();

int main()
{
	char choice;
	showmenu();
	cin.get(choice);
	while (choice!='q')
	{
		switch (choice)
		{
		case 'a':
			print_by_name();
			break;
		case 'b':
			print_by_title();
			break;
		case 'c':
			print_by_bopname();
			break;
		case 'd':
			print_by_pref();
			break;
		default:
			cout << "请输入a,b,c,d or q" << endl;
		}
		cin.get();
		cout << "下一次输入:";
		cin.get(choice);
	}
	cout << "Bye!" << endl;
	return 0;
}


void showmenu()
{
	cout << "a.display by name\t\tb.display by title" << endl;
	cout << "c.display by bopname\t\td.display by preference" << endl;
	cout << "q.quit"<<endl;
}
void print_by_name()
{
	for (int i = 0; i < usersize; i++)
	{
		if (strlen(bop_user[i].fullname) == 0)
		{
			break;
		}
		else
		{
			cout << bop_user[i].fullname << endl;
		}
	}
}
void print_by_pref()
{
	for (int i = 0; i < usersize; i++)
	{
		if (strlen(bop_user[i].fullname) == 0)
		{
			break;
		}
		else
		{
			switch (bop_user[i].preference)
			{
			case 0:
				cout << bop_user[i].fullname << endl;
				break;
			case 1:
				cout << bop_user[i].title << endl;
				break;
			case 2:
				cout << bop_user[i].bopname << endl;
				break;
			}
		}
	}
}

void print_by_title()
{
	for (int i = 0; i < usersize; i++)
	{
		if (strlen(bop_user[i].fullname) == 0)
		{
			break;
		}
		else
		{
			cout << bop_user[i].title << endl;
		}
	}
}
void print_by_bopname()
{
	for (int i = 0; i < usersize; i++)
	{
		if (strlen(bop_user[i].fullname) == 0)
		{
			break;
		}
		else
		{
			cout << bop_user[i].bopname << endl;
		}
	}
}

运行结果:
在这里插入图片描述

考查点:

  • 结构体数组
  • 循环
  • switch

2024年8月28日19:55:01


http://www.kler.cn/a/280615.html

相关文章:

  • 数据可视化大屏模板-美化图表
  • I get HttpClient.Timeout Error in C# OpenAI library
  • 【jvm】虚拟机栈会oom吗
  • 四,接口类型和网络协议
  • IO多路复用几种函数
  • html2canvas ios慎用和createImageBitmap ios慎用
  • MATLAB 计算三角形的外接圆心和半径(84)
  • el-form中使用v-model和prop实现动态校验
  • docker容器基本命令、docker进入容器的指令、容器的备份、镜像底层原理、使用commit命令制造镜像、将镜像推送到阿里云镜像仓库与私服仓库
  • Lodash——JavaScript中的工具库
  • 【Redis】Redis客户端——Jedis(Java)
  • JMeter与数据库交互:执行SQL查询性能测试
  • Javascript深拷贝常见实现方法
  • 【Qt】项目打包发布
  • k8s POD控制器
  • 【Java设计模式】非循环访问者模式:简化对象交互
  • Python算法工程师面试整理-数据结构
  • sql中exist和in的区别
  • 了解一点电池的工作原理,让它们更好地为我们工作。【手机充电小技巧】(影响电池寿命的主要因素:过充、过放以及高温)
  • Java中Map集合的高级应用与实战技巧