小弟在做一个在线考试系统,CS下的
第一:怎样实现随即出题?
题目在数据库中结构是:题目编号、题库类别(那类学员的)、题目类型(选择判断)、题目标题、题目选项、题目答案,请问这样的结构可以吗?第二:用什么来盛放一道一道的题目第三:项目实现题目导航,应该如何实现也就是向下翻或是向需方。

解决方案 »

  1.   

    这个应该在数据库查询的时候就是随机查询,如果是SQL SERVER 2005以上版本的话我记得有一个函数是可以生成随机的ID,然后再把这个ID排序就可以得到随机的题目了.
      

  2.   

    第一:怎样实现随即出题?
    ==
    用程序产生随机数,可使用System.Random类的Next方法第二:用什么来盛放一道一道的题目
    ==
    一般是数据库第三:项目实现题目导航,应该如何实现也就是向下翻或是向需方。
    ==
    按钮事件
      

  3.   


    select *, NewID() from table  //随机抽取一条纪录
    不过这样很容易重复
    你可以把题目的主键取出来放到一个List<>里(试题应该不会很多,一次取出来好了)
    然后System.Random类的Next方法通过索引随机取一条,回答后移除二
    存题目用数据库最方便了三
    点击按键,再Random.Next()
      

  4.   

    第一:怎样实现随即出题?用程序生成随机数  Random 第二:用什么来盛放一道一道的题目数据库第三:项目实现题目导航,应该如何实现也就是向下翻或是向需方。随机数对应一个题号的顺序,向上翻  题号-1,向下翻题号+1
      

  5.   

    1.Math.Random()
    2.DataBase
    3.+1,-1.
      

  6.   


            //表示题目的类
            private class Subject
            {
                public int Id;
                int type;
                int correctAnswer;
                ...
                public int UserAnswer;
            }        /// <summary>
            /// first field is the subject's ID
            /// </summary>
            Dictionary<int, Subject> subjects = new Dictionary<int, Subject>();
            /// <summary>
            /// store the subject's id, so you can get the previous/next subject
            /// </summary>
            List<int> indexList = new List<int>();
            
                int minId = 0;
                int maxId = 5000; // 题目编号最大值
                int randomId = new Random().Next(minId, maxId);            if (subjects.ContainsKey(randomId))
                {
                    // 随机数已经使用过,重新生成一个
                }
                else
                {
                    Subject sub = new Subject();
                    sub.UserAnswer = 1;
                    subjects.Add(sub.Id, sub);
                    indexList.Add(sub.Id);
                }             //找到第n个题目
                Subject sub = subjects[ indexList[n] ];
            
      

  7.   

    数据库保存题目,做一个题号list。
    产生个随机数,将该数代表的题目显示出来,题号list移除这个数
      

  8.   

    你也可以用HASHTABLE 保存题目撒~~~
      

  9.   

    调用Random函数就可以实现这个号码的随即调用
    具体如下:
    int n=random.Next(x,y);
      

  10.   

    你可以记录已经生成过的随机数值,如果是和以前的一样的话,就再生成一次,这样就能避免生产几个一样的。
    另外 new Random 时候,可以用上 DateTime.Now.Ticks 之类的避免重复。