教学成绩评价系统.doc

上传人:飞****2 文档编号:78766095 上传时间:2023-03-19 格式:DOC 页数:9 大小:58KB
返回 下载 相关 举报
教学成绩评价系统.doc_第1页
第1页 / 共9页
教学成绩评价系统.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《教学成绩评价系统.doc》由会员分享,可在线阅读,更多相关《教学成绩评价系统.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、教学成绩评价系统Main函数: SET AUTOSAVE ON SET CONSOLE OFF SET HEADING OFF SET TALK OFF SET DELETED ON SET SAFETY OFF SET ESCAPE OFF SET NOTIFY OFF SET OPTIMIZE ON SET RESOURCE OFF SET STATUS OFF SET STATUS BAR OFF SET SYSMENU OFFDECLARE LONG FindWindow IN User32.DLL AS Find_Window STRING , STRING &Windows API

2、 声明 _SCREEN.Visible= .F. CLOSE ALL IF FIND_WINDOW(0,教学成绩评价系统) 0 = MESSAGEBOX( + 不能多次启动 !,64,提 示) QUIT ENDIF thePath = ADDBS(JUSTPATH(SYS(16) &定义文件目录 SET DEFAULT TO (thePath) OPEN DATABASE sysdatabaseParameterSetDataBase.dbc USE sysdatabasecourse IN 0 USE sysdatabasecategory IN 0 USE sysdatabaseclass

3、category IN 0 USE sysdatabasetarget IN 0 USE sysdatabasescale IN 0 USE sysdatabaseregulation IN 0 USE sysdatabaseoutfile IN 0 DO FORM mainform ON SHUTDOWN do appSHUTDOWN ON ERROR do errHandler with error( ), message( ) READ EVENTS *-错误处理程序-PROCEDURE appSHUTDOWN ON ERROR CLEAR EVENTS CLOSE ALL QUIT C

4、LEAR ALLENDPROCPROCEDURE errHandler PARAMETER MERROR , MESS MESSAGEBOX(编号: + TRIM(STR(MERROR) + CHR(13) + 信息: + MESS ,16,程序错误)ENDPROC参数设置窗口:*科目course设置xuekegrid属性*thisform.setpageframe .xuekesetpage.xuekegrid.columncount=2thisform.setpageframe .xuekesetpage.xuekegrid.recordsourcetype=1thisform.setpa

5、geframe .xuekesetpage.xuekegrid.recordsource=coursethisform.setpageframe .xuekesetpage.xuekegrid.column1.controlsource=course.科目thisform.setpageframe .xuekesetpage.xuekegrid.column1.header1.caption=科目thisform.setpageframe .xuekesetpage.xuekegrid.column2.controlsource=course.总分thisform.setpageframe .

6、xuekesetpage.xuekegrid.column2.header1.caption=总分*班级classcategory设置banjileixinggrid属性*thisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid .columncount=2thisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid.recordsourcetype=1thisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid.recor

7、dsource=classcategorythisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid.column1.controlsource=classcategory.班级thisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid.column1.header1.caption=班级thisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid.column2.controlsource=classcategory.班级

8、类型代号thisform.setpageframe.banJiLeiXingSetPage.banJiLeiXingGrid.column2.header1.caption=班级类型代号thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid .columncount=2thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.recordsourcetype=1thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.recordsource=

9、categorythisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.column1.controlsource=category.班级类型代号thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.column1.header1.caption=代号thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.column2.controlsource=category.班级类型thisform.setpageframe.banJiLeiXi

10、ngSetPage.LeiXingGrid.column2.header1.caption=班级类型thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.column2.width=105thisform.setpageframe.banJiLeiXingSetPage.LeiXingGrid.ReadOnly= .T.*指标target设置zhibiaogrid属性*thisform.setpageFrame .zhibiaosetpage.zhibiaogrid.columncount=7thisform.setPageFrame .z

11、hibiaosetpage.zhibiaogrid.recordsourcetype=1thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.recordsource=targetthisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column1.controlsource=target.班级类型代号thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column1.header1.caption=班级类型thisform.setPageFrame .z

12、hibiaosetpage.zhibiaogrid.column2.controlsource=target.指标1thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column2.header1.caption=指标1thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column3.controlsource=target.指标2thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column3.header1.caption=指标2thisfo

13、rm.setPageFrame .zhibiaosetpage.zhibiaogrid.column4.controlsource=target.目标1thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column4.header1.caption=目标1thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column5.controlsource=target.目标2thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column5.header1

14、.caption=目标2thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column6.controlsource=target.三率参评人数比例thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column6.header1.caption=三率参评人数比例thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column6.width=100thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.co

15、lumn7.controlsource=target.参评因数thisform.setPageFrame .zhibiaosetpage.zhibiaogrid.column7.header1.caption=参评因数*其他参数scale regulation设置biligrid mubiaofengrid属性*thisform.setpageFrame .qitacanshusetpage.biligrid.columncount=5thisform.setpageFrame .qitacanshusetpage.biligrid.recordsourcetype=1thisform.set

16、pageFrame .qitacanshusetpage.biligrid.recordsource=scalethisform.setpageFrame .qitacanshusetpage.biligrid.column1.controlsource=scale.平均分所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column1.header1.caption=平均分所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column1.width=87thisform.set

17、pageFrame .qitacanshusetpage.biligrid.column2.controlsource=scale.优秀率所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column2.header1.caption=优秀率所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column2.width=87thisform.setpageFrame .qitacanshusetpage.biligrid.column3.controlsource=scale.及格

18、率所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column3.header1.caption=及格率所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column3.width=87thisform.setpageFrame .qitacanshusetpage.biligrid.column4.controlsource=scale.三率所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column4.header

19、1.caption=三率所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column4.width=87thisform.setpageFrame .qitacanshusetpage.biligrid.column5.controlsource=scale.双进线所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.column5.header1.caption=双进线所占比例thisform.setpageFrame .qitacanshusetpage.biligrid.co

20、lumn5.width=87thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.columncount=4thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.recordsourcetype=1thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.recordsource=regulationthisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column1.cont

21、rolsource=regulation.指标类别thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column1.header1.caption=指标类别thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column2.controlsource=regulation.基础分thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column2.header1.caption=基础分thisform.setpageFra

22、me .qitacanshusetpage.mubiaofengrid.column3.controlsource=regulation.加分值每人thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column3.header1.caption=每超1人增加分值thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column3.width=100thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column4.cont

23、rolsource=regulation.减分值每人thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column4.header1.caption=每少1人减少分值thisform.setpageFrame .qitacanshusetpage.mubiaofengrid.column4.width=100主窗口导入成绩表命令按钮:fileName=GETFILE(xls,成绩文件名:,导入, 0, 导入成绩表) &-打开打开文件对话框- IF empty(filename) return ENDIF IF thisform.cal

24、culate.Enabled &如果已经导入了成绩表,则先关闭chengjiTable SELECT chengjiTable USE thisform.calculate.Enabled= .F. ENDIF IF file(thePath + DataSource成绩表.dbf) &如果成绩表已经存在,则先删除成绩表 delete file (thePath + DataSource成绩表.dbf) ENDIF *-把Excel(成绩表)文件导入为dbf数据表- _XLSAPP = CREATEOBJECT(Excel.application) _XLSAPP.VISIBLE = .F.

25、_XLSAPP.APPLICATION.WORKBOOKS.OPEN(fileName) _XLSAPP.APPLICATION.ACTIVEWORKBOOK.SAVEAS(thePath + DataSource成绩表, 8) _XLSAPP.APPLICATION.ACTIVEWORKBOOK.CLOSE(.F.) _XLSAPP.QUIT() RELEASE _XLSAPP*-USE (thePath + DataSource成绩表.dbf) in 0 alias ChengJiTable thisform.calculate.Enabled=.t. 主窗口计算命令按钮*-查成绩表中的科

26、目(成绩表中有哪些科目)-select courseset filter toreplace all 标志 with .F.select chengjiTablen=fcoun()for i=1 to n select chengjiTable fieldname=field(i) select course locate for 科目=fieldname if found() repl 标志 with .T. endifendfor*-建立索引-select chengjiTableindex on 总分 tag 总分 desc &用于计算班进线select courseset filter

27、 to 标志=.T.scan cName=科目 select chengjiTable index on 班级+str(总分,4)+str(&cName,3) tag (cName+sanLv) desc &用于计算三率 index on str(&cName,3) tag (cName) desc &用于计算双进线endscan*-建立RenShu人数 SanLv三率 PingJia评价三个临时表-create cursor RenShu (班级 c(2),班进线1 i,班进线2 i) &建立RenShu(双进线人数临时表)create cursor SanLv (班级 c(2),班综合分

28、n(9,2) &建立SanLv(三率临时表)create cursor PingJia (班级 c(2),班积分 n(9.2) &建立PingJia(总评临时表)SELECT coursescan cname=科目 alter table renshu add column (cname+进线1) i alter table renshu add column (cname+进线2) i alter table sanlv add column (cname+平均分) n(7,2) alter table sanlv add column (cname+优秀率) n(7,2) alter ta

29、ble sanlv add column (cname+及格率) n(7,2) alter table sanlv add column (cname+综合分) n(7,2) alter table pingjia add column (cname) n(7.2)endscan*-查班级-SELECT chengjiTableSELECT DISTINCT 班级 from chengjitable into cursor BanJi*开始计算*select BanJiSCAN select renshu append blank replace 班级 with ALLTRIM(banji.班

30、级) *-找班类别和各班指标数- SELECT classcategory LOCATE for 班级=alltrim(banji.班级) select target locate for 班级类型代号=classcategory.班级类型代号 select sanlv append blank replace 班级 with alltrim(banji.班级) *-班进线1、班进线2人数- select chengjitable set order to tag 总分 go top skip target.指标1-1 store 总分 to zb1_f count for 班级=alltri

31、m(banji.班级) and 总分=zb1_f to zb1_rs go top skip target.指标2-1 store 总分 to zb2_f count for 班级=alltrim(banji.班级) and 总分=zb2_f and 总分=(course.总分)*0.8 to yx1 &计算优秀人数 go top count next cprs for chengjitable.&cname=(course.总分)*0.6 to jg1 &计算及格人数 if cprsbjrs go top skip cprs average chengjitable.&cname rest

32、to pj2 &计算其余部分平均分 go top skip cprs count rest for chengjitable.&cname=(course.总分)*0.8 to yx2 &计算其余部分优秀人数 go top skip cprs count rest for chengjitable.&cname=(course.总分)*0.6 to jg2 &计算其余部分及格人数 set filter to select sanlv replace (cname+平均分) with round(pj1*(target.参评因数)+pj2*(1-target.参评因数),2) replace (

33、cname+优秀率) with round(yx1/cprs)*target.参评因数*100+(yx2/(bjrs-cprs)*(1-target.参评因数)*100,2) replace (cname+及格率) with round(jg1/cprs)*target.参评因数*100+(jg2/(bjrs-cprs)*(1-target.参评因数)*100,2) replace (cname+综合分) with round(&cname.平均分*scale.平均分所占比例+&cname.优秀率*scale.优秀率所占比例/100+&cname.及格率*scale.及格率所占比例/100,2

34、) else set filter to select sanlv replace (cname+平均分) with round(pj1,2) replace (cname+优秀率) with round(yx1/cprs*100,2) replace (cname+及格率) with round(jg1/cprs*100,2) replace (cname+综合分) with round(&cname.平均分*scale.平均分所占比例+&cname.优秀率*scale.优秀率所占比例/100+&cname.及格率*scale.及格率所占比例/100,2) endif zhf=zhf+&cn

35、ame.综合分 *-双进线计算- select chengjitable set order to tag (cname) go top skip target.指标1-1 store chengjitable.&cname to zb1_jx count for 班级=alltrim(banji.班级) and 总分=zb1_f and chengjitable.&cname=zb1_jx to zb1_jxrs go top skip target.指标2-1 store chengjitable.&cname to zb2_jx count for 班级=alltrim(banji.班级

36、) and 总分=zb2_f and chengjitable.&cname=zb2_jx to zb2_jxrs SELECT renshu replace (cname+进线1) with zb1_jxrs replace (cname+进线2) with (zb2_jxrs-zb1_jxrs) endscan select sanlv replace 班综合分 with zhfENDSCAN*-成绩汇总- *-班级综合评定- select banji scan select pingjia append blank replace 班级 with alltrim(banji.班级) se

37、lect classcategory locate for 班级=alltrim(banji.班级) select target locate for 班级类型代号=classcategory.班级类型代号 select renshu locate for 班级=alltrim(banji.班级) select sanlv locate for 班级=alltrim(banji.班级) select regulation locate for alltrim(指标类别)=指标1 IF (renshu.班进线1-target.目标1)=0 bpd=(renshu.班进线1-target.目标1)

38、*regulation.加分值每人+regulation.基础分 ELSE bpd=(renshu.班进线1-target.目标1)*regulation.减分值每人+regulation.基础分 ENDIF locate for alltrim(指标类别)=指标2 IF (renshu.班进线2-target.目标2)=0 bpd=bpd+(renshu.班进线2-target.目标2)*regulation.加分值每人+regulation.基础分 ELSE bpd=bpd+(renshu.班进线2-target.目标2)*regulation.减分值每人+regulation.基础分 E

39、NDIF select pingjia replace 班积分 with round(bpd*scale.双进线所占比例+sanlv.班综合分*scale.三率所占比例,0) *-单科- SELECT course scan cname=course.科目 z1=course.科目+进线1 z2=course.科目+进线2 z3=course.科目+综合分 SELECT regulation locate for alltrim(指标类别)=指标1 IF (renshu.&z1-target.目标1)=0 bpd=(renshu.&z1-target.目标1)*regulation.加分值每人

40、+regulation.基础分 ELSE bpd=(renshu.&z1-target.目标1)*regulation.减分值每人+regulation.基础分 ENDIF loca for alltrim(指标类别)=指标2 IF (renshu.&z2-target.目标2)=0 bpd=bpd+(renshu.&z2-target.目标2)*regulation.加分值每人+regulation.基础分 ELSE bpd=bpd+(renshu.&z2-target.目标2)*regulation.减分值每人+regulation.基础分 ENDIF SELECT pingjia replace(cname) with round(bpd*scale.双进线所占比例+sanlv.&z3*scale.三率所占比例,0) endscan endscan*-输出计算结果-SELECT outfile select sanlv copy to alltrim(outfile.目录)+alltrim(outfile.文件名)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁