1)防伪码的组成
防伪码由以下字符组成:0123456789ABCDEFGHJKLMNPQRSTUVWXYZ
(数字1和字母I相近、数字0和字母O相近,所以去掉字母I和字母O。全部字母大写) \
2)在命令行中输入2个参数,分别是:
防伪码长度
防伪码个数
例如:在命令行中调用程序为:学号.exe 10 10000
指的是防伪码长度为10,生成10000个防伪码。
3)防伪码的生成及注意事项
防伪码的长度由命令行参数决定;
防伪码由以下字符组成:0123456789ABCDEFGHJKLMNPQRSTUVWXYZ
(数字1和字母I相近、数字0和字母O相近,所以去掉字母I和字母O。全部字母大写) \
2)在命令行中输入2个参数,分别是:
防伪码长度
防伪码个数
例如:在命令行中调用程序为:学号.exe 10 10000
指的是防伪码长度为10,生成10000个防伪码。
3)防伪码的生成及注意事项
防伪码的长度由命令行参数决定;
所生成的防伪码不能重复(按照以上例子,生成了10000个防伪码,这10000个防伪码就肯定不能重复)。
class Program
{
static string strTableChar = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
static StringBuilder str=new StringBuilder();
public static void random(int n,int length)
{
Random ra = new Random();
HashSet<String> hashset = new HashSet<String>();
while(hashset.Count<n)
{
for (int j = 0; j < length; j++)
{
int a = ra.Next(33);
str.Append(strTableChar[a]);
}
hashset.Add(str.ToString());
str.Clear();
}
}
public static void Main(string[] args)
{
int length = int.Parse(args[0]);
int n = int.Parse(args[1]);
Stopwatch timer1 = new Stopwatch();
timer1.Start();
random(n,length);
timer1.Stop();
double dMilliseconds = timer1.Elapsed.TotalMilliseconds;
Console.WriteLine("生成个数为a:{0},运行时间为a:{1}",n,dMilliseconds);
Console.ReadKey();
Console.ReadLine();
}
}
776

被折叠的 条评论
为什么被折叠?



