建立一个包含若干个英文单词的词汇表文件。其中每个词条由单词和解释两部分组成
如:apple 苹果
利用该词汇表文件实现背单词的功能。
功能要求:
1.读取已有的词汇表文件。
2.能浏览词汇表的全部词条。
3.背单词功能:由用户指定每次背单词的数目,程序随机分配挑选给定个数的单词(不重复);用户输入相应英语单词,程序给出中文解释;判断输入单词的正误,输入正确得一分;对每个单词统计总得分;总得分最低的单词为生疏单词,让这类
单词多出现。

C语言编写背单词程序
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 天空海阔66 2022-01-04 10:54关注
/* 建立一个包含若干个英文单词的词汇表文件。 其中每个词条由单词和解释两部分组成 如:apple 苹果 利用该词汇表文件实现背单词的功能。 功能要求: 1.读取已有的词汇表文件。 2.能浏览词汇表的全部词条。 3.背单词功能:由用户指定每次背单词的数目, 程序随机分配挑选给定个数的单词(不重复); 用户输入相应英语单词,程序给出中文解释; 判断输入单词的正误,输入正确得一分; 对每个单词统计总得分; 总得分最低的单词为生疏单词,让这类单词多出现。 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LINE 1024 char* substr(char *s,int startPos,int endPos){ char t[endPos-startPos]; strncpy(t, s + startPos, endPos); t[endPos] = '\0'; printf("%s\n", t); return t; } int index(char *a,char c) { //printf("index yunx"); int i=0; while(a[i]!='\0') { if(a[i]==c) break; i++; } return i; } int main() { char buf[MAX_LINE]; /*缓冲区*/ FILE *fp; /*文件指针*/ int len; /*行字符个数*/ if((fp = fopen("word.txt","r")) == NULL) { perror("fail to read"); exit (1) ; } //FILE *fpWrite=fopen("newtest.txt","w"); //if(fpWrite==NULL) //{ return 0; } char wordArray[100][MAX_LINE]; int i=0,j=0; while(fgets(buf,MAX_LINE,fp) != NULL) { len = strlen(buf); j=len; buf[len-1] ='\0'; /*去掉换行符*/ printf("%s\n",buf); strcpy(wordArray[i],buf); i++; } printf("in put your want to memory word number:\n"); int memoryWordNumber; scanf("%d",&memoryWordNumber); char sutinputword[50]; int wordLength,intindexO; for(int j=0;j<memoryWordNumber;j++) { i = rand() % 10; //产生0~9的随机数,注意10会被整除 char a[50]; strcpy(a,wordArray[i]); intindexO=index(a,' ');//取空格的位置。如apple 苹果 位置为6 len=strlen(wordArray[i]); printf("in put the word %s\n",substr(wordArray[i],intindexO,len)); scanf("%s",sutinputword); if(strcmp(sutinputword,substr(wordArray[i],0,intindexO))==0)//比较学生输入的与word里面的是否相等 printf("right!"); else printf("wrong"); } return 0; }
词汇文件为word.txt内容如下
apple 苹果
hello 你好
memory 记忆
desk 桌子
book 书本
pen 钢笔
pencil 铅笔
glass 水杯
class 班级本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录