学生成绩管理系统本科生大学毕业设计论文大学毕业设计论文.docx
- 文档编号:10477403
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:120
- 大小:837.63KB
学生成绩管理系统本科生大学毕业设计论文大学毕业设计论文.docx
《学生成绩管理系统本科生大学毕业设计论文大学毕业设计论文.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统本科生大学毕业设计论文大学毕业设计论文.docx(120页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统本科生大学毕业设计论文大学毕业设计论文
学生成绩管理系统
摘要
《学生成绩管理系统》的主要功能是实现学生成绩的计算机管理,通过它可以对全校学生的每个学期的成绩进行全面、高效、实用、方便的管理。
系统共分为五大功能模块:
一、新生注册和数据维护模块:
每年新生入校,注册新班级后,用户将学生的姓名、学号、性别等情况输入本系统,以便今后对其成绩进行管理;数据维护主要提供数据备份、恢复,教师名单管理和系统密码管理等功能。
二、学期考核计划管理模块:
对每学期各个班级的教学计划(包括所学课程名、课程类型、课时数、授课老师)进行管理,以及对各科课程的分析参数进行设置。
三、学生考试成绩管理模块:
1、原始成绩管理。
用户输入学生各门课程的平时、期中、期末、实验成绩后,系统根据课程所设定的计算参数自动计算该生该课程的最终成绩。
2、系统成绩管理。
显示、修改、打印该班分析处理后的成绩。
3、统计。
以班级、年级或全校为单位,统计学生考试成绩优良率,以便总结当前学期教学工作中成绩和不足,为管理者提供决策辅助资料。
4、毕业成绩汇总。
以班级为单位汇总、打印所有学生在校全部学期各科的考试成绩和不及格课程补考后的成绩;同时可以打印学生成绩登分册,它记录了学生在校所有学期所学习的课程名称、课时数、考试成绩、第一次补考成绩、第二次补考成绩、任课教师等数据。
四、补考成绩管理模块:
汇总各学期学生的补考课程,输入学生补考后的成绩。
五、学期处理模块:
学期末对部分学生进行留级、跟班试读处理;对于已经毕业的班级,可以清除其在校的所有数据。
1.引言
1.1毕业设计课题的特点
当今社会是一个信息高速发展的时代,然而我们很多学校对学生成绩的管理工作还处于落后的手工管理阶段,这就迫切地需要一个能对学生成绩进行计算机管理的软件。
为了填补这一空缺,我设计了学生成绩管理系统,该软件经历了1.0、2.0两个主要版本,目前的版本为2.1.
学生成绩管理系统的优势在于,只需键入管理对象的基本情况,便能自动地将信息进行分析、计算、汇总、打印,以达到全面、高效的系统管理目的。
另外,该系统还具有以下特点:
▲运算准确。
系统对于所有的系统成绩的生成都严格按照分析参数计算得出,大大减轻了教师的工作负担,并且计算机对于任何人都是“铁面无私”的,即便是57、58分,也照样列入不及格的行列;只要用户输入的数据正确,绝对不会出现统计数据不准确以及补考人员漏报、错报等情况。
▲工作效率高。
使用该系统管理一个4000人左右学校的成绩数据,可以不需配备专门的人员,只要安排一个兼职人员管理,就可以完成以往几个甚至十几个人的工作量。
▲采用条件判断方法,实现在同一个表格框中打印不同字体格式的效果。
这一技术运用在《毕业成绩汇总表》中,当某生的成绩为不及格时,除了打印原有成绩外,还需要打印该生补考后的成绩,由于字数增加,系统会自动识别和缩小字体,以容纳多个字符的打印,完好的解决了这个问题。
▲丰富的提示信息和帮助信息。
系统的许多菜单及控制都在状态栏上给出说明;并且用户可在任何地方通过按F1键得到在线帮助,可以及时解决用户在操作当中遇到的各种问题。
1.2设计环境需求:
1硬件环境
IBMPC或与之兼容的PC机,PENTIUM或者其它相当的CPU,工作频率在100MHZ以上;内存在32M以上;硬盘要有200M以上的剩余空间;其它附属设备,如:
显示器、软驱、键盘、鼠标和打印机等。
2软件环境
操作系统:
Windows95中文版
开发工具:
VisualFoxpro6.0中文版,它作为功能强大、成熟的数据管理应用程序开发环境,提供了多种界面生成、程序测试、开发帮助工具,是理想的MIS应用程序开发系统。
2.软件结构与工作步骤
2.1软件的系统结构(见下图)
2.2工作步骤
根据上述的软件系统结构,现简述一下《学生成绩管理系统V2.1》的使用时的工作步骤,以掌握软件在开发过程中,应注意的工作流程。
(1)如果当前班级是一个新班级,首先使用“班级数据管理”的“添加新班级”功能来添加这个新班级名称,然后使用“基本情况管理”来输入新班级学生的学号、姓名、性别的内容。
(2)接下来使用“考核计划管理”功能输入当前班级当前学期要进行教学安排的课程名及其相关内容,但如果是该班以前学期的考核计划,系统只允许查看,而无法进行修改。
(3)对“分析参数”进行维护,可根据需要增加或修改用户分析系统成绩的参数。
(4)用“原始成绩管理”输入每门课程的课程代号以及学生的原始成绩(这是系统获得数据的最主要方式,用户应输入正确成绩数据)输入完毕,使用“分析计算”功能生成“系统成绩”。
(5)用“系统成绩管理”统计全部成绩和单科成绩,对于一些特殊情况的学生,应提供对系统成绩进行修改的功能。
并且可以统计全校、指定年级、指定班级为单位的优良率。
(6)在“补考前统计”中列出不及格人员的名单,然后用户输入补考后的成绩。
接着统计该班学年补考不及格名单、全校本学期补考不及格名单。
(7)当用户决定了哪些学生要进行留级和跟班试读,可能使用“学期处理”中的“留级处理”和“跟班试读”功能完成以上操作。
(8)本学期成绩处理完毕后,用户可使用“数据维护”功能将成绩数据进行备份,然后在下学期开学时,使用“系统初始化”功能进行数据整理、学期更新,这是每学期开学时系统应进行的一项操作,用户初始部分变量参数。
(9)当该班临近毕业时,用户可以统计毕业补考名单、打印毕业汇总表、打印成绩登分册,待这些工作全部做完后,使用“毕业处理”,清除该班在校的全部数据,宣告其毕业。
3.程序主体编制
首先在主程序中定义了几个全局变量,其名称和含义详见下表:
变量名
变量含义
变量示例
LL4
用户选定的学期
“98春”
LIU
用户选定的班级
“电算9741”
LL5
被选定班级的代号
“008”
LL2
选定班级的进校年份
“1998”
NLU
选定学期的成绩数据的存放路径
“D:
\CJGL\98春”
LU
数据文件的前缀(LL5+LL4)
“00898春”
NYM
系统保存的当前最新的学期
“98春”
YSK
原始成绩库的存放路径
“D:
\CJGL\DATA\”
PDBF
系统辅助库的存放路径
“D:
\CJGL\DBF”
PYM
系统当前所处的目录
“D:
\CJGL\”
3.1主要模块编制介绍
下面把各个模块中的主要程序编制思路作一个简单介绍。
●选择当前班级和学期
本模块的主要作用是由用户来选择需要进行处理的班级和学期,以此来对用户选择的班级和学期进行处理。
(界面见下图)
主要程序如下:
*******CHANGNOW.SCX
Caption="确定(\ Name="Command1" PROCEDUREClick(当用户单击“确定”按钮) IFthisform.List1.value#space(8) liu=thisform.List1.value ENDIF ll4=subs(str(thisform.Spinner1.value,4),3,2)+iif(thisform.Optiongroup1.value=1,"春","秋") SELEbjk LOCAforCLA=liu co1=nj ll5=FNA lu=ll5+ll4 ll1=str(thisform.Spinner1.value,4) SELEnj LOCAforcode=co1 ll2=subs(gonj,1,4) nlu=pym+ll4 ysk=pym+"DATA\" PDBF=pym+"DBF" _SCREEN.caption="《吉林工程职业学院》学生成绩管理系统当前班级及学期: "+ALLT(liu)+"("+ll4+")" ReleTHISFORM ENDPROC ##程序代码注释: 将选定的班级、学期赋值给全局变量LIU、LL4、LL5、LL2、NLU、YSK、PDBF,并且把_SCREEN对象的标题显示为用户选定的班级和学期。 ●考核计划管理 本模块的作用在每个新学期开始时,用户将每个班级该学期所制定的考核计划在此输入,其内容为课程名,课时数,课程类型,任课教师。 这些内容将决定本学期该班“系统成绩”库的结构,其中任课教师名可以从教师名称库中选取。 可以使用“引入”按钮来将相似班级的考核计划读取进来。 如果用户修改了当前班级的学生基本情况,或者其它的原因,用户需重新建立新的空白原始成绩库,可以选择“重建”按钮来进行。 (界面见下图) 主要程序如下: *******MKCJH.SCX PROCEDUREActivate(页面激活后执行) SETdeleon IFjh=0 IFval(ll1) kk1=messagebox("不能建立《"+allt(liu)+"》班进校前学期的考核计划! ",1+48+256,"错误") IFkk1=1 DOFORM(pym+"form\CHANGNOW") RETURN ELSE ReleTHISFORM RETURN ENDIF ENDIF IF! DirEctory(nlu)&&判断是否有当前新的学期目录 MD(nlu) ENDIF ………… ENDPROC ##程序代码注释: 进入本功能后,判断是否满足建立考核计划的条件。 Caption="删除(\ Name="cmddelete" PROCEDUREClick(如果单击“删除”按钮) SELEbb co31=KCM IFfile(BB2) co33=chr(13)+"本操作将删除成绩库中的《"+TRIM(co31)+"》字段及其已有的数据! " ELSE co33="" ENDIF co32=messagebox("是否删除《"+TRIM(co31)+"》课程名? "+co33; 4+32+256,"删除询问") IFco32=6 IFll4=nym&&说明选定学期处于当前学期 ls3=ysk+ll5+"ysk.dbf" ls7=ysk+ll5+"csk.dbf" IFfile(ls3) FORLS5=1to4 ls4=allt(KCM)+str(LS5,1) ALTERtable(ls3)drop&ls4 ENDFOR BZ1=1 SELE0 USE(ls7) LOCAfor课程名=bb.KCM IFfound() Dele PACK ENDIF USE ENDIF ENDIF SELEbb Dele COUNTtoclick1for! dele() GOTOP thisform.grid1.afterrowcolchange() ENDIF thisform.refresh ENDPROC ##程序代码注释: 用户删除了某门课程,判断该课程是否已经在系统成绩表中建立了结构,如果建立,需在系统成绩表中的删除相应的结构。 command1.Caption="确定(\ command1.Name="Command1" command2.Caption="取消(\ command2.Name="Command2" PROCEDUREcommand1.Click(如果单击“确定”按钮) IFISBLANK(thisform.kcm1.value)orISBLANK(thisform.rkte1.value) =messageBOX("数据输入不完整! ",0+16,"错误") thisform.kcm1.setfocus RETURN ENDIF IFISDIGIT(thisform.kcm1.value) =messageBOX("课程名不能以数字开头! ",0+16,"错误") thisform.kcm1.setfocus RETURN ENDIF IFat("",allt(thisform.kcm1.value))>0 =messageBOX("课程名中不能含有空格! ",0+16,"错误") thisform.kcm1.setfocus RETURN ENDIF SELEbb CD1=RECN() LOCAforKCM=allt(thisform.kcm1.value) IFfound()AND(ThisForm.kskc1.VALUE=KSKCORco1=1) =messageBOX("课程名重复,输入无效! ",0+16,"错误") thisform.kcm1.setfocus RETURN ENDIF IFco1=1&&添加了一门课程 IFll4=nym&&说明选定学期处于当前学期 ls3=ysk+ll5+"ysk.dbf" ls7=ysk+ll5+"csk.dbf" IFfile(ls3)&&如果已产生了原始库 FORLS5=1to4 ls4=allt(thisform.kcm1.value)+str(LS5,1)+"n(4,1)" ALTERtable(ls3)addcolumn&ls4 ENDFOR BZ1=1 SELE0 USE(ls7) APPEblan REPL课程名withallt(thisform.kcm1.value),类型withiif(thisform.kskc1.value="考试","N","C") USE ENDIF ENDIF thisform.cmdappend.enabled=.t. ELSE&&修改了一门课程 SELEbb GOCD1 IF! (thisform.kcm1.value=KCM).OR.; ! (thisform.kskc1.value=KSKC)&&如果修改了课程名或课程类型 IFll4=nym&&说明选定学期处于当前学期 ls7=ysk+ll5+"csk.dbf" ls3=ysk+ll5+"ysk.dbf" IFfile(ls3) lsm1=KCM IF! (thisform.kcm1.value=KCM) FORLS5=1to4 ls4=allt(thisform.kcm1.value)+str(LS5,1) ls6=allt(KCM)+str(LS5,1) ALTERtable(ls3)rename&ls6to&ls4 ENDFOR ENDIF SELE0 USE(ls7) LOCAfor课程名=lsm1 IFFOUND() REPL课程名withallt(thisform.kcm1.value),类型withiif(thisform.kskc1.value="考试","N","C") ENDIF USE BZ1=1 ENDIF ENDIF ENDIF ENDIF SELEbb IFco1=1 co1=0 APPEblank thisform.cmdappend.enabled=.t. ENDIF REPLKCMwithallt(thisform.kcm1.value),ksswithstr(thisform.Spinner1.value,3),KSKCwiththisform.kskc1.value,rktewiththisform.rkte1.value thisform.grid1.enabled=.t. thisform.refresh ENDPROC ##程序代码注释: 用户添加或修改了某门课程,判断该课程是否已经在系统成绩表中建立了结构,如果建立,需在系统成绩表中的添加或修改相应的结构。 ●原始成绩管理 本模块用于输入当前班级学生的原始成绩,每门课程都有四项内容,分别为: 平时成绩、实验成绩、期中成绩、期末成绩。 并且每门课程都必须输入它的课程代号,用于以后生成系统成绩时作为计算的依据;用户可以选中“代号表”中的课程代号,然后单击“读取课程代号”按钮,系统会自动将当前选中的课程代号粘贴至当前课程的代号处;每当用户选择一门课程,如果该课程已经输入“课程代号”,“代号表”会以蓝色突出显示该代号的具体内容。 当原始成绩全部录入完毕后,可以使用主菜单上的“分析计算”功能来生成系统成绩。 本模块还提供了鼠标右键弹出“快捷菜单”功能,其中包括整体移动、保存成绩、剪切、复制、粘贴等功能。 (界面见下图) 主要程序如下: *******YSCJGL.SCX PROCEDUREActivate(页面激活后执行) SETsafeoff SETMULTILOCKSON&&对于表缓冲必须为ON ll4=nym IFBD=0 _SCREEN.caption="《江西省第一工业学校》学生成绩管理系统V2.1当前班级及学期: "+ALLT(liu)+"("+ll4+")" lu=ll5+ll4 nlu=pym+ll4 fo3=nlu+"\"+lu+"c.dbf"&&考核计划库 IF! file(fo3) ME1=messageBOX("该班尚未进行考核计划登录! ",1+48+256,"错误") IFME1=1 DOFORM(pym+"form\CHANGNOW") RETURN ELSE ReleTHISFORM RETURN ENDIF ENDIF SELE0 USE(fo3) IFrecc()=0 ME1=messageBOX("该班尚未进行考核计划登录! ",1+48+256,"错误") …… ENDIF USE ……(建立原始成绩表) SELEysk =TABLEUPDATE(.T.) thisform.Label2.CAPTION=ALLT(liu)+"班"+ll4+"原始成绩" thisform.dataenvironment.closetables thisform.dataenvironment.Cursor2.cursorsource=fo2 thisform.dataenvironment.Cursor3.cursorsource=fo4 thisform.dataenvironment.opentables =CURSORSETPROP('Buffering',5,'YSK')&&启用表缓冲 SELEcsk GOtop thisform.TEXT1.value=课程名代号 thisform.grid2.recordsource="YSK" thisform.grid1.recordsource="kcdhk" bo1.rowsource="课程名" IFISBLANK(thisform.TEXT1.value) thisform.grid2.enabled=.f. ENDIF bo1.value=bo1.list (1) SELEkcdhk LOCAfor课程名代号=thisform.TEXT1.value IFfound() thisform.label4.caption=allt(代号说明) ENDIF ELSE bo1.VALUE=COB1 BD=0 ENDIF ENDPROC ##程序代码注释: 先判断用户是否建立了考核计划,然后根据考核计划建立原始成绩表。 PROCEDUREQueryUnload(退出表单时执行) #DEFINESAVECHG_LOC'您修改了数据,要保存修改值吗? ' #DEFINESAVECHG2_LOC'保存修改' SELEkcdhk RECAall SELEysk IFGETNEXTMODIFIED(0)>0 lnChoice=MESSAGEBOX(SAVECHG_LOC,3+32,SAVECHG2_LOC) IFlnChoice=2 NODEFAULT ELSE IFlnChoice=6&&Yes =TABLEUPDATE(.T.) ELSE =TABLEREVERT(.T.) ENDIF ENDIF ENDIF ENDPROC ##程序代码注释: 先判断用户是否修改了数据,通过TABLEUPDATE(.T.)来实现保存表缓冲内的数据。 PROCEDURERightClick(单击鼠标右键) XM=ThisForm.Check3.ENABLED XM1=ThisFbo1.VALUE COB1=XM1 DO(pym+"ZTYD.MPR")WITHTHIS ENDPROC ##程序代码注释: 调用ZTYD.MPR菜单文件,弹出快捷菜单。 ●系统成绩管理 本模块可对由原始成绩生成的系统成绩进行浏览、修改和统计三项操作。 用户点击“成绩”页框,系统即显示系统成绩,并且系统还将不及格的课程用红色显示,用户可以直接在成绩表格中对有特殊情况的学生成绩进行修改,如果某课程的类型是考查课程,用户要使用空格键选择成绩进行输入;用户点击“统计”页框,系统会显示所有课程的五个等级的各级百分比率和人数以及课程类型为“考试”课程的平均分。 用户单击“打印”按钮,可以打印“全班成绩汇总表”和“单科成绩表”。 (界面见下图) 主要程序如下: *******XTCJGL.SCX PROCEDUREActivate(页面激活后执行) IFla1=0 SETsafeoff SETMULTILOCKSON&&对于表缓冲必须为ON fo1=nlu+"\"+lu+"a.dbf"&&系统成绩库 fo2=nlu+"\"+lu+"c.dbf"&&考核计划库 IF! file(fo1) ME1=messageBOX("系统未找到《"+ALLT(liu)+"》班的系统成绩!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 本科生 大学 毕业设计 论文