网站首页  词典首页

请输入您要查询的论文:

 

标题 博士研究生录取名单上报数据导出系统设计与实现
范文

    张宝全+周枫+黄祖源+张少泉+陈先富

    

    

    

    摘要:根据教育部的要求,博士研究生录取名单需要按照标准的DBF表结构上报导入研招网。本系统的主要功能是导出“报考库”、“录取库(中国考生)”“录取库(留学生)”,每个库都导出Excel文件(用于学校核对)和DBF文件(用于上报导入中国研招网)。本系统使用Java、JavaScript及ExtjS4作为编程语言,数据库为OraclelOg,Web服务器为Tomcat7.0。本系统基于J2EE技术和Struts框架技术。从管理模式来看,极大改变了高校对博士录取名单上报数据的管理模式,切实提高了工作效率。

    关键词:软件工程;软件开发;数据库;DBF;ExtjS;Java

    O 引言

    博士研究生的招生从启动到结束时间紧,业务工作量大,需要进行大量的工作,到了最后需要将拟录取的学生详细名单制作成DBF文件上报到中国研招网(中国研究生招生信息网)。上报数据包含“报考库”、“录取库(中国考生)”、“录取库(留学生)”,其中报考库有86个字段,录取库(中国学生)有70个字段,录取库(留学生)有49个字段;三张表一共205个字段,数据量非常之大。而且其中一些字段比如“家庭成员”、“奖励处分”、“发表论文专著”、“学习工作经历”要求“定义在一个字段里,TAB间隔用'/'表示;换行用'#'表示”,这就要将学校系统中存储的每个考生的X*X的二维数据表里面的若干记录值合并成一个很长的字段记录,并注意TAB和换行的符号转换。如果人工编辑合成这二百多个字段,可想而知,工作量是多么大,而且还容易出错。

    所以,本系统的功能就是按照中国研招网对字段名称、类型、长度和说明的要求导出“报考库”和“录取库”,其中留学生的录取库和中国学生的不同,所以系统需要导出3张表“报考库”、“录取库(中国考生)”、“录取库(留学生)”的DBF文件,并按照相关要求对最后导出的文件重命名。

    考虑到学校可能要对相应的信息进行人工核对、查询、编辑和比较,所以同时也需要导出这3个库的Excel表格,以便核对。

    1 相关开发环境搭建和软硬件要求

    相关的开发环境部署包含JDK、MyEclipse、Oracle、Apache、Tomcat和Weblogic的安装配置以及部署应用程序。由于这部分不是本文的重点,就不再赘述。

    在开发过程中,软件版本主要采用:

    操作系统:Windows 7;数据库服务器:OraclelOg; Web服务器:Tomcat 7.0; JDK版本:JDKl.6;CPU:主频2.6GHz以上;内存:1G以上;硬盘:200G以上。

    2 软件系统需求分析

    每学年高校博士招生录取结束后,都需要按要求上报“报考库”和“录取库”到中国研招网系统。招生单位必须严格按照全国高等学校学生信息咨询与就业指导中心制定的《博士报名录取库上报系统说明文档(招生单位版)》要求上报。

    学校研究生院在第一次上传前从研招网“数据分类下载”中下载“报考库则为上传标准表结构”和“录取库则为上传标准表结构”,用标准表结构进行参考对比和调整。

    该系统的主要功能是导出需要格式和字段的相关信息表,所以首先应该对最终需要的表的结构进行分析,下面对以表为基本单位对最终需要的数据进行分析:

    (1)报考库,表名:招生单位代码+BBK.DBF。该表有86个字段,对各字段名称、汉字解释、类型、长度和字段说明均做了严格的要求。比如字段CSRQ(出生日期)要求格式为YYYYMMDD的八位纯数字;JTCY(家庭主要成员)长度最大为220字节,定义在一个字段里,TAB间隔用'/'表示;换行用'#'.表示。

    (2)录取库(中国学生),表名:招生单位代码+BLQ.DBF。该表有70个字段,也同样对各字段名称、汉字解释、类型、长度和字段说明做了严格的要求。比如学制长度最大为3字节,非空,取值范围集合f2,2.5,3,3.5,4,4.5,5.5.5,6,6.5,7.

    7.5.

    8}。

    (3)录取库(留学生),表名:招生单位代码+GATLQK.DBF。该表有49个字段,由于港澳台情况与大陆不太一样,故需要单独制录取库表。

    从上我们可以看到,三张表一共205个字段,数据量非常之大。而且其中一些字段有规定的特殊要求。对最后的文件要求是DBF文件而不是我們熟悉的Excel文件,如果人工在Excel里编辑合成这二百多个字段然后复制到DBF文件中,可想而知,工作量是多么大,而且还容易出错,所以本系统以业务需求为基本设计原则,最终完美的解决上述问题。

    3 系统设计说明

    系统整体功能框图如图1所示,系统的功能是导出需要的6个文件。系统的用户对象是学校研究生招生管理部门——研究生院研招办,由研究生院负责本年度学校录取博士信息的上报工作。院校代码为五位数字,比如10674是昆明理工大学的院校代码。

    其中,报考库:导i'报考库需要的DBF文件和Excel表格。录取库f中国考生):导出录取库(中国考生)需要的DBF文件和Excel表格。录取库(留学生):导出录取库(留学生)需要的DBF文件和Excel表格。录取管理模块:对博士研究生录取进行管理,包含查看,检索和编辑录取信息等功能。

    4 系统功能的实现

    4.1 查看录取信息

    ①在考生列表显示界面,显示的内容很多,其中序号、姓名和操作是锁定的,一直在页面显示,通过添加属性locked: true语句来实现,ortable: true表示姓名字段支持排序功能。而报考学院、报考专业、报考导师、录取学院、录取专业、录取导师、考试方式、外语成绩、业务课一、业务课二、初试总成绩、复试总成绩、折合成绩、排名、学院拟录取意见、学院拟录取备注、学校最终录取意见、学校最终录取备注是可以拖动横向滚动条查看的,没有locked: true语句。这样做的好处是当属性字段数目过于多的时候,向右拉动滚动条,部分关键信息一直显示在网页上,方便查看,部分代码如下。录取名单管理主界面考生名单列表如图2所示。

    {header:”姓名”,datalndex: "xm", width:100, align:"center",

    locked:true, sortable: true, tdCls: "gridheight"}

    ②对报考学院和录取学院、报考专业和录取专业、报考导师和录取导师做了对比处理,一旦两者不同,录取学院、录取专业或录取導师将红色显示,一目了然。以下代码对比lqzymc(录取专业名称)和bkzymc(报考专业名称),如果两者值相同,returnvalue;就直接返回默认黑色字体的值,否则return"”+value+"”;返回标红字体的值。其他几项代码原理也基本如此。

    fheader:”录取专业”,

    datalndex:”lqzymc”, align:”center”, width:150,sortable:true, tdCls:"gridheight”,

    renderer:function(value,meta, record){

    if(record.get('lqzymc')=record.get('bkzymc')){

    return value;

    }else{

    return""+value+"":

    }

    }}

    ③对学院拟录取意见和学校最终录取意见显示进行了优化,“录取”蓝色显示,“不录取”红色显示,用户界面良好。如下代码,录取则return””+value+””,返回蓝色字体的“录取”;不录取则返回红色字体的“不录取”,如图2所示,其中的“学院拟录取意见”和“学校最终录取意见”。

    {header:”学校最终录取意见”,

    datalndex:"lqmc", width: 120, align:"center",sortable:true, tdCls:"gridheight",

    renderer:function(value,meta, record){

    if(value='录取'){

    return""+value+"":

    }else{

    return ""+ value+””;

    }

    }

    },

    ④学院拟录取备注和学校最终录取备注是可以缺省的,如果不为空则系统中绿色显示,以便和其他不可为空的值区分。同时备注信息的字数不是那么固定,大多数时候是空值,少部分时候字数会很多,如果备注信息太多,则在此单元格显示滚动条,通过meta.style属性设置。{header:”学院拟录取备注”,datalndex:”nlqbzxx”,width:200,align:”center”, sortable:true, tdCls:”gridheight”,renderer:function(value,meta, record){

    meta.style='overflo':auto;padding: 3px 6px;

    text-overflow:ellipsis;white-space:nowrap;

    line-height:20px;';

    if(record.get('nlqbzxx')==null){

    return value;

    }else{

    return ""+value+"":

    }

    }},

    ⑤成绩显示中前端页面增加了“缺考”的显示,将后台数据库的qkdm(缺考代码)数字“一l”转换为qkmc(缺考名称)“缺考”,方便用户查看和管理。通过定义一个CjckStore,实现上述功能,部分代码如下:

    var CjckStore=Ext.create(”Ext.data.Store”,{

    fields:["qkdm","qkmc"],

    data:[

    {"qkdm":"-1";"qkmc":"缺考"}

    ]

    });

    4.2 编辑录取信息

    点击操作按钮图标-将会出现【编辑学校最终录取信息】弹窗,在弹窗中可以编辑和修改录取信息,包括录取学院、录取专业、录取导师、录取意见和录取备注。编辑完成之后点击【保存】按钮即可修改,保存时系统对数据完整性进行校验,除了备注之外其他项必须从下拉列表中选择一个值,否则无法保存,如果不需要修改,点击【取消】按钮关闭弹窗即可。编辑学校最终录取意见如图3所示。

    在【编辑学校最终录取信息】弹窗中,录取专业和录取学院进行了级联,一旦选中了一个学院,点击录取专业的时候只会出现该学院的博士招生专业。录取导师可以拖动滚动条逐个查找,你可以输入若干汉字匹配,比如在录取导师栏中输入了“张”,列表中就检索了学校所有姓名第一个字是“张”的博导,如果继续输入第二、三个字,就能更加精确的匹配,如图3所示。这个功能实现起来相对麻烦,前台将请求信息传递给.xml配置文件,在配置文件中找到处理请求的class文件和Action方法,配置文件相应代码如下:<!--张宝全:获取博士导师信息加载下拉列表·一>

    success,msg,bsdslist*

    执行相应的Action方法时,需要调用对应的Dao数据数理文件,其中Dao文件部分代码如下,此处注意返回类型是JSONArray,并且代碼执行过程中可能发生异常,用throws Exception抛出异常给被调用函数处理。Dao文件处理后返回JSONArray然后层层返回到前端页面,然后前端页面显示。由于篇幅原因,部分代码用省略号表示。

    public JSONArray GetBsds(String xm) throwsException{

    try{if(xm==null){

    sql= "select distinct dsbh,dsxm,yxsmc fromzs_zyml order by dsbh";

    }else{

    sql="select distinct dsbh,dsxm,yxsmcfromzs_zyml where dsxm like '%"+xm+"%' order bydsbh";

    )

    ) catch(Exception e){…………)finally{……)

    return jsonarray;

    )

    4.3检索功能

    可以按照多个筛选条件(考号、姓名、报考学院、报考专业、导师姓名、拟录取意见、学校录取意见)进行检索,用户在选择相关的一个或者多条检索字段之后点击【检索】,就能够检索出用户需要的学生名单,满足用户对不同条件筛选的需求。在检索中,MVC中Controller接受View视图页面的检索条件输入和检索按钮点击,将检索要求作为SQL的一部分传递给后台拼接成完整的SQL语句执行。在后台需要对前端页面传递来的特殊符号进行过滤,防止SQL注入,部分代码如下[8-10]。 现在,需要的文件完全导出了,其中Excel文件Efj于学校核对信息,如果有误就修改系统中的数据,而DBF文件则用于上报到中国研招网。

    导出文件的默认命名规则是标准名+时间信息,如“10674BBK 2017-08-20 08-00-00.dbf'将最终导出的确认无误的DBF文件重命名,把文件名中时间信息删除即可满足中国研招网对文件名的要求。这就是最终高校上报到中国研招网系统所需要的文件。在导出DBF文件的时候,尤为重要的一点就是表结构,这需要严格按照中国研招网的要求来,如下if(lb.equals(”bkk”))实现了代码复用,导出DBF文件和Excel文件执行同一冗长的SQL语句,部分代码如下:f(lb.equals(”bkk”)) {//lb=bkk,表示按照研招网的格式要求导出DBF报考名单

    JSONArray jsonarray—new JSONArray();

    //获取导出数据//过滤通过页面表单提交的字符private static String[] FilterChars={{<","&"},{">,">;"},

    {" ","&11bsp;"}, {"\',"";"}, {"&","&;"),

    { "/","/;"},{"\\",";"},{"\n","

    "}};//过滤通过javascript脚本处理并提交的字符private static String[][] FilterScriptChars={{"\n","\'+\'\\'n\+'\'"},

    {"\r"," "}{"\\","\'+\'\\\\\"+\'"},{"\'","\'+\'\\\'\'+\'"}};

    4.4导出上报数据

    点击图4中【导出上报数据(Excel)】按钮,系统会弹出一个小窗口,在弹窗中,研究生院可以导出需要的报考库或者录取库Excel表格,导出之后研究生院可以用于核对数据(如果有需要的话,研究生院可以在Excel表中把各个学院的信息筛选后分发至各学院核对),如果数据出错,那么研究生院可以在系统中对错误信息修正,反复几次,确保学校系统数据的正确性。

    在Excel表格中核对完成并修改了系统中的信息之后,研究生院就可以导出最终要上报到中国研招网的DBF文件,依次点击图4所示的3个按钮【报名库DBF导出】、【录取库DBF导出(中国考生)】、【录取库DBF导出留学生)】就可依次导出研究生院上报中国研招网所需要的文件。

    j sonarrayResultSetTo Json.ResultSetTojsonArray(rs);

    //设置表头,格式:"Name","Type","Width"," Decimal","NULL"

    String[][] fields一{

    { "xm","Character","40","0","FALSE"},

    { "xmpy","Character","80","O","FALSE"},

    {”zjlx"," Character","2”,”O","FALSE”},

    { "zjhm","Character","18 ","O","FALSE"},

    { "Ihpydw","Character"," 100 ","O","FALSE”}

    };if(DbfUtil.DbfExport(fields,j sonarray,”博士报考名单”))return true; SQL语句如下,由于表单字段众多,所以select元素很多,其中表zs bsbm xsxx_ view是我们从多张表拼接来的视图,使用视图在操作的时候会更加简单方便。由于我们系统的部分字段名称和中国研招网的命名规则不太一致,在导出的时候需要重命名,命名规则很简单“原名称新名称”中间用空格或者as隔开都行,这里用的是空格。由于系统中的部分字段所有人记录值都一样,比如DWMC(单位名称)都是“昆明理工大学”,系统就没有浪费空间存储这一重复记录,导出SQL语句设置为统一值即可“'昆明理工大学'DWMC”注意中间的空格以及SQL中字符串用单引号,还有就是一些本软件系统中用不到的信息,比如“BYXX3”我们导出时设置为空即可,“”BYXX3”,注意前面是两个单引号而非一个双引号,两个单引号里面什么符号(包括空格)都没有,代表空值。

    sql=select xm XM, xmpy XMPY, zjlxZJLX, zjhm

    ZJHM, ksbh

    KSBH, csrq

    CSRQ, mzmMZM, xbm XBM, hfm HFM, zzmmm ZZMMM,xyjrm XYJRM, csdm CSDM, _jgdm JGDM,HKSZDM, DASZDM, DASZDW, DASZDWDZ,DASZDWYZBM, KSLYM, XXGZDWXZ, XXGZDW,XXGZJL, JLCF, JTCY, FBLWZZ, XSXWDWM,XSXWDW, XSXWZYDM, XSXWZYMC, XSXWNY,XSXWZSBH, BKBYDWM, BKBYDW, BKBYZYDM,BKBYZYMC, BKBYNY, BKBYZSBH, BKXXXS,SSXWDWM, SSXWDW, SSXWZYDM, SSXWZYMC,SSXWNY, SSXWZSBH, SSXWFS, SSBYDWM,SSBYDW, SSBYZYDM, SSBYZYMC, SSBYNY,SSBYZSBH, XWM, XLM, ZCXH, '10674'

    DWDM,。昆明理工大学' DWMC, BKYXSM, BKYXSMC,BKZYDM, zymc BKZYMC, lqyjfxm BKYJFXM,lqyj fxmc

    BKYJFXMC, dsxm

    BKBDXM, dsbhBKBDBH, BKBDSX, KSFSM, bklbdm BKLBM,ZXJH, DXWPDWSZDM, DXWPDW, kskmdmlWGYM, kskmmcl WGYMC, kskmdm2 YWKIM,kskmmc2 YWKIMC,kskmdm3 YWK2M,kskmmc3YWK2MC, TXDZ, YZBM, LXDH, YDDH, DZXX,”BYXX,” BYXXl,” BYXX2,” BYXX3,”LHPYDWM," LHPYDW

    from zs bsbm xsxx view

    order by bkyxsm,bkzydm;

    4.5 上传数据到中国研招网

    这一步已经不是本软件系统的功能了,本系统主要就是导出需要的3个文件,用于这一步操作。 学校研究生院登录中国研招网( http://yz.chsi.cn)后台。点击左侧导航栏博士报名录取库上报博士报名录取库上报,进入博士报名录取库上报系统。 研招网博士报名录取库上报系统用于博士报考库和录取库的上报工作。采取教育部、省级招办、招生单位三级管理制度,即招生单位上传数据成功后上报给上级省级招办,省级招办审核后上报给教育部。

    5 结论

    根据教育部的要求,博士研究生录取名单需要按照标准的DBF表结构上报导人中国研招网(http://yz.chsi.com.cn或http://yz.chsi.cn),其中包括“报考库”、“录取库(中国考生)”、“录取库(留学生)”,每个表都有好几十个字段,传统手T编辑合成这些表费时费力。本系统从学校录取信息中导出这3张表,只需要简单的人工核对就可以上报导人中国研招网系统。所以本系统的主要功能是导出“报考库”、“录取库(中国考生)”、”录取库(留学生)”,每个库都分别需要导jI}{ Excel文件(用于学校核对)和DBF文件f用于上报导人中国研招网),一共6个文件。

    技术特点:

    1.本系统使用Java、JavaScript及Extj s4作为编程语言,数据库为OraclelOg,Web服务器为Tomcat7.0。

    2.本系统基于J2EE技術,采用Struts技术框架;

    3.本系统采用基于组件开发方式,实现各种业务逻辑重组,有效的进行了软件复用,提高程序开发效率;

    4.从管理模式来看,极大改变了高校对博士研究生录取名单上报数据的管理模式,由手T拼接变成系统合成,很大程度的减小错误发生概率,切实提高了工作效率。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/4/17 8:53:50