我要用C#做一个模拟考试系统,怎样随机的从数据库中调用选择题啊!请高人指点啊

我要用C#做一个模拟考试系统,怎样随机的从数据库中调用选择题啊!请高人指点啊,第1张

public int GetRandom()//得到随机数

{

int count = 你数据库中选择提题的个数;

Random rm = new Random();

int temp = rmNext(1, count-1); //产生1~n-1的随机数

return temp;

}

    $mysql_server_name="localhost"; //数据库服务器名称

    $mysql_username="root"; // 连接数据库用户名

    $mysql_password=""; // 连接数据库密码

    $mysql_database=""; // 数据库的名字

    

    // 连接到数据库

    $conn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);                   

    // 从表中提取信息的sql语句

    $strsql="SELECT  FROM 表名 WHERE type='交友'";

    // 执行sql查询

    $result=mysql_db_query($mysql_database, $strsql, $conn);

    // 获取查询结果

    var_dump(array_rand($result));

随机读取可用newid(),取一条可用top 1

举例:如在表test中随机抽取一条未被读取的数据,执行语句为:

selecttop1fromtestorderbynewid()第一次执行结果:

第二次执行结果:

结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果。

declare @n int=1,@i int

declare @tb table(i int)

declare @t table(m int )

while @n<100

begin

insert into @tb select @n

set @n=@n+1

end

select from @tb

select @i=i from @tb where i=cast(rand()100 as int)

insert into @t select @i

select from @t

select from @tb where i=@i

select from @tb where i=cast(rand()100 as int) and i not in (select from @t)

设置一个自增字段 用cast(rand()100 as int)随机 把查到的编号存到一张表中 下一次查询 not in那个取过的编号 例子如上

在数据库里加一列“自动编号” 属性为自动编号

再加一列 ,属性为“数字”,标题为“记录”

窗体里放一ADO控件

加一列 “题目”;文本

加一列“1”;文本

加一列“2”;文本

加一列“3”;文本

加一列“4”;文本

加一列“正确答案”;数字

Option Explicit

Private conn As adodbConnection

Private Rs As adodbRecordset

Private ACSS As String

Dim s As Long

Public Sub Connect() '随机读取一个题目、打乱

Set conn = New adodbConnection

Set Rs = New adodbRecordset

connOpen "Provider=MicrosoftJETOLEDB40;Data Source=" & AppPath & "\数据库名mdb;Jet OLEDB:Database Password="

ACSS = "select from 你的表 ORDER BY 自动编号 ASC"

RsOpen ACSS, conn, adOpenStatic, adLockOptimistic

Randomize Time

Do

s = Int(Rnd RsMaxRecords + 1)

RsFind ("自动编号='" & s & "'")

Loop until Rsfields("记录")=0

Dim R As Integer '正确答案编号

Dim ABCD(3) As String

Dim TiMu As String

Dim AA As Integer

Dim BB As Integer

Dim CC As Integer

Dim DD As Integer

AA = Int(Rnd 4 + 1)

Do

BB = Int(Rnd 4 + 1)

Loop Until BB <> AA

Do

CC = Int(Rnd 4 + 1)

Loop Until BB <> CC And AA <> CC

Do

DD = Int(Rnd 4 + 1)

Loop Until DD <> CC And AA <> DD And DD <> BB

ABCD(0) = RsFields(AA)

ABCD(1) = RsFields(BB)

ABCD(2) = RsFields(CC)

ABCD(3) = RsFields(DD)

R = RsFields("正确答案")

Select Case R

Case Is = AA

'ABCD(0)里的是正确答案

Case Is = BB

'ABCD(1)里的是正确答案

Case Is = CC

'ABCD(2)里的是正确答案

Case Is = DD

'ABCD(3)里的是正确答案

End Select

TiMu = RsFields("题目")

Rsfields("记录")=1

RsClose

connClose

手打,可能有小错

End Sub

个人觉得VS2010好用的多、、

public void randResultSet() {

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

SessionFactory sf = HibernateSessionFactorygetSessionFactory();

Session s = sfopenSession();

List<user> list = screateQuery("from user")list();

int maxSize = listsize();

while (true) {

int randNumber = (int) (Mathrandom() maxSize + 1) - 1;

setadd(randNumber);

if (setsize() >= 10) {

break;

}

try {

Threadsleep(10);

} catch (InterruptedException e) {

eprintStackTrace();

}

}

for (int a : set) {

user u = (user) listget(a);

Systemoutprintln(ugetName());

}

}

insert

into

a(id,姓名,性别)

values

(trunc(dbms_randomvalue(1,100)),'小明','男');

commit;

----trunc(dbms_randomvalue(1,100))

随机生成一个1~100以内的整数。

以上就是关于我要用C#做一个模拟考试系统,怎样随机的从数据库中调用选择题啊!请高人指点啊全部的内容,包括:我要用C#做一个模拟考试系统,怎样随机的从数据库中调用选择题啊!请高人指点啊、php,选择“数据库表里”符合某个条件的多个数据,然后怎么再随机选取一个、如何从mysql数据库中随机获取任意条数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9846483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存