用c语言写具有查询,添加,修改和删除功能的英汉字典程序
时间: 2023-05-21 22:05:49 浏览: 68
非常感谢您的提问!我可以给您提供一种基于C语言的英汉字典程序的实现思路。首先,可以使用结构体来表示一个单词的基本信息,包括单词本身、词性、中文翻译、例句等。然后,可以将这些结构体保存到一个数组中,实现查询、添加、修改和删除等功能。
例如,可以定义如下的结构体:
```
struct word {
char english[50]; // 英文单词
char type[20]; // 词性
char chinese[50]; // 中文翻译
char example[100]; // 例句
};
```
然后,定义一个包含这些结构体的数组,并实现相关操作:
```
struct word dict[100]; // 定义一个包含100个单词结构体的数组
int search(char* word) {
// 在数组中查找指定单词,返回其在数组中的下标
}
void add() {
// 向数组中添加一个新单词
}
void modify(char* word) {
// 修改数组中指定单词的信息
}
void delete(char* word) {
// 从数组中删除指定单词
}
```
完整代码请参考:
```
#include <stdio.h>
#include <string.h>
struct word {
char english[50];
char type[20];
char chinese[50];
char example[100];
};
struct word dict[100];
int count = 0;
void init() {
// 初始化字典数组
struct word w1 = {"hello", "int.", "你好", "Hello, world!"};
struct word w2 = {"world", "n.", "世界", "Hello, world!"};
dict[0] = w1;
dict[1] = w2;
count = 2;
}
int search(char* word) {
// 查找指定单词在数组中的位置
int i;
for (i = 0; i < count; i++) {
if (strcmp(dict[i].english, word) == 0) {
return i;
}
}
return -1;
}
void add() {
// 添加一个新单词
struct word w;
printf("请输入英文单词:");
scanf("%s", w.english);
printf("请输入词性:");
scanf("%s", w.type);
printf("请输入中文翻译:");
scanf("%s", w.chinese);
printf("请输入例句:");
scanf("%s", w.example);
dict[count] = w;
count++;
printf("添加成功!\n");
}
void modify(char* word) {
// 修改指定单词的信息
int index = search(word);
if (index == -1) {
printf("单词不存在!\n");
return;
}
struct word w;
printf("请输入新的词性:");
scanf("%s", w.type);
printf("请输入新的中文翻译:");
scanf("%s", w.chinese);
printf("请输入新的例句:");
scanf("%s", w.example);
dict[index] = w;
printf("修改成功!\n");
}
void delete(char* word) {
// 删除指定单词
int index = search(word);
if (index == -1) {
printf("单词不存在!\n");
return;
}
int i;
for (i = index; i < count - 1; i++) {
dict[i] = dict[i + 1];
}
count--;
printf("删除成功!\n");
}
void show(struct word w) {
// 输出一个单词的信息
printf("%s [%s] %s\n", w.english, w.type, w.chinese);
printf("%s\n", w.example);
}
void query(char* word) {
// 查询单词信息
int index = search(word);
if (index == -1) {
printf("单词不存在!\n");
return;
}
show(dict[index]);
}
void menu() {
// 打印菜单
printf("====== 中英文词典 ======\n");
printf("1. 查询单词\n");
printf("2. 添加单词\n");
printf("3. 修改单词\n");
printf("4. 删除单词\n");
printf("5. 退出\n");
printf("========================\n");
}
int main() {
init(); // 初始化字典数组
while (1) {
int choice;
menu(); // 打印菜单
printf("请输入选项(1-5):");
scanf("%d", &choice);
switch (choice) {
case 1:
{
char word[50];
printf("请输入要查询的单词:");
scanf("%s", word);
query(word);
break;
}
case 2:
add();
break;
case 3:
{
char word[50];
printf("请输入要修改的单词:");
scanf("%s", word);
modify(word);
break;
}
case 4:
{
char word[50];
printf("请输入要删除的单词:");
scanf("%s", word);
delete(word);
break;
}
case 5:
return 0;
default:
printf("请选择正确的选项!\n");
}
}
return 0;
}
```
希望对您有所帮助!