英语翻译程序,可以对用户自己建立的词汇表进行增删查改

⑴ 自行建立一个包含若干英文单词的词汇表文件,系统初始化时导入内存,用于进行句子翻译。

⑵ 用户可以输入单词或者句子,在屏幕上显示对应翻译结果。

⑶ 用户可对词汇表进行添加和删除,并能将更新的词汇表存储到文件中。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h> 
#include<stdlib.h>
#include<string.h> 
#include<Windows.h>

void Menu();				//菜单
int get_choice();			//获取选择(1-4)
int load();				//导入词汇表
void search(int i);		//单词查找
int add(int i);			//添加单词
int del(int i);			//删除单词
void Save(int i);			//将新的数据存如文件

void Menu()                                    //显示菜单
{
	printf("**************************************************************\n");
	printf("*                                                            *\n");
	printf("*                     欢迎使用英语翻译程序                   *\n");
	printf("*                                                            *\n");
	printf("*                     1.单词查询                             *\n");
	printf("*                     2.增加单词                             *\n");
	printf("*                     3.删除单词                             *\n");
	printf("*                     4.退出                                 *\n");
	printf("*                                                            *\n");
	printf("* 请输入你的选择:                                            *\n");
	printf("*                                                            *\n");
	printf("**************************************************************\n");
}

int get_choice()                     //获取选择 (1-4)
{
	int a;
	scanf("%d", &a);
	return a;
}

struct Translate
{
	char English[20];
	char Chinese[20];
};

struct Translate cihui[6000];                       //结构体数组 

int load()                                         //导入词汇表 
{
	int i = 0;
	FILE* fp;
	if ((fp = fopen("cihuibiao.txt", "r")) == NULL)		//打开文件
	{
		printf("无法打开文件!\n");
	}
	else {
		do {
			fscanf(fp, "%s%s", cihui[i].English, cihui[i].Chinese);
			i++;
		} while (feof(fp) == 0);				//遍历
	}
	fclose(fp);								//关闭文件
	return i - 1;
}

void search(int i)                       //查询单词功能 
{
	int a;
	char b;
	system("cls");
	char English[1024];
I:	printf("请输入你要查询的单词\n"); 
		scanf("%s", English);				//用户输入查询的单词
		for (a = 0; a <= i; a++)
		{
			if (strcmp(cihui[a].English, English) == 0)
			{
				printf("中文意思:%s\n", cihui[a].Chinese);
				break;
			}
		}
		if (a > i)
			printf("not find\n");
		printf("是否继续查询?(y/n)\n");
		fflush(stdin);						//刷新输出缓冲区
		scanf("%c", &b);
		if (b == 'y')
			goto I;
		else if (b == 'y')
			return;
	}


int add(int i)                            //实现用户添加词汇表功能
{
	system("cls");					//清空屏幕
	printf("请输入你要添加的英文:\n");
	fflush(stdin);					//刷新输出缓冲区
	scanf("%s", cihui[i + 1].English);
	printf("请输入你要添加的中文:\n");
	fflush(stdin);
	scanf("%s", cihui[i + 1].Chinese);
	printf("请在文件中查看"); 
	return i + 1;
}

int del(int i)                              // 实现用户删除词汇表功能
{
	system("cls");
	char english[20];
	printf("请输入你要删除的英文:\n");
	scanf("%s", english);
	for (int a = 0; a <= i; a++)
	{
		if (strcmp(cihui[a].English, english) == 0)
		{
			while (1)
			{
				strcpy(cihui[a].English, cihui[a + 1].English);
				strcpy(cihui[a].Chinese, cihui[a + 1].Chinese);
				a++;
				if (a > i)
					goto Z;
			}
		}
	}printf("请在文件中查看"); 
Z:	return i - 1;
}

void Save(int i)                                       //清空文件,并将新的数据存入文件 
{
	FILE* fp = NULL;
	fp = fopen("词汇表.txt", "w");					//打开文件,只读方式

	if ((fp = fopen("词汇表.txt", "w")) == NULL)
	{
		printf("写入文件失败,请重试!");
	}
	for (int a = 0; a <= i; a++)
	{
		fprintf(fp, "%s", cihui[a].English);
		fputs(" ", fp);
		fprintf(fp, "%s", cihui[a].Chinese);
		fputs("\n", fp);
	}
	fclose(fp);     //关闭磁盘文件
}

int Bye_bye()   		//退出程序
{
	printf("退出程序\n");
	return 0;
}

int main()
{
	int a, n, b, i;
L:	i = load();
	system("cls");//	清空屏幕
	Menu();
	a = get_choice();
	switch (a)
	{
	case 1: search(i); break;
	case 2: n = add(i); Save(n); break;
	case 3: b = del(i); Save(b); break;
	case 4: Bye_bye();
	}
	Sleep(3000);
	goto L;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值