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

不过我写的比较草率,代码结构不是很好,也没有体现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("  | A\tB\tC\tD\tE");
            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();
        }

效果:

(0)

相关推荐

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

    不过我写的比较草率,代码结构不是很好,也没有体现OOP的思想,这几天有空会重构一下. 先把代码发出来: 复制代码 代码如下: public class MatrixCardManager     {         public static int[,] ReadMatrixCardFromString(string matrixStr)         {             int[,] arr1 = new int[5, 5];             int[] tempArr =

  • 仿百度换肤功能的简单实例代码

    效果:(换肤出来一个div,选择你想要的图片,作为网页背景,保存) 要点:cookie保存状态 html代码: <body> <div id="header"> <div id="header_con"> <div class="dbg"><a href="javascript:;" onclick="showImgBox()">换肤</a&

  • JavaScript蒙板(model)功能的简单实现代码

    思路: •创建一个蒙板, 设置蒙板的堆叠顺序保证能将其它元素盖住 position: absolute; top: 0; left: 0; display: none; background-color: rgba(9, 9, 9, 0.63); width: 100%; height: 100%; z-index: 1000; •设置蒙板中内容的背景色和展示格式 width: 50%; text-align: center; background: #ffffff; border-radius

  • 基于JS简单实现手持弹幕功能+文字抖动特效代码

    前段时间抖音上有个抖动弹幕挺火的,于是决定仿写一个,话不多说,先看效果- 效果展示 GIF图看着有点模糊,但实际效果还是不错的. 第一眼看上去也不知道该咋做,那就先把要实现的功能拆解一下吧. 生成一个铺满全屏的黑色背景,写上文字,然后内容居中 实现无缝滚动 实现文字抖动特效 旋转90度(默认横屏展示) 代码如下 .html <div class="barrage-box"> <div class="text">抖动字幕</div>

  • 网页禁止鼠标左右键功能的简单代码

    网页禁止鼠标左右键功能的简单代码   这个代码以前在网上找的,试用效果不错,放这里留备份,我想这个也能算是常用的代码之一了.当然啦,查看源码时鼠标肯定可以用啦,不过,有时不用想那么复杂.要求那么强大,况且源码中的代码比文本多. document.oncontextmenu=new Function("event.returnValue=false;"); document.onselectstart=new Function("event.returnValue=false;

  • jQuery实现的仿select功能代码

    本文实例讲述了jQuery实现的仿select功能.分享给大家供大家参考.具体如下: 这里重新再次与大家分享jQuery仿select功能,这个实现起来倒不复杂,就当研究一下jQuey插件的用法啦,还望大家喜欢. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-fselect-cha-method-codes/ 具体代码如下: <!dooCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stri

  • js实现仿MSN带关闭功能的右下角弹窗代码

    本文实例讲述了js实现仿MSN带关闭功能的右下角弹窗代码.分享给大家供大家参考.具体如下: 这是一款非常精致漂亮的仿MSN右下角弹出窗口,带关闭功能,直接复制代码就管用.演示要用到几个小图片,运行的时候点击右键保存一下,这里提供一种思路,并不完全局限于此种方法,熟能生巧. 先来看看运行效果截图: 在线演示地址如下: http://demo.jb51.net/js/2015/js-f-msn-close-able-adv-codes/ 具体代码如下: <HTML> <HEAD> &l

  • JavaWeb 文件的上传和下载功能简单实现代码

    一.文件的上传和下载 1.文件上传的原理分析 1.文件上传的必要前提: a.提供form表单,method必须是post           b.form表单的enctype必须是multipart/form-data           c.提供input type="file"类的上传输入域 2.enctype属性 作用:告知服务器请求正文的MIME类型(请求消息头:Content-Type作用是一致的)      可选值: application/x-www-form-urlen

  • Vue验证码60秒倒计时功能简单实例代码

    template <template> <div class='login'> <div class="loginHeader"> <input type="tel" class="loginBtn border-bottom" placeholder="请输入手机号" /> <input type="tel" class="codeBtn&q

  • java web中图片验证码功能的简单实现方法

    用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

随机推荐