M2
来源:互联网 发布:无损音乐剪切软件 编辑:程序博客网 时间:2024/06/08 16:04
试着开发一个管理英语单词的工具,要求:
1. 单词在word.txt 里面 文件里面的单词可以随时添加和删除。每一行形式 “computer :: 计算机”;
2. 实现接口函数 generateBlank (int style, int NumWord, int NumHidden), 其中style是产生文件形式,NumWord 是随机抽出的单词数目, NumHidden是每个单词隐藏的字符个数。该接口实现分三类:
generateBlank(1, 20, 2)此时 style=1: 从word.txt随机抽取 20行,并对英文单词进行随机的字母隐藏 如 “dance :: 舞蹈,跳舞”, NumHidden=2, 可以产生 “a_ce :: 舞蹈,跳舞”, ““出现的位置是随机的;
generateBlank(2, 20, -1)此时 style=2: 从word.txt随机抽取 20行,只保留中文注释,如“舞蹈,跳舞 :: ___”;
generateBlank(3, 20, -1)此时 style=3;从word.txt随机抽取20行,只保留英文,如”dance :: __________”;
generateBlank (int style, int NumWord, int NumHidden) 产生的结果输出到文件 text_style_NumWord_NumHidden.txt 并把随机抽取到的数据放到 text_style_NumWord_NumHidden_result.txt
#include<stdio.h>#include<stdlib.h>#include<time.h> #include<string.h>typedef struct{ char s[50]; int flag; //标记是否被修改 int length; //单词的长度}Word;Word str[50]; //单词表int n; //输入单词的数目void generateBlank (int style, int NumWord, int NumHidden){ int index,p1,p2,k; srand((unsigned)time(NULL)); if(style==3&&NumWord==20&&NumHidden==-1){ for(int i=0;i<20;){ index=(rand()%n); if(str[index].flag==0) i++; else continue; //printf("index=%d\n",index); for(int j=0;str[index].s[j]!='\0';j++) if(str[index].s[j]<'a'||str[index].s[j]>'z') if(str[index].s[j]!=':'&&str[index].s[j]!=' '){ str[index].s[j]='_'; str[index].flag=1; } } } else if(style==2&&NumWord==20&&NumHidden==-1){ for(int i=0;i<20;){ index=(rand()%n); if(str[index].flag==0) i++; else continue; //printf("index=%d\n",index); for(int j=0;str[index].s[j]!='\0';j++) if(str[index].s[j]>='a'&&str[index].s[j]<='z'){ str[index].s[j]='_'; str[index].flag=1; } } } else if(style==1&&NumWord==20&&NumHidden==2){ for(int i=0;i<20;){ index=rand()%n; if(str[index].flag==0) i++; else continue; //printf("index=%d\n",index); for(k=0;k<1;){ p1=rand()%(str[index].length); p2=rand()%(str[index].length); if(p1!=p2) k++; else continue; printf("p1=%d,p2=%d\n",p1,p2); str[index].s[p1]='_'; str[index].s[p2]='_'; str[index].flag=1; } } } else printf("不存在此类接口,输入有误!");}void save1(){ FILE *fp; int i; if((fp=fopen("C:\\Users\\Carl_Hugo\\Desktop\\a.txt","wb"))==NULL){ printf("can not open\n"); return; } for(i=0;i<n;i++) if(fwrite(&str[i],sizeof(Word),1,fp)!=1) printf("ERROR\n"); fclose(fp);}void save2(){ FILE *fp; int i; if((fp=fopen("C:\\Users\\Carl_Hugo\\Desktop\\b.txt","wb"))==NULL){ printf("can not open\n"); return; } for(i=0;i<n;i++) if(fwrite(&str[i],sizeof(Word),1,fp)!=1) printf("ERROR\n"); fclose(fp);}int main(){ int s,nw,nh,i,number; printf("输入 style NumWord NumHidden(用空格分开)\n共以下三种形式\n(1,20,2)\n(2,20,-1)\n(3,20,-1)\n:"); scanf("%d%d%d",&s,&nw,&nh); printf("输入单词表中的单词数(大于20):"); scanf("%d",&n); getchar(); printf("输入单词:\n"); for(i=0;i<n;i++){ gets(str[i].s); str[i].flag=0; int j=0; while(str[i].s[j]>='a'&&str[i].s[j]<='z')j++; str[i].length=j; save1(); } printf("你输入的单词为:\n"); for(i=0;i<n;i++) printf("%s\n",str[i].s); generateBlank (s,nw,nh); printf("\n"); printf("处理后的单词为:\n"); for(i=0;i<n;i++) printf("%s\n",str[i].s); save2(); return 0;}
0 0
- m2
- m2
- m2
- m2
- M2
- m2
- .m2/repository
- m2 android
- PHY M2
- mac .m2
- MyEclipse 4.1 M2 发布
- 继续研究m2
- WOW M2 文件格式学习
- M2文件头
- MyEclipse 8.5 M2 下载
- 关于.m2/setting.xml
- maven2 .m2文件夹
- M0、M1、M2、M3
- 共同学习Java源码--常用数据类型--String(十)
- JavaScript之定义函数的方法
- 脱离 Spring 实现复杂嵌套事务,之五(SUPPORTS - 跟随环境)
- 虚拟机VM tools的安装实现虚拟机中内容能够拷贝到本机上
- 我的第一篇博客——红黑树的基本操作
- M2
- 脱离 Spring 实现复杂嵌套事务,之六(NOT_SUPPORTED - 非事务方式)
- 经验
- AndroidStudio离线使用gradle
- 玩转xargs
- 脱离 Spring 实现复杂嵌套事务,之七(NEVER - 排除事务)
- 统计源代码目录中C源程序行数(find+args命令的结合)
- java static关键字解析
- 脱离 Spring 实现复杂嵌套事务,之八(MANDATORY - 要求存在事务)