电子英汉词典 实现简单的电子英汉词典的功能,具体管理操作包括单词的添加,显示,查找,删除,修改,修改和保存。 功能要求: (1)采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义, (2)系统功能: 词条录入:即添加单词记录 信息显示:将所有的单词按字母顺序显示。 词条修改:对已经输入的单词信息进行修改。 词条删除:删除某个单词记录。 单词查询:输入单词英文拼写,输出该单词的中文释义。 信息保存:将单词信息保存到文件 退出系统。 系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能不限于上述。可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可以操作。测试数据,要求被选用的词条有30个左右,简单单词为主。
时间: 2024-03-26 20:42:08 浏览: 78
实现电子词典的基本功能
这里提供一份电子英汉词典的C语言代码,代码注释中有对应的功能说明。需要注意的是,这份代码并没有考虑系统的安全性,如需要可以在代码中添加密码验证功能。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 30 // 最大单词数
#define MAX_LEN 20 // 单词最大长度
// 单词结构体
typedef struct {
char en[MAX_LEN]; // 英文拼写
char cn[MAX_LEN]; // 中文释义
} Word;
Word dict[MAX_NUM]; // 单词词典
int count = 0; // 单词数量
// 添加单词
void addWord() {
if (count >= MAX_NUM) { // 判断单词数量是否已满
printf("单词数量已满,无法添加!\n");
return;
}
printf("请输入英文单词:");
scanf("%s", dict[count].en);
printf("请输入中文释义:");
scanf("%s", dict[count].cn);
count++;
printf("添加成功!\n");
}
// 显示所有单词
void showAllWords() {
if (count == 0) { // 判断单词数量是否为空
printf("单词数量为空,请先添加单词!\n");
return;
}
printf("所有单词如下:\n");
for (int i = 0; i < count; i++) {
printf("%s:%s\n", dict[i].en, dict[i].cn);
}
}
// 修改单词
void modifyWord() {
if (count == 0) { // 判断单词数量是否为空
printf("单词数量为空,请先添加单词!\n");
return;
}
char en[MAX_LEN];
printf("请输入要修改的单词英文拼写:");
scanf("%s", en);
for (int i = 0; i < count; i++) {
if (strcmp(dict[i].en, en) == 0) { // 判断单词是否存在
printf("请输入新的中文释义:");
scanf("%s", dict[i].cn);
printf("修改成功!\n");
return;
}
}
printf("该单词不存在!\n");
}
// 删除单词
void deleteWord() {
if (count == 0) { // 判断单词数量是否为空
printf("单词数量为空,请先添加单词!\n");
return;
}
char en[MAX_LEN];
printf("请输入要删除的单词英文拼写:");
scanf("%s", en);
for (int i = 0; i < count; i++) {
if (strcmp(dict[i].en, en) == 0) { // 判断单词是否存在
for (int j = i; j < count - 1; j++) {
strcpy(dict[j].en, dict[j + 1].en);
strcpy(dict[j].cn, dict[j + 1].cn);
}
count--;
printf("删除成功!\n");
return;
}
}
printf("该单词不存在!\n");
}
// 查询单词
void searchWord() {
if (count == 0) { // 判断单词数量是否为空
printf("单词数量为空,请先添加单词!\n");
return;
}
char en[MAX_LEN];
printf("请输入要查询的单词英文拼写:");
scanf("%s", en);
for (int i = 0; i < count; i++) {
if (strcmp(dict[i].en, en) == 0) { // 判断单词是否存在
printf("%s:%s\n", dict[i].en, dict[i].cn);
return;
}
}
printf("该单词不存在!\n");
}
// 保存单词到文件
void saveToFile() {
if (count == 0) { // 判断单词数量是否为空
printf("单词数量为空,请先添加单词!\n");
return;
}
FILE *fp;
if ((fp = fopen("words.txt", "w")) == NULL) { // 判断文件是否打开成功
printf("文件打开失败!\n");
return;
}
for (int i = 0; i < count; i++) {
fprintf(fp, "%s %s\n", dict[i].en, dict[i].cn);
}
fclose(fp);
printf("单词保存成功!\n");
}
int main() {
int choice;
while (1) {
printf("请选择功能:\n");
printf("1. 词条录入\n");
printf("2. 信息显示\n");
printf("3. 词条修改\n");
printf("4. 词条删除\n");
printf("5. 单词查询\n");
printf("6. 信息保存\n");
printf("7. 退出系统\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addWord();
break;
case 2:
showAllWords();
break;
case 3:
modifyWord();
break;
case 4:
deleteWord();
break;
case 5:
searchWord();
break;
case 6:
saveToFile();
break;
case 7:
printf("系统已退出!\n");
exit(0);
default:
printf("输入有误,请重新输入!\n");
}
}
return 0;
}
```
阅读全文