其实就是我太无聊了。
在家里背单词,感觉找不到一个可以自定义词汇表的背单词 app 好烦啊,忽然灵机一动,我为什么不自己写一个~~(丑的死)~~的背单词小工具呢?
这个时候才感觉是信息组的真好=w=
结果本来以为自己 5 分钟可以写完,然后写了 20 分钟……
这个~~应该没人想用~~的工具的用法如下:
在 english.in 文件里输入自定义的单词表:
先一行输入单词数,然后输入单词,然后输入词义(或者例句)空格请用其他符号代替(因为一开始用 gets 出了很多问题,又因为懒所以不想写读入优化就改成了 scanf)
运行,在操作台这么操作:
然后会开始,第一遍的单词会告诉你单词,输入 “y”,会再告诉你词义
如果记住了,输入 “y” 即可视为通过,否则输入任意字符。
对于第一遍通过的单词,会告诉你词义和首字母(在括号里),然后请你默写此单词。
如果默写对了,此单词不会再出现
假如所有单词通过,输出 “you are so good!” 来鼓励你
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>
#include<cstdlib>
using namespace std;
struct node{
char word[55],mean[205];
int ok;
}t[1005],tmp;
int n,luk;
int main()
{
char ch[55];
freopen("english.in","r",stdin);
srand(time(NULL));
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%s%s",t[i].word,t[i].mean);
fclose(stdin);
freopen("CON","r",stdin);//这是在 windows 系统启动操作台的命令,如果是 linux 系统请改为 freopen("/dev/console", "r", stdin)
while(n){
luk=rand()%n+1;
if(!t[luk].ok){
printf("%s\n",t[luk].word);
scanf("%s",ch);
printf("%s\n",t[luk].mean);
scanf("%s",ch);
if(ch[0]=='y')t[luk].ok++;
}
else {
printf("%s (%c)\n",t[luk].mean,t[luk].word[0]);
scanf("%s",ch);
if(strcmp(ch,t[luk].word)==0){
tmp=t[luk];t[luk]=t[n];t[n]=tmp;
n--;printf("right!\n");
}
else {printf("wrong! %s\n",t[luk].word);}
}
}
puts("you are so good!");
return 0;
}
0 条评论