可定制大小和数量的随机数函数

宝宝_122

宝宝_122

2016-01-29 12:11

可定制大小和数量的随机数函数,可定制大小和数量的随机数函数

可定制大小和数量的随机数函数
作者:93106部队 袁海鸿

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载本文示例源代码

近日在做一个考试软件时,需要每次题目不同且题数可定制,在C++没找到适用函数,就顺手做了一个较通用的C++的随机函数扩展,请大家编程时参考。

void randEx(int MAX,int NUM) {int k=0;int j=0;time_t t;//设置rand函数所用的启始种子值,以期每次产生的随机数序列均不相同。srand((unsigned) time(&t));for (k=1;k<=NUM;k++)//定制随机数数量。{RAND[k]=rand()%MAX;//定制随机数在0至最大值之间。do  {for (j=1;j<k;j++) if (RAND[j]==RAND[k]) //一次随机数序列中有相同随机数则再//产生一个,直至一次随机数序列中随机数全不相同。{RAND[k]=rand()%MAX;break;}}while(j<k);}}
具体用法:首先在你的工程中相应类头文件中定义一个整型数组RAND[],把此函数加入头文件,在相应的类实现中传递最大值和数量,输出随机数序列。详见示例工程, 示例工程中主要代码如下:
// TestRandDlg.h : header file//class CTestRandDlg : public CDialog{public:CTestRandDlg(CWnd* pParent = NULL); // standard constructorint RAND[20];void randEx(int MAX,int NUM);CWnd*  p_StaticWnd; .....}
// TestRandDlg.cpp : implementation file//.....void CTestRandDlg::OnTestrand() {             UpdateData(TRUE);             randEx(m_nRandMax,m_nRandNum);                          CString str;             if (m_nRandNum>=1){             str.Format("%d",RAND[1]);             p_StaticWnd = GetDlgItem(IDC_STATIC1);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=2){             str.Format("%d",RAND[2]);             p_StaticWnd = GetDlgItem(IDC_STATIC2);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=3){             str.Format("%d",RAND[3]);             p_StaticWnd = GetDlgItem(IDC_STATIC3);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=4){             str.Format("%d",RAND[4]);             p_StaticWnd = GetDlgItem(IDC_STATIC4);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=5){             str.Format("%d",RAND[5]);             p_StaticWnd = GetDlgItem(IDC_STATIC5);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=6){             str.Format("%d",RAND[6]);             p_StaticWnd = GetDlgItem(IDC_STATIC6);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=7){             str.Format("%d",RAND[7]);             p_StaticWnd = GetDlgItem(IDC_STATIC7);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=8){             str.Format("%d",RAND[8]);             p_StaticWnd = GetDlgItem(IDC_STATIC8);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=9){             str.Format("%d",RAND[9]);             p_StaticWnd = GetDlgItem(IDC_STATIC9);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=10){             str.Format("%d",RAND[10]);             p_StaticWnd = GetDlgItem(IDC_STATIC10);             p_StaticWnd->SetWindowText(str);}             UpdateData(FALSE);}

本工程在VC++6.0+WindowsXP中调试通过。
通信地址:(024000)内蒙赤峰市93106部队自动化站
展开更多 50%)
分享

猜你喜欢

可定制大小和数量的随机数函数

C语言教程 C语言函数
可定制大小和数量的随机数函数

Excel2007RANDBETWEEN随机数函数

电脑入门
Excel2007RANDBETWEEN随机数函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle 随机数

编程语言 网络编程
Oracle 随机数

随机数算法

编程语言 网络编程
随机数算法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Javascript随机数教程

Web开发
Javascript随机数教程

用ASP随机产生随机数

ASP
用ASP随机产生随机数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

CSS超级技巧大放送(2)

CSS超级技巧大放送(2)

《神魔》正确运用突围与击飞攻略

《神魔》正确运用突围与击飞攻略
下拉加载更多内容 ↓