小森动画回忆录(一)-功能实现(3)-迪迦篇

该代码段展示了如何在C++中处理用户输入的选择,包括输入验证、错误处理和选择菜单的实现。当用户输入无效或超出范围时,程序会提示错误并要求重新输入。此外,代码还包含了主菜单和子菜单的结构,如迪迦奥特曼的角色管理功能。
摘要由CSDN通过智能技术生成

修改代码

//用户输入选择
int inputUseSelect() {

	//定义了一个选择变量接收用户的输入
	int Select;

	//输入用户的选择
	(std::cin >> Select);
	
	return Select;
}

//输入有误
bool isInputIncorrect(int Select, int MaxSelectRange = 7) {
	if (Select >= 0 && Select < MaxSelectRange) {
		return false;
	}
	else {
		std::cout << "输入有误!没有  " << Select << " 选项...." << std::endl;
		return true;
	}
}

//判断用户输入是否合法
bool isInputValid(void) {


	if (!std::cin){

		//请除错误标志
		std::cin.clear();

		//刷新缓冲区
		std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
		std::cout << "输入有误,不是整数! 请重新输入...." << std::endl;

		cin.get();
		return true;
	}
	return false;
}

修改后的代码分析更加可读性 啥时候干什么事情都一目了然
修改后的main函数

int main(void) {

	//定义了一个选择变量接收用户的输入
	int Select;

	//是否退出
	bool IsExit = false;
	

	while (!IsExit) {

		system("cls");
		//调用菜单显示函数
		ShowMainMenu();

		//输入用户的选择 并且判断用户输入是否合法
		Select = inputUseSelect();
		if (isInputValid()  || isInputIncorrect(Select)) {
			continue;
		}
		//刷新缓冲区
		std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
		// 用户的选择
		IsExit = UseSelect(Select);

	}

	std::cout << "欢迎━(*`∀´*)ノ亻! 下次再来 ━(*`∀´*)ノ亻! " << std::endl;
	system("pause");
	return 0;
}

用户的选择 这个地方小小的改动

// 用户的选择
bool  UseSelect(int Select) {

	bool IsExit = false;

	//选择动画片名
	const char SelectName[7][64] = { "","迪迦奥特曼","哆啦A梦","大耳朵图图","果宝特攻","喜羊羊与灰太狼","熊出没 " };
	std::string Welcome = std::string("欢迎━(*`∀´*)ノ亻! 选择:") + SelectName[Select];

	switch (Select) {

	case 1://1. 迪迦奥特曼
		Ultraman(Welcome);
		break;

	case 2://2. 哆啦A梦
		Doraemon(Welcome);
		break;
	case 3:	//3. 大耳朵图图
		BigEarTutu(Welcome);
		break;
	case 4:
		//4. 果宝特攻
		TransformersRobotsInDisguise(Welcome);
		break;
	case 5:
		//5. 喜羊羊与灰太狼
		PleasantGoatandBigBigWolf(Welcome);
		break;
	case 6://6. 熊出没
		WhereAreWeGoingDad(Welcome);
		break;
	case 0:
		IsExit = true;
		break;

	default:
	//	std::cout << "输入有误!没有  " << Select << " 选项...." << std::endl;
		break;
	}

	return IsExit;

}

修改后的迪迦奥特曼主框架函数

void Ultraman(std::string Welcome){


	std::cout << Welcome << std::endl;

	//动画片名
	std::string  Cartoontitle;

	//截取动画片名
	Cartoontitle = InterceptSubString(Welcome);
	//休眠:1.5s
	sleep_for(1500ms);

	int Select;
	bool IsExit = false;

	while (!IsExit) {

		system("cls");
		std::cout << "\t\t 动画片名:" << Cartoontitle << std::endl;

		UltramanMainMenu();

		Select = inputUseSelect();
										//参数菜单的数量
		if (isInputValid() || isInputIncorrect(Select,4)) {
			continue;
		}
		
		IsExit = UltramanSelectMenu(Select);

	}


	system("cls");
	return;
}

小改 迪迦选择菜单

//迪迦选择菜单
bool UltramanSelectMenu(int Select){

	bool IsExit = false;
	switch (Select) {

	case 1://1.添加新角色 
				
		break;

	case 2://2.浏览角色
		
		break;

	case 3://3.浏览角色的关系  

		break;
	case 4://3.浏览角色的关系  

		break;

	case 0:
		IsExit = true;
		break;

	default:
		//std::cout << "输入有误!没有  " << Select << " 选项...." << std::endl;
		break;
	}
	return IsExit;
}

运行后

*************************************************
[*************** 1. 迪迦奥特曼 *****************]
[*************** 2. 哆啦A梦 ********************]
[*************** 3. 大耳朵图图 *****************]
[*************** 4. 果宝特攻 *******************]
[*************** 5. 喜羊羊与灰太狼 *************]
[*************** 6. 熊出没 *********************]
[*************** 0.退出 ************************]
*************************************************
请输入你的选择:1
欢迎━(*`??*)ノ亻! 选择:迪迦奥特曼
                 动画片名:迪迦奥特曼
*************************************************
[*************** 1.添加新角色 ******************]
[*************** 2.浏览角色 ********************]
[*************** 3.浏览角色的关系 **************]
[*************** 4.浏览角色的所有属性 **********]
[*************** 0.返回主系统 ******************]
*************************************************
请输入你的选择:1
                 动画片名:迪迦奥特曼
*************************************************
[*************** 1.添加新角色 ******************]
[*************** 2.浏览角色 ********************]
[*************** 3.浏览角色的关系 **************]
[*************** 4.浏览角色的所有属性 **********]
[*************** 0.返回主系统 ******************]
*************************************************
请输入你的选择:ahh
输入有误,不是整数! 请重新输入....
                 动画片名:迪迦奥特曼
*************************************************
[*************** 1.添加新角色 ******************]
[*************** 2.浏览角色 ********************]
[*************** 3.浏览角色的关系 **************]
[*************** 4.浏览角色的所有属性 **********]
[*************** 0.返回主系统 ******************]
*************************************************
请输入你的选择:9
输入有误!没有  9 选项....
                 动画片名:迪迦奥特曼
*************************************************
[*************** 1.添加新角色 ******************]
[*************** 2.浏览角色 ********************]
[*************** 3.浏览角色的关系 **************]
[*************** 4.浏览角色的所有属性 **********]
[*************** 0.返回主系统 ******************]
*************************************************
请输入你的选择:0
*************************************************
[*************** 1. 迪迦奥特曼 *****************]
[*************** 2. 哆啦A梦 ********************]
[*************** 3. 大耳朵图图 *****************]
[*************** 4. 果宝特攻 *******************]
[*************** 5. 喜羊羊与灰太狼 *************]
[*************** 6. 熊出没 *********************]
[*************** 0.退出 ************************]
*************************************************
请输入你的选择:0
欢迎━(*`??*)ノ亻! 下次再来 ━(*`??*)ノ亻!
请按任意键继续. . .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小森程序员

若能帮助到你,小费自愿付费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值