asp.net(c#)两种随机数的算法,可用抽考题

  第一种算法,存大一点问题。没有查出来

  

复制代码 代码如下:

  static void Main(string[] args)

  {

  //

  // TODO: 在此处添加代码以启动应用程序

  int singletitlemeasure=5;

  int n=1;//声明一个表示考试类型的int变量

  Random ran=new Random(unchecked((int)DateTime.Now.Ticks));

  int Int1Random;

  switch(n)

  {

  case 1://表示为单选题

  {

  int i=1,k=1;

  int[] **i=new int[singletitlemeasure+1];//声明一个用于保存题号的数组

  int temp;//声明一个临时保存随机值的数组

  Int1Random=ran.Next(1,singletitlemeasure);

  **i=Int1Random;

  Console.WriteLine("**i["+i+"]="+**i);

  do

  { k=1; Int1Random=ran.Next(1,singletitlemeasure); temp=Int1Random; Console.WriteLine("temp:"+temp); do { if(temp!=**i[k]) {

  Console.WriteLine("**i["+k+"]="+**i[k]);

  k++;

  Console.WriteLine("循环了"+(k-1)+"次");

  }

  else

  {

  i--;

  Console.WriteLine("i="+i); } }while(k<i); i++; **i=temp; Console.WriteLine("**i["+i+"]="+**i); }while(i<=singletitlemeasure-1); for (i = 1; i <=5; i++)

  { Console.Write("Int1Random="); Console.WriteLine(**i);

  } break;

  }

  case 2://表示为多选题 { Console.WriteLine("Int2Random="); break;

  }

  case 3://表示为判断题

  {

  Console.WriteLine("Int3Random=");

  break;

  }

  default:

  { Console.WriteLine("Invalid selection. Please select 1, 2, or 3.");

  }

  break;

  }

  Console.Read();

  }

  

复制代码 代码如下:

  using System;

  namespace Temp

  {

  /// <summary>

  /// Class1 的摘要说明。

  /// </summary>

  class Class1

  {

  /// <summary>

  /// 应用程序的主入口点。

  /// </summary>

  [STAThread]

  static void Main(string[] args)

  {

  //

  // TODO: 在此处添加代码以启动应用程序

  int singletitlemeasure=20;//题库中的数

  int Int1Random;//临时产生的随机数

  int[] **i=new int[singletitlemeasure+1];//声明一个用于保存题号的数组

  bool bflag=true;

  bool bFlag=true;

  int n=1;//声明一个表示考试类型的int变量

  int i=1;//声明外循环数

  switch(n)

  {

  case 1://表示为单选题

  {

  do

  {

  //Random ran=new Random(unchecked((int)DateTime.Now.Ticks));//这样产生的随机数有点规律

  Random ran=new Random(unchecked((int)DateTime.Now.Millisecond));//这样产生的随机数更加随机一些 Int1Random=ran.Next(1,singletitlemeasure+1);

  //**i=Int1Random;

  //Console.WriteLine("**i["+i+"]="+**i);

  Console.WriteLine("Int1Random="+Int1Random);

  int temp=Int1Random;

  if( bFlag==true)

  {

  **i=Int1Random;

  Console.WriteLine("**i["+i+"]="+**i);

  bFlag=false;

  i++;

  }

  else

  {

  bflag=true;

  int k=1;//声明内循环数

  do

  {

  if(temp==**i[k])

  {

  //Console.WriteLine("**i["+k+"]="+**i[k]);

  bflag=false;

  break;

  }

  k++;

  }while(k<i);

  if( bflag==true)

  {

  **i[k]=temp;

  Console.WriteLine("**i["+i+"]="+**i);

  i++;

  }

  }

  }while(i<=5);

  for(i=1;i<=5;i++)

  {

  Console.WriteLine("**i["+i+"]="+**i);

  }

  break;

  }

  case 2://表示为多选题

  {

  Console.WriteLine("Int2Random=");

  break;

  }

  case 3://表示为判断题

  {

  Console.WriteLine("Int3Random=");

  break;

  }

  default:

  {

  Console.WriteLine("Invalid selection. Please select 1, 2, or 3.");

  }

  break;

  }

  Console.Read();

  //

  }

  }

  }