王 瑜, 闫 沫
(1.西安航空学院 机械工程学院,陕西 西安 710077;2.西安建筑科技大学 机电工程学院,陕西 西安 710055)
随着计算机软、硬件技术的飞速发展,以信息技术为代表的管理信息系统在各个行业的应用十分普遍,在各大院校中采用学生成绩管理系统又起着举足轻重的作用。随着我国高校的招生规模逐年扩大,在校学生数量增加,学生成绩管理成了新的难题,目前很多高校采取的办法是靠人工进行管理,每学期由任课教师把自己所带的课程的学生成绩统计、分析出来并填写每一个班级的成绩统计分析表,统一交到考试管理中心,同时由任课教师将学生的成绩登记到学校教务处的网页上,供学生查询。可以看出,这种方法的效率很低,而且不利于对学生的成绩等信息长期保存,因此,需要一种学生成绩管理系统来长期、准确、高效的管理学生成绩等信息,并且减轻教师统计、分析学生成绩的工作量。
本文在现有技术的基础上,设计了学生成绩管理系统。在系统中采用了LabWindows CVI作为开发平台,与Microsoft Word、MicrosoftAccess之间实现数据库和文档的共享,该系统充分结合了LabWindows CVI的图形界面功能、MicrosoftWord的文档管理功能、MicrosoftAccess的数据库开发管理功能。实践表明,该方案对于学生成绩管理切实可行[1]。
系统开发的总体任务是实现学生成绩管理的系统化、规范化和自动化,从而达到提高教师对学生成绩管理效率、减轻教师在填写试卷分析表时的劳动强度的目的。由于教师需要在考试后的很短几天内在教务处的网页上提交学生成绩,并同时提交试卷分析表。目前,在每一位教师所带班级比较多的情况下,需要汇总、计算、分析的数据多,工作量大,采用人工的方式来管理学生成绩,实现起来有一定的困难,在成绩管理的过程中常会出现各种各样的由于人为的疏忽造成的错误。本系统克服了上述困难,在教师录入学生成绩后,成绩的统计和分析的数据全部由计算机自动生成,自动将学生成绩的相关数据填写在试卷分析表中,并将相关数据保存到MicrosoftAccess数据库中。学生成绩管理系统的设计思路如图1所示,系统主界面如图2所示[2]。
图1 系统设计思路图Fig.1 The graph of the system design
该系统可以实现在LabWindows CVI环境下,打开、编辑、保存、关闭、打印MicrosoftWord文档等功能。LabWindows CVI中提供了针对MicrosoftWord操作的相应驱动文件,LabWindows CVI与MicrosoftWord混合调用的时候,只需要将相应的驱动文件加入工程即可[3]。
图2 学生成绩管理系统主界面Fig.2 The main interface of the students’achievement management system
在预先设计好的成绩统计分析表中需要填写内容的位置添加书签,点击图2中的“打开成绩统计分析表”按钮,就可以打开“成绩统计分析表.doc”文件,点击图2中的“填写成绩统计分析表”就可以将统计分析好的学生成绩及学生成绩分布图写入“成绩统计分析表.doc”文件,如图3所示。
下面是LabWindows CVI与MicrosoftWord混合调用的主要程序代码及注释:
//打开成绩统计分析表
int CVICALLBACK GenerateReport (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2){
switch (event){
case EVENT_COMMIT:
if(bool_testrun==0)
MessagePopup ("Cannot Generate Report", "Please Run Tests first.");
else{
Generate_WordReport();
if(bool_reportgenerated==0)
bool_reportgenerated=1;
}
break;
}
图3 成绩统计分析表Fig.3 The analysis sheet of performance statistics
return 0;
}
//填写成绩统计分析表
RptChk (WordRpt_GoToBookmark (docHandle, "graph")); //插入成绩分布图
RptChk (WordRpt_InsertImage (docHandle,imageFileName, &imageHandle));
RptChk (WordRpt_GoToBookmark (docHandle, "passrate")); //插入及格率
RptChk (WordRpt_AppendText (docHandle,Passrate));
RptChk (WordRpt_GoToBookmark (docHandle, "average")); //插入平均分
RptChk (WordRpt_AppendText (docHandle,Average));
RptChk (WordRpt_GoToBookmark (docHandle, "highscore")); //插入最高分
RptChk (WordRpt_AppendText (docHandle,Highscore));
RptChk (WordRpt_GoToBookmark (docHandle, "lowscore")); //插入最低分
RptChk (WordRpt_AppendText (docHandle,Lowscore));
点击图2中的“数据另存为Access文档”按钮,可以将学生成绩以及统计分析数据等保存到MicrosoftAccess文档中,便于后期对学生成绩等信息的查询和管理[4]。
学生成绩管理系统如果要实现对数据库的访问,必须先指定一个数据源,在数据源中创建一个DSN(Data Source Name)。将数据源文件配置成已经创建好的数据库文件,数据源命名为“achievement”,数据源文件配置成“achievement.mdb”。 将数据源成功添加到操作系统以后,就可以在LabWindows CVI中,对数据库中的表进行插入、查询、修改、删除等操作了[5]。
DSN的创建步骤如下:
1)在WindowsXP操作系统中选择“开始”按钮,接着选择“设置”,接下来选择“控制面板”,在控制面板中选择“数据源(ODBC)”,弹出“ODBC 数据源管理器”对话框。
2)单击“系统 DSN”选项卡中的“添加…”按钮,弹出“创建新数据源”对话框。
3)在“创建新数据源”对话框驱动程序列表中选择“Microsoft Access Driver(*.mdb)”, 并 单 击 “ 完 成 ” 按 钮 , 弹 出 “ODBC Microsoft Access安装”对话框。
4)在“ODBC Microsoft Access 安装”对话框,在“数据源名”一栏中填写创建的DSN的名称,例如本系统的“SJY”,并点击“选择”按钮,选择需要利用 LabWindows CVI中的SQL语言访问的数据库,例如“achievement.mdb”。然后单击“确定”,按钮,即完成了DSN的创建。
下面是LabWindows CVI与MicrosoftAccess混合调用的主要程序代码及注释[6-7]:
{ SQLDBDSNConnect(achievement, "SJY", "admin",""); //数据库连接
SQLDBAllocStateHandle (achievement);SQLDBSetStmtAttr (achievement,SQL_ATTR_CURSOR_TYPE,SQL_CURSOR_STATIC,IGNORE);
SQLDBAllocStateHandle (achievement); //创建一个新表
//向数据库的表中添加学生成绩等统计信息
SQLDBSQLPrepare (achievement, "INSERT INTO studentsscore([name],[score_1],[score_2],[totalscore])
VALUES (?,?,?,?)");
SQLDBBindParameter (achievement, 1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NA,
strlen(NA), &returnsize);
SQLDBBindParameter (achievement, 2,
SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,SCO_1,
strlen(SCO_1), &returnsize);
SQLDBBindParameter (achievement, 3,
SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,SCO_2,
strlen(SCO_2), &returnsize);
SQLDBBindParameter (achievement, 4,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,TSCO,
strlen(TSCO), &returnsize);
if(SQLDBExec (achievement)!=PASS){
//返回异常值
ReturnError_D=achievement->NativeError;
SQLDBFreeStateHandle (achievement);
if(ReturnError_D==0/*PRIMARYKEY*/){
return 0/*EXCEPTION*/; //用户名已存在
}
else{return FAIL; //插入失败
}
}
SQLDBFreeStateHandle (achievement);
return PASS;
}
本系统已实际应用在学生的成绩管理中,经过实践证明,该系统具有界面美观,使用和维护方便,成绩数据准确可靠,比手工操作效率高,大大减轻了教师的劳动强度,对学生成绩管理的科学化、正规化起到了重要的推动作用。
[1]张凤均.LabWindows/CVI开发入门和进阶[M].北京:北京航空航天大学出版社,2001.
[2]王秋茸.体育信息管理系统设计的关键技术研究[J].电子设计工程,2013(18):66-68.WANG Qu-rong.Research on key technologies of sports information managementsystem development[J].Electronic Design Engineering,2013(18):66-68.
[3]杨恒辉,王超.基于LabWindows/CVI的数据报表技术[J].科学技术与工程,2011(6):1371-1374.YANG Heng-hui,WANG Chao.Report technology based on LabWindows/CVI[J].Science Technology and Engineering,2011(6):1371-1374.
[4]赵波,全厚德.LabWindows/CVI平台下的数据库编程[J].微计算机信息,2008(2-3):171-172.ZHAO Bo,QUAN Hou-de.Database programming in the platform of LabWindows/CVI[J].Microcomputer Information,2008(2-3):171-172.
[5]杨建宏,周东,李广武.基于LabWindows/CVI和ADO的动态访问数据库的实现[J].工业控制计算机,2009(6):23-24.YANG Jian-hong,ZHOU Dong,LI Guang-wu.Dynamic realization of visiting database based on ADO and LabWindows/CVI[J].Industrial Control Computer,2009(6):23-24.
[6]叶群松,习友宝,詹惠琴.基于LabWindows/CVI的数据库应用程序开发[J].计算机与现代化,2008(3):38-41.YE Qun-song,XI You-bao,ZHAN Hui-qin.Development of database application based on LabWindows/CVI.Computer and Modernization,2008(3):38-41.
[7]李俊民.精通SQL结构化查询语言详解[M].北京:人民邮电出版社,2008.