C语言编写背单词程序

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


/*
建立一个包含若干个英文单词的词汇表文件。
其中每个词条由单词和解释两部分组成
如: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 班级