C++入门编程之成语接龙

成语接龙问题

问题描述:

题目描述:成语接龙是中华民族传统的文字游戏。它有着悠久的历史,也有广泛的社会基础,是老少皆宜的民间文化娱乐活动。请设计四字成语接龙游戏。
功能需求:
(1) 计一个四字成语类Idiom,包含成语内容,首字母的拼音,末尾字母 的拼音。
(2) 设计一个成语接龙游戏类Game,系统可以判断用户的回答是否是成语,并且可以按照前一个成语,判断是否接龙成功。如果回答的成语接龙正确,则以新的成语作为新的起点,继续接龙;如果不成功,继续为原有的成语接龙。
(3) 设计提示功能,引导用户接龙成功。
(4) 使用外部文件存储相关数据。

开发环境:

Dev C++

解题思路:

  1. 使用外部文件储存,创建一个.txt文件来储存成语,组成成语数据库,用fstream类导入成语库。
  2. 分别用两个ifstream,声明出两个变量,分别储存成语与拼音,放在Idiom类里。
  3. 再定义出一个Game类,声明出6个函数。
     matchIfidiom函数,用来匹配是否为成语。
     matchIfcatch函数,用来检测是否接龙。
     matchIfexist函数,用来检测是否在游戏里存在出现过的成语。
     pointOut函数,用来做提示功能。
     printOut函数,用来输出结果。
     gameStart函数,用来启动游戏。
     String exist成语,用来储存出现过的成语
  4. 在gameStart函数里,根据玩家输入1或2来决定是否退出或者提示。 这个项目中最关键的一点就是,第一次输入的成语必须是一个四字成语,否则直接退出。于是,提示功能只能在第二轮输入开始才能使用。在每次输入成语后,printOut函数都会检测是否为四字成语,是否存在出现的成语(当第二次输入时)。当用户需要提示时,输入“2”,printOut函数将输进来的idiom又赋值为上一个成语(因为“2”不是成语,这也是需要第二次输入才能使用提示功能的原因)。gameStart函数里声明出一个变量idiom,用来给用户输入成语,然后传入printOut函数输入结果。由于需要判断是否接龙,于是在函数里面加入判断语句if(),把idiom放入matchIfcatch函数里,如果不接龙,则实现if语句里面的内容。

程序设计:

#include<iostream>
#include<cstring>
#include<fstream>
using namespace std; 
int tag2;

class Idiom{
   
	public:
	ifstream a;
	ifstream b;
	string allidiom;
	
		Idiom()
		{
   
			a.open("1.txt");
			b.open("1.txt");
			while(getline(a,idiom1))
			{
   
				allidiom+=idiom1.substr(0,8);//储存每行的成语
			}
			
			while(getline(b,idiom2,'#'))
			{
      
				pos1=idiom2.find(":")+2;
				pinyin+=idiom2.substr(pos1);//储存每行的拼音 
			}
			a.close();
			b.close(); 
		}
		
	private
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叁佰_542586

天桥底下的穷屌丝和他の破鞋草席

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

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

打赏作者

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

抵扣说明:

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

余额充值