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

点赞:26567 浏览:120887 近期更新时间:2024-03-08 作者:网友分享原创网站原创

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

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

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

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

1算法条件

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

1.1毕业条件

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

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

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

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

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

自学考试毕业预测算法的设计与实现参考属性评定
有关论文范文主题研究: 关于自学考试的文章 大学生适用: 自考论文、函授论文
相关参考文献下载数量: 30 写作解决问题: 学术论文怎么写
毕业论文开题报告: 论文模板、论文选题 职称论文适用: 期刊目录、初级职称
所属大学生专业类别: 学术论文怎么写 论文题目推荐度: 经典题目

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.booleanrst等于true,

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

3.initZYXZ(GradMajorNO,Fx,JK),

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

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

5.JKKC等于newHashtable(),

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

7.procJKKC(JK),

8.KSKC等于newHashtable(),

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

10.intdtCount等于getKCDTCount(GradMajorNO),//取得毕业专业课程顶替关系

11.dtOldCourse等于newString[dtCount],

12.dtNewCourse等于newString[dtCount],

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

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

15.Stringbjrst等于null,

16.Enumeratione等于BXKC.keys(),

17.intj等于0,

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

19.{

20.StringKMH等于(String)e.nextElement(),

21.GradCourseTempgct等于(GradCourseTemp)BXKC.get(KMH),

22.if(!gct.isDisposed){

a)if(bjrst等于等于null)bjrst等于gct.km_h+tab+gct.kmmc,

b)elsebjrst等于bjrst+gct.km_h+tab+gct.kmmc,

23.}

24.j++,

25.}

26.booleanbxkc等于(bjrst等于等于nulltrue:false),

27.if(bxkc)gradStr等于"必考课通过",

28.elsegradStr等于"必考课不通过"+bjrst,

29.gradStr等于gradStr+"

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

30.if(bxcljg!等于null){if(usedRels等于等于null)usedRels等于bxcljg,elseusedRels等于usedRels+"

"+bxcljg,}

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

32.Stringxxcljg[]等于newString[1],

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

34.if(xxkc)gradStr等于gradStr+"选考课通过",

35.elsegradStr等于gradStr+"选考课不通过",

36.gradStr+等于"

",

37.if(xxcljg[0]!等于null){if(usedRels等于等于null)usedRels等于xxcljg[0],elseusedRels等于usedRels+"

"+xxcljg[0],}

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

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