Mword单词记忆小助手

#include<iostream>
#include<fstream>
#include<string>
#include<conio.h>
using namespace std;
class Word//单词的类
{
public:
	string en;
	string ch;
	Word()
	{
		en="";
		ch="";
	}
	void Set(string e,string c)
	{
		en=e;
		ch=c;
	}
	void Show()
	{
		cout<<"英文:"<<en<<" 中文:"<<ch<<endl;
	}
};
int n;//词库的单词数量
int test;//本次测试次数
int grade[100];//学生成绩
Word word[1000];//单词
void Read()//从文件读取
{
	void Write();
	n=0;
	ifstream f;
	f.open("data.txt",ios::in);
	if(!f.is_open())
	{
		cout << "打开文件错误";
		exit (1);
	}
	else {}
	string e,c;
	while (!f.eof())
	{	
		f>>e;
		f>>c;
		word[n].Set(e,c);
		n++;
	}
	f.close();
}
void Write()//写入文件
{
	int m=0;
	ofstream f;
	f.open("data.txt",ios::out | ios::trunc);
	if(!f.is_open())
	{
		cout << "打开文件错误"<<endl; 
		exit (0);
	}
	else {}
	while (m<n)
    {
        f<<endl;
		f<<word[m].en;
		f<<" ";
		f<<word[m].ch;		
		m++;
    }
	f.close();
	Read();
}
void Show()//展示词库单词
{
	void Menu();
	system("cls");
	cout<<endl<<endl;
	if(n==0)
	{
		cout<<"词库目前为空"<<endl;
	}
	else
	{
		int m=0;
		while(m<n)
		{
			cout<<m+1<<":";
			word[m].Show();
			m++;
		}
	}
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
}
void Add()//添加单词
{
	void Menu();
	system("cls");
	string e,c;
	cout<<endl<<endl;
	cout<<endl<<"请输入您要添加单词的英文"<<endl;
	cin>>e;
	cout<<endl<<"请输入您要添加单词的中文"<<endl;
	cin>>c;
	word[n].Set(e,c);
	n++;
	Write();
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
}
void Del()//删除单词
{
	void Menu();
	system("cls");
	string e,c;
	int m;
	cout<<endl<<endl;
	cout<<endl<<"请选择删除方法:"<<endl;
	cout<<endl<<"1、按英文删除单词"<<endl;
	cout<<endl<<"2、按中文删除单词"<<endl;
	char i;
	i=getch();
	switch(i)
	{
	case '1':
		cout<<endl<<"请输入您要删除单词的英文"<<endl;
		cin>>e;
		for(m=0;m<n;m++)
		{
			if(word[m].en==e)
			{
				break;
			}
		}
		break;	
	case '2':
		cout<<endl<<"请输入您要删除单词的中文"<<endl;
		cin>>c;
		for(m=0;m<n;m++)
		{
			if(word[m].ch==c)
			{
				break;
			}
		}
		break;
	default:
		cout<<"您的按键有误,按任意键返回重新选择!"<<endl;
		getch();
		Del();
	}	
	word[m].Show();
	cout<<"该单词已经删除"<<endl;
	for(;m<n;m++)
	{
		word[m]=word[m+1];
	}
	Write();
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
}
void Find()//查找单词
{
	void Menu();
	system("cls");
	string e,c;
	int m;
	cout<<endl<<endl;
	cout<<endl<<"请选择查找方法:"<<endl;
	cout<<endl<<"1、按英文查找单词"<<endl;
	cout<<endl<<"2、按中文查找单词"<<endl;
	char i;
	i=getch();
	switch(i)
	{
	case '1':
		cout<<endl<<"请输入您要查找单词的英文"<<endl;
		cin>>e;
		for(m=0;m<n;m++)
		{
			if(word[m].en==e)
			{
				break;
			}
		}
		break;	
	case '2':
		cout<<endl<<"请输入您要查找单词的中文"<<endl;
		cin>>c;
		for(m=0;m<n;m++)
		{
			if(word[m].ch==c)
			{
				break;
			}
		}
		break;
	default:
		cout<<"您的按键有误,按任意键返回重新选择!"<<endl;
		getch();
		Del();
	}
	cout<<"您查找的单词为:";
	word[m].Show();
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
}
void Edit()//修改编辑单词
{
	void Menu();
	system("cls");
	string e,c;
	int m;
	cout<<endl<<endl;
	cout<<endl<<"请选择修改的单词查找的方法:"<<endl;
	cout<<endl<<"1、按英文查找要修改的单词"<<endl;
	cout<<endl<<"2、按中文查找要修改的单词"<<endl;
	char i;
	i=getch();
	switch(i)
	{
	case '1':
		cout<<endl<<"请输入您要查找单词的英文"<<endl;
		cin>>e;
		for(m=0;m<n;m++)
		{
			if(word[m].en==e)
			{
				break;
			}
		}
		break;	
	case '2':
		cout<<endl<<"请输入您要查找单词的中文"<<endl;
		cin>>c;
		for(m=0;m<n;m++)
		{
			if(word[m].ch==c)
			{
				break;
			}
		}
		break;
	default:
		cout<<"您的按键有误,按任意键返回重新选择!"<<endl;
		getch();
		Del();
	}
	cout<<"您查找的单词为:";
	word[m].Show();
	cout<<"请编辑该单词!"<<endl;
	cout<<endl<<"请输入您要修改单词的英文"<<endl;
	cin>>e;
	cout<<endl<<"请输入您要修改单词的中文"<<endl;
	cin>>c;
	word[m].Set(e,c);
	Write();
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
}
void Test()//单词测试
{
	void Menu();
	system("cls");
	cout<<endl<<endl;
	int m;
	string e,c;
	if(n==0)
	{
		cout<<"词库目前为空"<<endl;
	}
	else
	{
		cout<<"请选择测试方法!"<<endl;
		cout<<"1、看单词写中文"<<endl;
		cout<<"2、看中文写单词"<<endl;
		char i;
		i=getch();
		switch(i)
		{
		case '1':
			test++;
			for(m=0;m<n;m++)
			{
				cout<<word[m].en<<endl;
				cin>>c;
				if(word[m].ch==c)
				{
					cout<<"恭喜你,正确!"<<endl;
					grade[test]++;
				}
				else
				{
					cout<<"很遗憾,错误!"<<endl;
				}
			}
			break;	
		case '2':
			test++;
			cout<<endl<<"请输入您要查找单词的中文"<<endl;
			cin>>c;
			for(m=0;m<n;m++)
			{
				cout<<word[m].ch<<endl;
				cin>>c;
				if(word[m].en==e)
				{
					cout<<"恭喜你,正确!"<<endl;
					grade[test]++;
				}
				else
				{
					cout<<"很遗憾,错误!"<<endl;
				}
			}
			break;
		default:
			cout<<"您的按键有误,按任意键返回重新选择!"<<endl;
			getch();
			Test();
		}
	cout<<"本次测试结果为:"<<endl;
	cout<<"测试共:"<<n<<"个单词"<<endl;
	cout<<"正确共:"<<grade[test]<<"个单词"<<endl;
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
	}
}
void Gread()//显示成绩
{
	void Menu();
	system("cls");
	if(test==0)
	{
		cout<<"本次还没有进行测试"<<endl<<endl;
	}
	else
	{
		int m;
		for(m=1;m<=test;m++)
		{
			cout<<"第"<<m+1<<"次测试结果为:"<<endl;
			cout<<"测试共:"<<n<<"个单词"<<endl;
			cout<<"正确共:"<<grade[test]<<"个单词"<<endl<<endl;
		}
	}
	cout<<"按任意键返回菜单!"<<endl;
	getch();
	Menu();
}
void Menu()//菜单
{
	system("cls");
	cout<<endl<<endl<<"			欢迎使用M记单词"<<endl<<endl;
	cout<<"		 	  1、查看词库"<<endl<<endl;
	cout<<"		 	  2、添加单词"<<endl<<endl;
	cout<<"		 	  3、删除单词"<<endl<<endl;
	cout<<"	  	 	  4、查找单词"<<endl<<endl;
	cout<<"		 	  5、修改单词"<<endl<<endl;
	cout<<"		 	  6、单词测试"<<endl<<endl;
	cout<<"		   	  7、查看成绩"<<endl<<endl;
	cout<<"			  8、退出程序"<<endl<<endl;
	char i;
	i=getch();
	switch(i)
	{
	case '1':
		Show();
		break;
	case '2':
		Add();
		break;
	case '3':
		Del();
		break;
	case '4':
		Find();
		break;
	case '5':
		Edit();
		break;
	case '6':
		Test();
		break;
	case '7':
		Gread();
		break;
	case '8':
		exit(0);
		break;
	default:
		cout<<"您的按键有误,按任意键返回菜单!"<<endl;
		getch();
		Menu();
	}
}

void main()//主函数
{	
	test=0;
	Read();
	Menu();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值