结对编程之队友代码分析
优点:
- Java GUI界面:
界面简约,操作简单,实用性强
2 .独特的解题思想(上代码)
短短一个几行的函数,生成了具有不同长度,不同类型,随机化程度高的算术题,充分展现思维的灵活性,也让我学到了这种巧妙的解题方式;
//生成对应年级的题目 public String getSubject(int type) { Random rand = new Random(); int Num,NumOpe; if(type == 0) NumOpe = 4; //小学运算符下标取前4个 else if(type == 1) NumOpe = 12; //初中运算符取前12个 else NumOpe = 24; //高中运算符取前24个 Num = rand.nextInt(4)+2; //操作数个数 String Subject1 = " "; //初始化题目 序号(eg:1.)后有空格 for(int i = 0; i < Num; i++) { if(i == Num-1) //最后一个操作数则后面不用加运算符 Subject1 += (rand.nextInt(100)+1); else Subject1 += (rand.nextInt(100)+1) + (Operator[rand.nextInt(NumOpe)]); } return Subject1; }
3.程序较高的模块性:
所有操作封装成对应的函数,主函数简单明了;
public static int toHash(String str) void re_title(String name) String getTime() public Boolean check_xiaoxue() public Boolean check_chuzhong() public Boolean check_gaozhong() public String getSubject(int type)
4. I/O处理人性化:
可以自由的改变输出文件夹的位置
File folder = new File("F:\\试卷"); //生成放试卷的文件夹 if(!folder.exists()){ //如果文件夹不存在 folder.mkdir(); //创建文件夹 }
5. Hash去重:简单高效的去重方式
public static int toHash(String str) //字符串哈希函数,返回字符串生成哈希值 { int hashcode = 0; int length = str.length(); int letterValue = 0; for(int i = 0; i < length; i++) { letterValue += str.charAt(i); hashcode = letterValue % 301; } return hashcode; }
缺点:
代码过长,可以写一些复用函数来精简代码;