用C语言编写的英文单词管理小程序

/******/
/该程序的功能是储存用户输入的英文单词及其中文解释, /
/单词个数由用户自己定义,并且具有查找英文单词的中文解释 /
/及其删除已背熟的单词,最后再释放储存单词的数组空间。 /
/
/

#include<stdio.h>
#include<string.h>
#define MAX 50

//定义数据元素
struct E_C
{
char En[30];
char Ch[30];
};

//定义顺序表
struct List
{
struct E_C date[MAX];
int length;
};

//定义输出已存单词表
void List_printf(struct List* L)
{
int i;
for(i=L->length-1;i>=0;i–)
{
printf("%s %s\n",L->date[i].En,L->date[i].Ch);
}
}

//定义清空数组函数
void clear(struct List* p)
{
memset(p,0,sizeof§);
p->length=0;
}

//定义插入元素函数,重点!!!
void Insert(struct List* L,struct E_C x)
{
int j=L->length-1;
if(L->length>=0&&L->length<MAX)
{
for(;j>=0;j–)
{
L->date[j+1]=L->date[j];
}
L->date[0]=x;
L->length++;
}
}

//定义删除元素函数
void Delete(struct List* L,char* p)
{
int j=0,i;
while(strcmp(L->date[j].En,p)!=0&&jlength) j++;
if(j>=L->length) printf(“没有该单词\n”);
else
{
for(i=j;ilength-1;i++)
{
L->date[i]=L->date[i+1];
}
L->length–;
printf(“该单词已被删除\n”);
}
}

//定义元素查找函数
void Find(struct List* L,char* p)
{
int j=0;
while(strcmp(L->date[j].En,p)!=0&&jlength) j++;
if(j>=L->length) printf(“没有该单词\n”);
else
{
printf("%s %s\n",L->date[j].En,L->date[j].Ch);
}
}

int main()
{
int n,i;
char str[MAX];
struct List L;
struct E_C s;
L.length=0; //不要忘记定义length为0!
printf(“请输入你想要储存的单词的个数\n”);
scanf("%d",&n);
printf(“请输入你想要存储的英文单词和它的中文解释\n”);
for(i=0;i<n;i++)
{
scanf("%s",s.En);
scanf("%s",s.Ch);
Insert(&L,s);
}
printf("\n储存的单词表为:\n");
List_printf(&L);
printf("\n请输入你想要删除的英文单词\n");
scanf("%s",str);
Delete(&L,str);
printf("\n删除后的单词表为:\n");
List_printf(&L);
printf("\n请输入你想要查找的英文单词\n");
scanf("%s",str);
Find(&L,str);
clear(&L);
printf("\n单词表已被清空\n");
List_printf(&L);
return 0;
}

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值