手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#仿密保卡功能的简单实现代码
C#仿密保卡功能的简单实现代码
摘要:不过我写的比较草率,代码结构不是很好,也没有体现OOP的思想,这几天有空会重构一下。先把代码发出来:复制代码代码如下:publicclass...

不过我写的比较草率,代码结构不是很好,也没有体现OOP的思想,这几天有空会重构一下。

先把代码发出来:

复制代码 代码如下:

public class MatrixCardManager

{

public static int[,] ReadMatrixCardFromString(string matrixStr)

{

int[,] arr1 = new int[5, 5];

int[] tempArr = new int[25];

int k = 0;

string[] tempArrStr = matrixStr.Split(',');

for (int i = 0; i < tempArr.Length; i++)

{

tempArr[i] = Convert.ToInt32(tempArrStr[i]);

}

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

arr1[i, j] = tempArr[k];

k++;

}

}

return arr1;

}

public static string SaveMatrixIntoString(int[,] arr)

{

string matrixStr = String.Empty;

int[] lineArr = new int[25];

int k = 0;

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

lineArr[k] = arr[i, j];

k++;

}

}

for (int i = 0; i < lineArr.Length; i++)

{

matrixStr += lineArr[i];

if (i < 24)

{

matrixStr += ",";

}

}

return matrixStr;

}

public static void PrintMatrix(int[,] arr)

{

Console.WriteLine(" | AtBtCtDtE");

Console.WriteLine("-------------------------------------------");

for (int k = 0; k < 5; k++)

{

Console.Write(k + " | ");

for (int l = 0; l < 5; l++)

{

Console.Write(arr[k, l] + "t");

}

Console.WriteLine();

}

}

public static int[,] GenerateRandomMatrix()

{

Random r = new Random();

int[,] arr = new int[5, 5];

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

arr[i, j] = r.Next(0, 100);

}

}

return arr;

}

public static char GetColCode(int colIndex)

{

char colCode = '-';

switch (colIndex)

{

case 0:

colCode = 'A';

break;

case 1:

colCode = 'B';

break;

case 2:

colCode = 'C';

break;

case 3:

colCode = 'D';

break;

case 4:

colCode = 'E';

break;

default:

break;

}

return colCode;

}

public static bool Validate(int[,] arr, int colIndex1, int rowIndex1, int colIndex2, int rowIndex2, int colIndex3, int rowIndex3, string userInput, bool validFlag)

{

try

{

string[] inputArr = userInput.Split(',');

bool OK0 = arr[rowIndex1, colIndex1] == Convert.ToInt32(inputArr[0]);

bool OK1 = arr[rowIndex2, colIndex2] == Convert.ToInt32(inputArr[1]);

bool OK2 = arr[rowIndex3, colIndex3] == Convert.ToInt32(inputArr[2]);

if (OK0 && OK1 && OK2)

{

validFlag = true;

}

else

{

validFlag = false;

}

}

catch (Exception)

{

Console.WriteLine("Oh, **!");

}

return validFlag;

}

}

调用:

复制代码 代码如下:

static void Main(string[] args)

{

Console.WriteLine("Generate and Print Matrix Card:n");

int[,] arr = MatrixCardManager.GenerateRandomMatrix();

MatrixCardManager.PrintMatrix(arr);

Console.WriteLine("n");

Console.WriteLine("Save Matrix Card into string for storage:n");

string matrixStr = MatrixCardManager.SaveMatrixIntoString(arr);

Console.WriteLine(matrixStr);

Console.WriteLine("n");

Console.WriteLine("Read Matrix Card from string:n");

int[,] arr1 = MatrixCardManager.ReadMatrixCardFromString(matrixStr);

MatrixCardManager.PrintMatrix(arr1);

Console.WriteLine("n");

Console.WriteLine("Matrix Card Validation:n");

Random r = new Random();

int colIndex1 = r.Next(0, 4);

int rowIndex1 = r.Next(0, 4);

char colCode1 = MatrixCardManager.GetColCode(colIndex1);

int colIndex2 = r.Next(0, 4);

int rowIndex2 = r.Next(0, 4);

char colCode2 = MatrixCardManager.GetColCode(colIndex2);

int colIndex3 = r.Next(0, 4);

int rowIndex3 = r.Next(0, 4);

char colCode3 = MatrixCardManager.GetColCode(colIndex3);

Console.WriteLine("Please Input Card Number At {0}{1},{2}{3},{4}{5}:n", colCode1, rowIndex1, colCode2, rowIndex2, colCode3, rowIndex3);

string userInput = Console.ReadLine();

bool validFlag = false;

validFlag = MatrixCardManager.Validate(arr, colIndex1, rowIndex1, colIndex2, rowIndex2, colIndex3, rowIndex3, userInput, validFlag);

if (validFlag)

{

Console.WriteLine("All input are correct!");

}

else

{

Console.WriteLine("Sorry, your input were wrong!");

}

Console.ReadKey();

}

效果:

C#仿密保卡功能的简单实现代码1

【C#仿密保卡功能的简单实现代码】相关文章:

C#版ftp方法实现类的代码

C# 无需COM组件创建快捷方式的实现代码

C#加密解密文件小工具实现代码

C# zxing二维码写入的实例代码

C#生成注册码的实例代码

C# 游戏外挂实现核心代码

C# 一个WCF简单实例

C#中实现网段扫描的代码

C#自动创建数据库实现代码

c# 共享状态的文件读写实现代码

精品推荐
分类导航