APP下载

毕业资格审核系统的设计

2014-07-31唐闻新

赤峰学院学报·自然科学版 2014年13期
关键词:字段资格毕业

唐闻新

(安徽中医药大学, 安徽 合肥230031)

毕业资格审核系统的设计

唐闻新

(安徽中医药大学, 安徽 合肥230031)

为了改善学校目前的本科生毕业资格的审核中大量采用手工方式审核的现状.课题组成员通过分析学校的毕业资格审核工作过程和现有管理系统的优缺点和可提供的数据.最终结合学校的相关文件中的关于学生毕业资格审核的规定,设计了一款简单实用的毕业资格审核系统,设计的系统能够完成我校在毕业资格审核工作中所需要做的所有工作,并能处理我校的各类特殊情况.

毕业资格;VFP;系统设计

我们学校每年都要进行本科生的毕业资格审核工作,主要审核学生的毕业资格和学位授予资格.目前我校的学生在校信息虽然都已经实行了计算机辅助管理,但在具体的毕业资格审定中还是需要人工逐一对每个学生进行审核.学校现已有一个成绩管理系统.但是这个管理系统目前主要完成的功能是管理学生在校期间所有课程学习的成绩,不适合直接用于审核毕业资格.为了能更好的发挥计算机的强大功能,课题组成员在不使用现有系统内部数据库的基础上设计了一款简单实用且通用性比较好的毕业资格审核系统.

1 系统原始数据的问题和解决方法

系统设计前首先对可利用的资源进行了分析,现有的管理系统为利用VFP开发的,因此仍然选用VFP开发审核系统.在数据方面,所能利用的数据只有从原有管理库中导出的三张EXCEL表格:总成绩表、四六级计算机成绩表和学期不及格记录表.这些EXCEL表格的具体内容(如:课程名称)在设计系统的时候是未知的,因此在设计导入程序时需要利用“CREATEOBJECT('Excel.application')”建立对象并生成全新的数据表.

1.1 总成绩表

总成绩表中含有的信息为:学号、姓名、课程名称、成绩.这张表是学生在校课程学习的总记录,也是学生毕业资格审核的主要基础依据.

但是这张表有一些问题需要处理:⑴有转专业的学生将在其他专业学习的课程带入了这个专业的成绩表,这些课程需要从表格中删除.⑵有的学生因为有统一安排的中长期的校外学习,造成对应学期的在校课程没有成绩.⑶成绩表中缺少课程类型信息,原有的管理库中也只有考试形式的分类,缺少课程类型和开课学期信息,这些信息在各类学分计算和主干课绩点的计算中都是必须要用到的.

解决的方法是:从导入的总成绩表中分别提取课程名称和学号、姓名信息存于课程信息和学生基本信息表.在课程信息表中设置课程的类型,如:专业课、必修课、任选课和学分、开课学期等课程信息并删除多余课程,在学生基本信息表中设置因各种原因而形成的免修课程的学期信息.

1.2 四六级计算机成绩表

四六级计算机成绩表中的信息有:学号、姓名和在校期间历次的英语和计算机等级考试的成绩.在学位资格审核中需要考虑这两项的成绩.这张表在处理时的问题有:⑴对应成绩前有汉字不能直接用.⑵英语等级字段中的成绩大多有多次考试形成的多条记录.⑶导入之后的成绩字段为字符型字段.

解决的方法是:利用在导入的四六级计算机成绩表中的歌词考试成绩都用括号分开的条件,提取字段中括号内的数字从而删除其它字符提取出成绩,再将提取的成绩转换成数字型字符,并对多条英语成绩进行判断保留最高成绩.这里虽然在学位条例中是对四级成绩有要求,但不需要考虑英语的成绩提取出来的是否为四级成绩,因为如果有六级考试的成绩就证明四级成绩已达到最高要求.

1.3 学期不及格记录表

学期不及格记录表只在审核学位资格时使用,表中的信息有:班级、课程、姓名.这张表格主要是用来检查主干课补考记录数是否符合要求.同时这里的班级信息可以作为系统中专业的识别信息.但同样需要处理的问题有:⑴需要将非主干课剔除.⑵有些不及格记录因为重修留级等原因是不需要计算的也需要排除不计.⑶表格中仅有的信息无法满足自动判断和取舍不需要计数的主干课补考记录.

解决的方法是:通过查询课程类型将导入的不及格记录中非主干课程的记录删除,并将记录改成一条记录只有一个人一门课的形式.便于单独删除不需要计算的记录.

2 系统的主要功能

课题组最终设计出了一款简单实用,且不介入原有管理系统内部的毕业资格管理系统.系统最后生成专业汇总信息表和个人的学位审批表.为了操作人员能够直观感受到资格审核工作的流程,系统的主界面设计如图1所示.

主界面中的各功能键的active属性根据工作的进度实时调整,避免信息前后不一致造成审核结果出错.系统所完成的主要审核功能有:

图1 系统主界面

2.1 课程成绩的分类统计

系统首先从总成绩表中提取所有课程名称,再根据专业培养方案对每门课程的类型进行设置.这些信息包括:修业类型(必修、限选、任选)、课程性质(公共基础课、专业基础课、专业课)、是否为主干课和学分及修业学期等.同时删除各种原因带来多余课程,比如转专业来的同学就会将在其他专业已学的课程带入总成绩表.课程的各类信息设置好之后为后期的分类统计奠定了基础.

结合课程类型信息将总成绩表中的各科成绩按照公共必修、公共限选、基础必修、基础限选、专业必修、专业限选、任选课、主干课分成不同的成绩表.这样可以很方面的计算不同课程类型的学分信息,以便和学位条例中的规定进行逐一比较.

2.2 英语和计算级等级考试及其它各类免修设置

在我校的学位条例中规定,英语四级和计算机省二级的考试成绩达到合格要求的学生,在校内的英语课程考试和非计算机专业的计算机课程考试成绩如有不及格则不计,也就是如果不及格则对应课程免修.

其它可能出现免修的情况主要有:⑴转专业.这些同学应为之前未在本专业学习所以有部分课程未修,但因为对同时间段的课程成绩要求较高,条例规定对应的未修课程可以免修.⑵留学和交换生.我校和国内与国外的学校均有交换学习的学生.国内交换学习的时间长短不一,多为几个月,留学的学生一般为1年左右.这些学生在对方学校的学习成绩合格后,对应学期的课程也列为免修课程.

当出现这些免修情况时,分学期设置学生是否免修.当英语、计算机或某个学期满足免修条件时,检查对应课程的成绩是否及格如及格则不作任何操作,如果不及格则将成绩改为60分(及格),这样就不会造成无法计算学分的尴尬.

2.3 毕业资格的审核

审核毕业资格当然是这个这个系统的必备功能了.我校毕业证的获取条件为所有在校期间的各类考核均合格.学位证的获取资格较为复杂:在获得毕业证的基础上要求计算机具有二级或以上合格证书,英语要求四级成绩不低于285分,公共必修、公共限选、基础必修、基础限选、专业必修、专业限选和任选课的学分均有不同的要求,主干课的不及格记录必须少于2条.但是如果主干课的不及格数在3条以上,同时主干课的平均学分绩点达到2.5以上的也可以授学位.在对各个条件进行逐一判断后就可以得到每位学生的毕业资格审核结果了,结果分别以专业汇总表和学位审批表的形式打印输出以便供学生校对和上报.

专业汇总信息表如图2所示:

图2 专业汇总信息表

个人学位审批表如图3所示:

图3 个人学位审批表(部分)

3 系统中的部分代码

3.1 导入成绩表:

Efn=getfile("xls")

Exl=CREATEOBJECT('Excel.application')

Exl.Workbooks.Open('&Efn')

h=Exl.SHEETS(1).UsedRange.ROWS.COUNT

i=Exl.SHEETS(1).UsedRange.COLUMNS.COUNT

Exl.Cells(h,i).Select

Exl.Columns.AutoFit

Exl.DisplayAlerts=.F.

Exl.ActiveWorkbook.SaveAs('c:xw.dbf',8)

Exl.ActiveWorkbook.saved=.t.

Exl.Workbooks.close

Exl.quit

RELEASE Exl

3.2 提取做为字段名存在的课程名称:

use总成绩表

for i=3 to fcount()

course=field(i)

use课程类型

append blank

replace课程简称with course

use总成绩表

endfor

3.3 提取专业限选课的成绩:

use课程类型

locat for课程简称=course

j=课程分类

l=修业类型

if j='专业课'and l='限选课'

k=k+1

use专业限选

else

use专业限选

alter table专业限选.dbf drop&h

endif

4 编程经验

4.1 查看导入后的字段

导入EXCEL生成新的DBF文件后,别忘了查看一下字段的类型和长度.前面提到的导入成绩表就是将一个EXCEL表格导成一个新的DBF文件,并且以EXCEL表格的第一行各列的内容作为新表的每个字段名.但是在后期的程序设计中发现了两处问题:首先是学号,学校的学号是个8位的数字,但新表的学号字段的长度确为9个字符.再有就是作为字段名存在的课程名称,我们都知道字段名是只能有5个汉字,但是当把这些课程名称提取出来时却发现这5个汉字的变量的长度却是11个字符.所以在必要的时候检查程序生成的字段和变量的长度也是很有必要的.

4.2 以数字为内容的字段

在表格设计时并不是数值形式内容的字段就一定要设置为数值类型.初学VFP时有人会说数值形式的内容,如果以后不需要对其进行计算,可以直接设置为字符形式.当时不能理解为什么,直到后来设计报表的时候才知道为什么在有的时候这样做是必须的.那就是当这个字段不输入任何信息时,如果是数值型字段,生成的报表中会有一个“0”,但是如果是字符型字段就会是空白,因此当不想打印这个“0”时就把它变成字符吧.

4.3 索引

索引很重要,但并不是一定要在设计表的结构时就要把索引都建好.索引是相对复杂的系统中必须要使用的,这样能大大简化程序的设计过程.可很多时候在设计数据库表的初期我们并不清楚哪些索引是必须要建立的.其实不必着急,先可以不用把索引都建好,在需要的时候再做.比如在系统设计最后的学位审核表的报表设计中就需要将审批表和审核结果表的信息逐一调出使用,但大家都没建索引.不着急,当在数据环境中点住审批表的学号字段拉到审核结果表中的学号字段时系统会提示建立索引,单击“确定”就可以搞定了,其实索引也只是在审核结果表中建立了,而审批表中并没有.如图4所示:

图4 在数据环境中直接建立索引和关联

4.4 多表操作时的变量

初学者有时在一个工作区中轮流操作几张表,这时就需要注意有些变量的变化.比如表1的第3个字段名是“英语”,表2的第3个字段名是“毕业资格”,当执行:

use表1

x=field(3)

?x

这时输出的结果是:英语

但再执行:

use表2

?x

这时的输出结果是:毕业资格

这也是为什么当需要对多个表同时进行操作时还是多用用其他工作区的原因.对于规模不大的程序,通常情况下VFP的可用工作区足够打开整个系统的所有表格.

4.5 报表中部分不确定项的处理

设计的系统最后能够打印每个学生的学位审批表.但当时在报表的的设计时却碰到了一个困难.就是在设计主要课程成绩信息时,不同的专业的主要课程的名称和数量都不一样,并且由于有哪些专业都是未知的,所以就更没办法将课程名称预先设计好.解决的办法也简单,那就是把课程名称和成绩都作为变量分别存在各自的表中,因为课程的数量上限是已知的,所以报表中的这个块内容就按上限数设计就可以了.在打印出的表单中只不过是多几个没有内容的空格而已.实际中主要课程的数量按照30门课的上限进行设计.报表的设计如图5:

图5 报表中主要科目考试成绩部分的设计

5 总结

经过试用,设计出的系统能够完成我校在毕业资格审核工作中所需要做的所有工作,并能处理我校的各类特殊情况.但由于系统的设计基础是不使用原有系统的内部数据库,这使得系统在设计和使用时必须要对一些重要信息进行手工设置,这其实是系统不可避免的设计缺陷.今后计划和学校有关部门合作对学校现有的管理系统进行升级更新,让毕业资格审核工作实现一键式操作.

〔1〕谢忠.Excel表格数据导入VFP表的动态实现[J].九江学院学报(自然科学版),2012(1):50-53.

〔2〕杜春敏.Visual FoxPro程序设计[M].北京:水利水电出版社,2012.

〔3〕杨松涛.Visual FoxPro程序设计实训与考试指导[M].北京:水利水电出版社,2012.

〔4〕陶伟.基于VFP的毕业资格审核系统设计与实现.安徽农业大学学报,2011,38(3):479-485.

〔5〕张萍.高校实行学分制后教务管理模式的探讨[J].黑龙江高教研究,2004(5):73-74.

〔6〕陶伟.学分制下成绩管理体系的研究与实践[J].科技信息, 2010(21):164-165.

〔7〕贺超凯.SQL语句在毕业资格审核中的应用[J].电脑知识与技术,2007(20):398.

〔8〕张月玲.教学评价系统数据库的设计与实现[J].聊城大学学报(自然科学版),2006,19(4):94-96.

TP319

A

1673-260X(2014)07-0025-03

安徽中医药大学校级质量工程项目(zlgc201107),安徽中医药大学校级教研项目(zd201222-zc)

猜你喜欢

字段资格毕业
图书馆中文图书编目外包数据质量控制分析
2023年,这四类考生拥有保送资格
我们今天毕业了
毕业季
毕业了,能否学以致用
第二道 川菜资格人
资格
CNMARC304字段和314字段责任附注方式解析
背叛的资格
无正题名文献著录方法评述