自学考试毕业预测算法的设计与实现

摘要:自学考试毕业预测是为了找出考生的未合格课程,从而可以合理安排报考计划来提高学生的通过率。毕业预测涉及到课程顶替的问题和毕业条件本身比较复杂,所以使得自学考试毕业预测相当复杂。

关键词:自学考试毕业预测;课程顶替算法

中图分类号:TP301文献标识码:A文章编号:1009—3044(2012)08—1851—03。

自学考试毕业预测将考生合格成绩与选定的专业的考试计划比较,判断考生是否满足毕业条件考生通过毕业预测,可以找出不合格的课程,从而合理安排报考计划;考办可以通过毕业预测,判断考生是否可以毕业,颁发相应专业的毕业证书。由于自学考试毕业条件比较复杂,加上专业考试计划不断修订,考生按旧专业计划考试通过的成绩通过顶替仍可用于新的专业考试计划,使得自学考试毕业预测相当复杂。

1算法条件

自学考试毕业预测算法包括两个方面的条件,一个是学生毕业条件,另外一个是课程的模型。

1.1毕业条件

1)毕业预测判断考生是否满足选定的专业的毕业条件;。

2)必修课成绩全部合格;。

3)选修课的课程门数和学分符合要求;。

4)申请本科毕业加考课达到最低要求课程数;。

5)考生的实践课、论文成绩须与所选的毕业专业、主考学校相一致;。

6)如有考试违规记录,已达到推迟毕业年限;。

7)未获得该专业的自学考试毕业证书。

1.2课程模型。

1.2.1新旧课程顶替模型。

近年我省自学考试专业考试计划进行大规模的调整。根据相关的文件规定,考生在专业考试计划调整前(旧计划)获得的课程合格成绩可以顶替专业考试计划调整后(新计划)相应的课程的成绩。可能出现如表1所示的情况。课程顶替的设计流程如图1所示。

表1。

1.2.2必修课与加考课模型。

采用课程组的方法来描述选考课和加考条件,加号“+”表示要考试课程,减号“—”表示不用考试课程,括号“()”内的课程表示一个课程组,如表2所示。

2算法设计流程。

1)取毕业考生的基本信息(包括是否为港澳生)。

图1课程顶替流程。

2)根据毕业考生申请毕业的专业,专业方向,加考条件考生是否为港澳生,取得考生毕业通过的必修课程选修条件加考课程

3)取得考生通过的,能够有效使用的合格成绩。

4)取得考生申请毕业专业的课程顶替关系。

5)对比考生通过的必修课程考生已经通过课程.若要通过必修课程考生课程中已存在,则将考生课程和需要通过的必修课程同时划掉

6)使用顶替关系,对比考生通过的必修课程考生已经通过课程.若顶替的原必修课程考生课程中已存在,则将考生课程和需要通过的必修课程同时划掉.并且记录使用过的顶替关系。

7)对比考生通过选修条件考生已经通过课程.若考生课程满足要通过选修条件,则将考生课程和需要通过选修条件同时划掉

8)使用顶替关系,对比考生通过选修条件考生已经通过课程.若考生课程存在满足顶替课程选修条件,则将考生课程和需要通过选修课程同时划掉.并且记录使用过的顶替关系。

9)对比考生通过加考课程考生已经通过课程.若要通过加考课程考生课程中已存在,则将考生课程和需要通过加考课程同时划掉

10)使用顶替关系,对比考生通过加考课程考生已经通过课程.若顶替前的原加考课程考生课程中已存在,则将考生课程和需要通过加考课程同时划掉.并且记录使用过的顶替关系。

11)若考生通过的必修课程选修条件加考课程全部划掉,则判断考生毕业预测能够通过考生课程中被划掉课程的为考生毕业使用过的课程顶替关系记录使用过的顶替关系,否则毕业预测不能通过,不被划掉的必修课程考生不能通过的必修课程,不被划掉选修条件为不能通过选修条件,不被划掉加考课程考生不能通过加考课程

12)若考生有相关违规信息而要求推迟毕业,并且当前时间在考生使用课程的最后考试时间的推迟毕业时间范围之内,则被要求考生现在还不能提出毕业申请。

3算法实现部分伪代码。

i.{。

1.boolean rst=true;。

2.initKSXX(CertNO,GradMajorNO);//判断该考生是否为港澳台考生

3.initZYXZ(GradMajorNO,Fx,JK);。

///关联专业毕业条件表和加考毕业条件表,取得选考限制,港澳限制和加考限制表达式;。

4.doGetBXKC(CertNO,GradMajorNO,JK,Fx);//取得必修课程,。

5. JKKC =new Hashtable();。

6.if (isGangAo) procGOXZ();//如果是港澳生,则加上港澳处理限制。

7.procJKKC(JK);。

8.KSKC=new Hashtable();。

9.loadKSKC(CertNO,GradMajorNO,YX);//获取考生通过的所有成绩。

10.int dtCount=getKCDTCount(GradMajorNO);//取得毕业专业课程顶替关系。

11.dtOldCourse=new String[dtCount];。

12.dtNewCourse=new String[dtCount];。

13.loadKCDT(GradMajorNO,dtOldCourse,dtNewCourse);//取得本专业的课程顶替关系,顶替前的课程在和顶替后的课程分别存储。

14.String bxcljg=doDTBXKCCL();//查看要求通过的必修课程是否在考生通过课程之内(要求使用顶替关系),如果有的话,则将要求通过的必修课和考生通过课程中都删除掉.返回使用过的顶替关系。

15.String bjrst=null;。

16.Enumeration e=BXKC.keys() ;。

17.int j=0;。

18.while (e.hasMoreElements()) //取得还没有通过的必修课程.

19.{。

20.String KMH=(String)e.nextElement() ;。

21.GradCourseTemp gct=(GradCourseTemp)BXKC.get(KMH);。

22.if (!gct.isDisposed) {。

a)if (bjrst==null) bjrst=gct.km_h+tab+gct.kmmc ;。

b)else bjrst=bjrst+gct.km_h+tab+gct.kmmc;。

23.}。

24.j++;。

25.}。

26.boolean bxkc=(bjrst==null?true:false);。

27.if (bxkc) gradStr="必考课通过" ;。

28.else gradStr="必考课不通过"+bjrst;。

29.gradStr=gradStr+"。

"; //取得没通过的必修课程

30.if (bxcljg!=null) { if (usedRels==null) usedRels=bxcljg; else usedRels=usedRels+"。

"+bxcljg; }。

31.//在必修课程处理中使用过的顶替关系。

32.String xxcljg[]=new String[1];。

33.boolean xxkc =doDTXXKCCL(xxcljg);//比较判断考生可使用的成绩是否满足选修毕业条件――使用顶替关系,若满足将考生可使用的课程删掉,返回使用过的顶替关系。

34.if (xxkc) gradStr=gradStr+"选考课通过" ;。

35.else gradStr=gradStr+"选考课不通过" ;。

36.gradStr+="。

";。

37.if (xxcljg[0]!=null) { if (usedRels==null) usedRels=xxcljg[0] ; else usedRels=usedRels+"。

"+xxcljg[0]; }。

38.//在选修课程处理中用到的顶替关系.

39.String jkcljg=doDTJKKCCL();;//查看要求通过加考课程是否在考生可使用的通过课程之内(要求使用顶替关系),如果有的话,则要将通过加考课程考生通过课程中都删除掉.返回使用过的顶替关系。

参考文献:

[1]蒋国莉,白克强,潘娅,等.自学考试管理系统的应用研究及开发[J].金陵科技学院学报,2010(3).

[2]陈汉华.福建省自学考试管理信息系统的建设[J].教育与考试,2010(4).

0 次访问