6 9

java实现的简单密保卡功能

本文概要:使用java实现简单的密保卡功能:获取3个随机密保位,通过密保位获得密码.

这同样是今天笔试遇到的题目,一字没填..悲剧..

  1: package org.zzp.test;
  2: 
  3: import java.util.Random;
  4: 
  5: /**
  6:  * @author Tony 
  7:  * 本类实现动态密保卡功能 
  8:  */
  9: public class CodeCard {
 10:    private String letter = "ABCDEFGH";
 11:    private String[][] code = {
 12:          { "56", "56", "26", "89", "65", "35", "58", "69" },
 13:          { "59", "36", "22", "05", "59", "20", "56", "26" },
 14:          { "25", "39", "65", "89", "68", "57", "49", "52" },
 15:          { "56", "36", "29", "86", "59", "74", "59", "68" },
 16:          { "12", "30", "50", "26", "98", "20", "65", "20" },
 17:          { "12", "56", "95", "68", "26", "35", "16", "26" },
 18:          { "15", "26", "35", "16", "59", "35", "68", "95" },
 19:          { "11", "65", "98", "56", "26", "35", "26", "68" } };
 20: 
 21:    /**
 22:     * 输出密保卡矩阵
 23:     */
 24:    public void printCodeCard() {
 25:
System.out.println("-------输出密保卡矩阵---------");
 26:       for (int i = 0; i < 8; i++) {
 27:          for (int j = 0; j < 8; j++) {
 28:             System.out.print(code[i][j] + " ");
 29:          }
 30:          System.out.println();
 31:       }
 32:       System.out.println("-----------------------------");
 33:    }
 34: 
 35:    /**
 36:     * @return 随机获得的密保卡密保位
 37:     */
 38:    public String getTitle() {
 39:       String result = "";
 40:       Random rd = new Random();
 41:       for (int i = 0; i < 3; i++) {
 42:          int x = rd.nextInt(8);
 43:          int y = rd.nextInt(8);
 44:          char cx = letter.charAt(x);
 45:          y++;
 46:          result += cx;
 47:          result += y;
 48:       }
 49:       return result;
 50:    }
 51: 
 52:    /**
 53:     * @param title 密保位
 54:     * @return 密码
 55:     */
 56:    public String getCode(String title) {
 57:       String result = "";
 58:       title = title.toUpperCase();
 59:       int a1 = letter.indexOf(title.charAt(0));
 60:       int a2 = title.charAt(1) - 48 - 1;
 61:       int b1 = letter.indexOf(title.charAt(2));
 62:       int b2 = title.charAt(3) - 48 - 1;
 63:       int c1 = letter.indexOf(title.charAt(4));
 64:       int c2 = title.charAt(5) - 48 - 1;
 65:       String code_a = code[a1][a2];
 66:       String code_b = code[b1][b2];
 67:       String code_c = code[c1][c2];
 68: 
 69:       result = code_a + code_b + code_c;
 70: 
 71:       return result;
 72:    }
 73: 
 74:    public static void main(String[] args) {
 75:       CodeCard card = new CodeCard();
 76:       card.printCodeCard();
 77:       String title = card.getTitle();
 78:       String code = card.getCode(title);
 79:       System.out.println("密码位:" + title);
 80:       System.out.println("密码是:" + code);
 81:    }
 82: }

 

代码质量很差,将就着看看吧.

本文概要:使用java实现简单的密保卡功能:获取3个随机密保位,通过密保位获得密码.

这同样是今天笔试遇到的题目,一字没填..悲剧..

  1: package org.zzp.test;
  2: 
  3: import java.util.Random;
  4: 
  5: /**
  6:  * @author Tony 
  7:  * 本类实现动态密保卡功能 
  8:  */
  9: public class CodeCard {
 10:    private String letter = "ABCDEFGH";
 11:    private String[][] code = {
 12:          { "56", "56", "26", "89", "65", "35", "58", "69" },
 13:          { "59", "36", "22", "05", "59", "20", "56", "26" },
 14:          { "25", "39", "65", "89", "68", "57", "49", "52" },
 15:          { "56", "36", "29", "86", "59", "74", "59", "68" },
 16:          { "12", "30", "50", "26", "98", "20", "65", "20" },
 17:          { "12", "56", "95", "68", "26", "35", "16", "26" },
 18:          { "15", "26", "35", "16", "59", "35", "68", "95" },
 19:          { "11", "65", "98", "56", "26", "35", "26", "68" } };
 20: 
 21:    /**
 22:     * 输出密保卡矩阵
 23:     */
 24:    public void printCodeCard() {
 25:
System.out.println("-------输出密保卡矩阵---------");
 26:       for (int i = 0; i < 8; i++) {
 27:          for (int j = 0; j < 8; j++) {
 28:             System.out.print(code[i][j] + " ");
 29:          }
 30:          System.out.println();
 31:       }
 32:       System.out.println("-----------------------------");
 33:    }
 34: 
 35:    /**
 36:     * @return 随机获得的密保卡密保位
 37:     */
 38:    public String getTitle() {
 39:       String result = "";
 40:       Random rd = new Random();
 41:       for (int i = 0; i < 3; i++) {
 42:          int x = rd.nextInt(8);
 43:          int y = rd.nextInt(8);
 44:          char cx = letter.charAt(x);
 45:          y++;
 46:          result += cx;
 47:          result += y;
 48:       }
 49:       return result;
 50:    }
 51: 
 52:    /**
 53:     * @param title 密保位
 54:     * @return 密码
 55:     */
 56:    public String getCode(String title) {
 57:       String result = "";
 58:       title = title.toUpperCase();
 59:       int a1 = letter.indexOf(title.charAt(0));
 60:       int a2 = title.charAt(1) - 48 - 1;
 61:       int b1 = letter.indexOf(title.charAt(2));
 62:       int b2 = title.charAt(3) - 48 - 1;
 63:       int c1 = letter.indexOf(title.charAt(4));
 64:       int c2 = title.charAt(5) - 48 - 1;
 65:       String code_a = code[a1][a2];
 66:       String code_b = code[b1][b2];
 67:       String code_c = code[c1][c2];
 68: 
 69:       result = code_a + code_b + code_c;
 70: 
 71:       return result;
 72:    }
 73: 
 74:    public static void main(String[] args) {
 75:       CodeCard card = new CodeCard();
 76:       card.printCodeCard();
 77:       String title = card.getTitle();
 78:       String code = card.getCode(title);
 79:       System.out.println("密码位:" + title);
 80:       System.out.println("密码是:" + code);
 81:    }
 82: }

 

代码质量很差,将就着看看吧.