千家信息网

C语言如何实现单词小助手功能

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了C语言如何实现单词小助手功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下一.题目分析1、在原有代码基础
千家信息网最后更新 2026年11月04日C语言如何实现单词小助手功能

这篇文章主要介绍了C语言如何实现单词小助手功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

具体内容如下

一.题目分析

1、在原有代码基础上添加文档注释,函数注释及语句注释,使代码风格良好,易于阅读和修改。

2、完善功能,实现背单词时出错词的重复记忆。

3、在词库维护选项中添加中英文分别查询的功能

4、完成输如数据的正确性验证,如:在菜单选择时输入不规范的错误提示、在添加单词时英文输入时输入汉语的异常排除等

二.关键算法构造

1.总菜单项目选择及maintain函数子选项的输入异常检查及提示。

2.添加单词

三.程序实现

#include #include #define MAX_CHAR 20 // 最大字符#define MAX_NUM 200 // 单词的最大个数struct word//单词的结构体{ char en[MAX_CHAR]; // 英文形式 char ch[MAX_CHAR]; //中文形式} s[MAX_NUM],r[MAX_NUM]; //单词数组int num; //词典单词个数int rnum = 0; //增强记忆单词个数int select=1;//select 为是否退出系统的标记int d=0,c=0;//c为答错的次数,d为答对的次数//帮助void help(){printf("\n本系统主要实现英语单词学习的功能。用户可对词典文件中的单词进行预览,增删改查。");printf("\n同时还可进行中英、英中测试。本系统还提供了测试成绩的显示功能。");}//从文件中读取单词的信息void readfile(){FILE *fp; int i=0; fp=fopen("data.txt","r"); if(!fp) { printf("\n打开文件data.txt失败!"); } while(fscanf(fp,"%s %s ",s[i].en,s[i].ch)==2) { i++; } num=i; if(0==i) printf("\n文件为空,请选择词典维护增加词条!"); else printf("\n"); fclose(fp);}//向文件中写入单词void writefile(){FILE *fp;int i=0;fp=fopen("data.txt","w"); if(!fp) { printf("\n打开文件data.txt失败!"); } for(i=0;ii;j--)if(strcmp(s[j-1].en,s[j].en)>0)//string类strcmp函数通过Ascll 码逐字符比较 {strcpy(temp,s[j-1].en);strcpy(s[j-1].en,s[j].en);strcpy(s[j].en,temp);strcpy(temp,s[j-1].ch);strcpy(s[j-1].ch,s[j].ch);strcpy(s[j].ch,temp);}}}//添加单词信息void add(){int i=num,j,flag=1,a;f: while(flag){flag=0;printf("\n请输入单词的英文形式:");scanf("%s",s[i].en);//strncpy(c,s[i].en.c_str(),s[i].en.length());for(a=0;a<20;a++){if(s[i].en[a]>>8==0){ continue;} else{printf("输入不是纯英文,请重新输入");flag=1;goto f;//当不是纯英文输入时跳转 } }//if(a!=19) continue;for(j=0;j6||ret<=0){ while (getchar() != '\n'); printf("error input,please again.\n"); scanf("%d",&choose); ret =choose; } else break; }//直到输入的值为整数*/ret=choose;switch(ret){ case 1: add();writefile();break; case 2: modify();writefile();break; case 3: del();writefile();break; case 4: search();break; case 5: ysearch();break; case 6: return 0;default: printf("\n请在1-6之间选择");}}}//用户界面void menu(){ int item;printf(" \n");printf(" __________________________________________________________\n");printf(" || ||\n");printf(" || 英语单词小助手 ||\n");printf(" || ||\n");printf(" || 版本 : v1.0 ||\n");printf(" || ||\n");printf(" __________________________________________________________\n");printf(" || ||\n");printf(" || 0.词库维护 1.单词预览 ||\n");printf(" || ||\n");printf(" || 2.单词背诵(中英) 3.单词背诵(英中) ||\n");printf(" || ||\n");printf(" || 4.查询成绩 5.帮助 ||\n");printf(" || ||\n");printf(" || 6.增强记忆(中英) 7.增强记忆(英中) ||\n");printf(" || ||\n");printf(" || 8.退出 ||\n");printf(" || ||\n");printf(" __________________________________________________________\n");printf("\n");printf(" 请选择您需要的操作序号(0-8)按回车确认:");scanf("%d",&item);printf("\n");int ret;ret=item; while (ret != 1||ret !=2||ret!=3||ret!=4||ret!=5||ret!=6||ret!=7||ret!=8)//将输入限定在0-6的整数 { if(ret>8||ret<0){ while (getchar() != '\n'); printf("error input,please again.\n"); scanf("%d",&item); ret =item; } else break; }//直到输入的值为整数*/ret=item; readfile();switch(ret){ case 0: show();maintain();break;//词库维护 case 1: show();break; //单词预览 case 2: zytest();break;//中英背词测试 case 3: yztest(); break;//英中背刺测试 case 4: list();break;//成绩查询 case 5: help();break;//使用帮助 case 6: readRemeberfile();zyRetest();break;//调用文件读入已插入词汇,进行重复中英记忆 case 7: readRemeberfile();yzRetest();break;// 调用文件读入已插入词汇,进行重复英中记忆 case 8: select =0;break;//退出子选项 default: printf("请在0-8之间选择\n"); }}int main(){ while(select){menu();}system("pause");return 0;}

四.经验归纳

此次程序设计在原有基础程序的基础上,实现功能的完善,侧重于程序的结构化及精细化编写。在单词汉英查询模块,使用了string库 strcmp函数,利用字符Ascll码的比较实现字符的相同与否判断。在判断输入输入字符是否为纯英文时,用到位运算右移八位得到最高位二进制,1则为汉语,0为英文。

通过本次程序代码编写,再次熟悉了文件操作,认识到程序结构化的重要性。虽然在上课时强调过少用甚至不用goto语句,但是在中英文识别的函数中由于while(for(if(flag)))的嵌套使用,导致逻辑有些混乱,还是不可避免的使用了goto语句,好在最终最终解决了问题。所以在以后设计逻辑算法的时候,要尽量用能驾驭的语句实现,否则会出现意想不到的逻辑错误,甚至到用goto语句破坏程序结构性的地步。

感谢你能够认真阅读完这篇文章,希望小编分享的"C语言如何实现单词小助手功能"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

单词 输入 形式 英文 文件 中文 查询 记忆 功能 程序 测试 中英 信息 函数 字符 语句 序号 篇文章 结构 错误 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技 科技互联网龙头 互联网科技垄断 科技类互联网 科技服务与互联网 上海喔噻互联网科技 多迪互联网科技有限公司 老年人脱离互联网科技的作文 深圳国际航运科技和互联网 互联网科技项目计划书材料类 全球顶尖互联网科技公司 福建科技产业互联网发展 知域互联网科技有限公司大骗子 互联网行业科技股 锡山区互联网智能科技产品供应 上海同邻互联网科技有限公司规模 西安有哪些互联网高科技企业 互联网科技手机排行榜 现代科技的标志之一的互联网 颐高云石互联网科技 蓝思科技飞鸽互联网 互联网科技有限公司经营范围 互联网科技排名 互联网科技公司有哪些 常德市电业局互联网科技部 区块链结合互联网科技 福建互联网展示科技馆设计 长沙渺峰互联网科技有限公司 恒生科技互联网指数十大成分股 知域互联网科技有限公司官网
0