使用VC++开发考场随机排座系统
2009-02-27 20:02:47 来源:WEB开发网产生随机数的核心代码如下:
//产生有四位小数的min和max之间的一个随机数
double CRandomGen::AverageRandom(double min, double max)
{
int minInteger = (int)(min*10000);
int maxInteger = (int)(max*10000);
int randInteger = rand()*rand();
int diffInteger = maxInteger - minInteger;
int resultInteger = randInteger % diffInteger + minInteger;
return resultInteger/10000.0;
}
//计算给定随机数的一位正态分布函数值
double CRandomGen::Normal(double x, double miu, double sigma)
{
return 1.0/(sqrt(2*PI)*sigma)* exp(-1*(x-miu)*(x-miu)/(2*sigma*sigma));
}
//对产生的随机数进行筛选
double CRandomGen::NormalRandom(double miu, double sigma, double min, double max)
{
double x;
double dScope;
double y;
do
{
x = AverageRandom(min,max);
y = Normal(x, miu, sigma);
dScope = AverageRandom(0, Normal(miu,miu,sigma));
}while( dScope > y);
return x;
}
3.3打印处理
由于整个系统采用了基于对话框的应用程序结构,而基于对话框的应用程序本身不具有文档/视图结构,对打印功能的支持有限,所以整个打印处理部分也需要自定义解决,本系统采用了生成临时CFrameWnd和CView类对象的方法[4]调用系统默认的OnFilePrintPreview()函数来实现打印功能,文献[4]对此有详细描述。
4 结束语
本系统运行后的界面如图3所示,通过该系统可以很方便地实现对考生随机座号的生成,同时,系统提供的丰富的打印预览和打印功能也为数据的输出提供了便利,如图4。
图3 程序运行主界面
图4 打印功能模块界面
本系统是根据高校考试的需求,结合高校学生信息管理的特点开发的,整个系统具有良好的实用性和可扩充性,已经应用于院系的考试中,能满足院系环境下的考试管理需求,使用该系统一方面可以减少相关教务和教学管理人员的工作量和劳动强度,增加工作效率,另一方面也提高了考试管理信息化的水平,使得考试管理工作上了一个新的台阶,具有非常好的通用性和推广价值。
更多精彩
赞助商链接