#包括
包括
结构的字/ /构造一个单词的定义,其中两名成员提出英语单词和相应的中国翻译
{
字符中国[20] [20]
炭英语
}
整数点= 0/ /统计分数
诠释COUNT1 = 0/ /添加一些测试
无效田家(字的海峡[100],诠释计数)/ /函数声明的词汇短语
无效叔初(字海峡结构[100],诠释计数)/ /函数声明,所有的输出词典中的短语
无效fanyi1(结构字海峡“[100],诠释及数量)/ /函数声明,输入中文,英文翻译访问以
无效fanyi2(字海峡结构[100],诠释计数)的
无效的chaxun(INT点,诠释COUNT1),/ /函数声明的输出结果!
无效的主要()
{
诠释计数= 0
结构字海峡“[100]/ /定义一个结构海峡
整数N
字符CH chioch阵列
(1)
{
printf的(“ *************背单词系统********************* \ n“)
printf(”请* ************ 1,添加词库********************* \ n“)
printf(”请* ************中国英语*********************** \ n“)
输出( “************* 3,英语对中国*********************** \ n”)
>printf(“请************* 4,输出所有的词库***************** \ n”}
输出(“************* 5,成绩查询********************* \ n”)
输出(“************* 0,退出************************* \ n”)/>printf(“请******************************************** \ N“)
printf的(”请输入您去 *** 作的行:\ n“)
scanf的(”%d“,&N)
<BR /开关(N)
{
案件1:田家(STR,计数)打破/ /函数调用
案例2:fanyi1(海峡,计数)打破/ /函数调用
案例3:fanyi2(海峡,计数)打破/ /函数调用
情况下,叔初(海峡,计数)突破
案例5:chaxun(点,COUNT1)的打破/ /函数调用
情况下,0:{printf的(“你确定要退出吗?Y / N!\ n”)
scanf的(“%C%C”,&通道,chioch)
(CH =='Y'| | CH =='Y')出口(0)
}
默认:printf(“请您输入错误的 *** 作不能被执行“)
出口(0)
}
}
}
无效田家(字海峡结构[100],诠释计数)/ /的词汇短语
{
字符CH
{
printf的(“词库输入!\ n “)
printf的(”请输入英文单词的词汇:\ n“)
scanf函数(”%s“的话,str [计数。英语)
printf的(”\ n请进入中国的意义:\ n“)
scanf的(”%s“的话,str [计数]。中国)
数+ +
printf的(”是否继续进入Y / N!\ n“)
scanf的(”%s“,&CH)
}(CH =='Y')
输出,计数(“%d \ n \ n”)
}
无效叔初(字STR [100],诠释计数)/ /输出词典短语
{
INT I = 0
printf的(“输出词典的词!\ n”)
(<= 0){printf(“请不的话,可以不输出!\ n“)回报}
其他{
(i = 0<算,我+ +){
printf的(”英语单词:%s“的话,str [i]的英文)
printf的(”\ n中国的意义:%s“的话,str [i]的中国)
printf的(”\ n \ n“)
}
printf的(“词库所有单词输入完毕!!\ n”)
}
}
无效fanyi1(字海峡结构[100],诠释计数)/ /输入中文,英文翻译访问
{
我
字符路[20]
字符BH [20]
printf的(“请输入英文单词:\ n”)
scanf的(“%s”,CH)
printf(“请输入一个翻译的中国:\ n“)
scanf的(”%s“,BH)
(i = 0我算,我+ +)
{
(STRCMP(通道,海峡[I]英语)== 0)
{
(STRCMP(BH海峡[I]。中国)== 0)
{
点+ +的
COUNT1 + +
printf的(“恭喜你!正确!\ n”)
}
其他
{ / a>
COUNT1 + +
printf的(“不幸的是,弄错了!!正确的翻译是:%S \ n”,STR [I]。中国)
} BR />}
}
}
无效fanyi2(结构字海峡“[100],INT和数)/ /输入英文,中文翻译访问
{
诠释我
字符CH [20]
字符BH [20]
printf的(“请进入中国:\ n“)
scanf的(”%s“,CH)
printf的(”请输入英文翻译:\ n“)
scanf的(”%s的“ BH)
为(i = 0<计数我+ +)
{
(STRCMP(CH话,str [i]的。中国)== 0) />{
(STRCMP(BH,海峡[I]。英语)== 0){
点+ +
COUNT1 + +
printf的(“恭喜,你得到它!!\ n“)
}
其他
{
COUNT1 + +
printf的(”不幸的是,答错了!正确的翻译是:%S \ n“,STR [I]英语)
}
}
}
}
无效chaxun(点,诠释COUNT1)
{
printf的(“本次测试的结果是:\ n”)
>printf(“请总数:%d \ n”,COUNT1)</输出(正确:%DA \ n“,点)
/ / printf(”请正确率:%d \ \ n “,点* 100/count1)
}
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include <time.h>
struct word
{
char english[30]
char chinese[100]
int count /* 记录背单词的正确次数 */
}dic[4000]
char getChoice()
{
char str[10]
gets(str)
while (strlen(str)==0)
{
printf("输入为空,请重新输入:")
gets(str)
}
return str[0]
}
int main()
{
FILE *fp
char ch,line[100]
int kong,i,count=0,j=0,end=0,k=0
int last_process = 0
if((fp=fopen("cet4.txt","r"))==NULL)
{
printf("cannot open the txt!!!\n")
exit(0)
}
/* 读取所有单词 */
while(fgets(line,sizeof(line),fp)!=0)
{
/* 每一行记录的格式【单词 中文 正确数】*/
/* 读取单词 */
j=0
for(i=0i<line[i]!=' 'i++)
{
dic[count].english[j]=line[i]
j++
}
dic[count].english[i]='\0'
/* 特殊处理,如果这个字段是自定义的上次进度标记,则记下进度,假如进度标记是#last_process# */
if(strcmp(dic[count].english,"#last_process#") == 0)
{
last_process = atoi(line+i+1)
continue
}
/* 读取中文 */
j=0
for(i=kong+1i<line[i]!=' 'i++)
{
dic[count].chinese[j]=line[i]
j++
}
dic[count].chinese[j]='\0'
/* 正确数 */
dic[count].count = atoi(line+i+1)
count++
}
fclose(fp)
/* 打印下读取的信息 */
printf("单词数:%d\n上次背到第%d个单词\n", count, last_process)
/*while*/
/* 这里背单词策略,可以根据count来判断单词熟悉度,该值越大表示越熟悉 */
/* 负数表示记错了的次数,错的越多,负的越大 */
i = last_process
while(ch!=0)
{
// 可根据需要排序单词,排序依据是count字段大小
puts("\n1.随机20个单词测试\n")
puts("\n2.强化记忆\n")
puts("\n前一个(P)后一个(N)收藏(C)结束浏览(M)")
while(ch!=0)
{
ch=getChoice()
if(ch=='P'||ch=='p')
{
i = (last_process+count-1)%count
printf("%s\n\n",dic[i].english)
printf("%s\n\n",dic[i].chinese)
}
if(ch=='N'||ch=='n')
{
i = (last_process+1)%count
printf("%s\n\n",dic[i].english)
printf("%s\n\n",dic[i].chinese)
}
else if(ch=='C'||ch=='c')
{
printf("已经加入单词本")
}
if(ch=='M'||'m')
{
break
}
}
}
/* 程序退出 */
last_process = i
if((fp=fopen("cet4.txt","w"))==NULL)
{
printf("cannot open the txt!!!\n")
exit(0)
}
/* 把单词进入重新写入单词文件 */
for (i=0 i<count i++)
{
fprintf(fp, "%s %s %d\n", dic[i].english, dic[i].chinese, dic[i].count)
}
fprintf(fp,"#last_process# %d", last_process)
fclose(fp)
return 0
}
大致这样子,懒得写了~~~有需要可讨论
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)