首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 软件开发 → VC编程 → 文章内容

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

作者:93106部队 袁海鸿  来源:网上收集  发布时间:2007-3-27 10:10:40

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

下载本文示例源代码

近日在做一个考试软件时,需要每次题目不同且题数可定制,在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部队自动化站

[] [返回上一页] [打 印]
  • 上一篇文章:关于限次软件的制作
  • 下一篇文章:用vc.net实现记录开关机时间的程序

  • 相关文章:
  • 可定制大小和数量的随机数函数
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号