C#防伪码

来源:互联网 发布:高级软件测试培训 编辑:程序博客网 时间:2024/04/28 10:13

感觉C#防伪码那道编程题蛮有趣的,因此想把它拷过来。

.实验要求

1)防伪码的组成

防伪码由以下字符组成:

0123456789ABCDEFGJKLMNPQRSTUVWXYZ

(数字1和字母I相近,数字0O相近,所以去掉字母I和字母O。全部字母大写)

2)在命令行中输入2个参数,分别是:

1.防伪码长度

2.防伪码个数

例如:在命令行中调用程序为:学号:exe 10 10000

指的是防伪码长度为10,生成10000个防伪码。

3)防伪码的生成及注意事项

  1.防伪码的长度由命令行参数决定;

 2.所生成的防伪码不能重复(按照以上例子,生成了10000个防伪码,10000个防伪码就肯定不能重复)。

主要代码:

StringBuilder sb = new StringBuilder();

           strinstrTableChar= 

"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";

           //选择用HashSet,是因为里面的元素是不可重复的

           HashSet<string> set = new HashSet<string>();

           Random rd = new Random();

 

            //传入2个参数分别为防伪码长度width,防伪码个数num

            int width = int.Parse(args[0]);

            int num = int.Parse(args[1]);

 

            for (; set.Count < num; )

            {

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

                {

                  sb.Append(strTableChar[rd.Next(0, strTableChar.Length)]);

                }

                set.Add(sb.ToString());

                sb.Remove(0, sb.Length);

            }


0 0
原创粉丝点击