《数据库课程设计学生管理信息系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计学生管理信息系统.doc(29页珍藏版)》请在三一办公上搜索。
1、引言2第一章 学生管理系统的设计思想3第二章 系统的功能分析32. 1 数据库结构及系统特点32. 2 各管理模块的主要功能实现42. 2. 1 档案管理模块42. 2. 2 成绩管理模块42. 2. 3 其它管理4第三章 举例:43.1学生成绩管理系统界面53.2.1档案管理按钮63.2.2成绩录入按钮153.2.3成绩分析193.2.4、系统维护263.2.5、数据备份273.2.6、帮助说明28第四章 结束语29致 谢29引言现代化的学校离不开计算机技术在管理领域的应用。近年来,学校发展的内外环境对信息的需求迅速增长,大量数据的收集、传输、处理、存储和分析等工作成为极其复杂、繁重的任务。
2、学生管理工作是学校管理工作的重要组成部分,由于此项工作事务性多,涉及面广,重复性大,非常适合用计算机进行管理。本文具体介绍一个学生管理系统的设计思想。系 统 本系统分三大菜单部分紧密结合联系,共分为两个数据库,第一个数据库包括学生管理系统维护表和成绩查询表,第二个数据库包括系统管理表。如下图所示:系统管理表 学生管理维护表和成绩查询表menuitem.dbfreb.dbf cjb.dbf log.dbf operator.dbf menuright.dbf第一章 学生管理系统的设计思想本学生管理系统利用Visual FoxPro 6. 0 作为前台开发工具, Vf 提供了大量的控件,这些控件可
3、用于实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,使应用程序的开发流程更为合理。后台采用Access 数据库,Access 数据库适用于小型应用系统。开发过程中在考虑系统总体设计和数据库结构设计的同时,还应体现学生管理系统的以下设计特点: 可靠性:管理系统应该在系统结构、设计方案、设备选择等方面综合考虑,保证系统能够无故障运行,同时具有出错处理,容错能力,冗余备份功能。整个系统应具有开放性,方便数据交换,信息共享,也更易于更新和功能扩充。实用性:整个系统的功能,应完全立足于学校学生管理和教学的要求,保证系统信息处理和传递的安全、可靠、及时、准确,有利于学生管理的科学性。如:学生档
4、案管理,把学生的通信地址、父母工作单位、联系电话等等存入档案,便于形成学校、家长两位一体的管理方式,家长可及时配合学校,加强对子女的督促管理。另外,通过学生成绩管理,可分析学生的学业成绩(学生成绩信息可与教务部门共享),有利于及时采取相应的措施,加强教学管理。因此借助计算机管理,实现学生资源信息化和管理资源共享是促进学校全面提高教育、教学、管理水平的重要措施。操作性:管理系统必须提供友好的用户界面,采用基于Windows 的界面,操作简便、容错性强,易于管理和维护的软件。第二章 系统的功能分析2. 1 数据库结构及系统特点本系统可分为以下几个功能模块:档案管理、成绩管理、其它管理。数据库管理软
5、件在编写程序代码之前,应首先建立若干个数据库的结构,除了考虑字段名称、类型、各数据库之间的相互关系外,还要考虑减少数据冗余及方便程序设计等。本系统的几个主要数据库是: (1) 各系部班级库。该库包括四个表:学生基本表(学号、姓名、性别、出生日期、班级代码、专业代码、联系地址、联系电话、家长姓名);专业表(专业代码,专业名称);班级表(班级代码,班级名称);学生奖、惩表(学号、姓名、奖励、处罚、奖学金) 。(2) 学生休学、退学库:该库中只有一个表。学生休学、退学表(学号、姓名、出生日期、性别、班级、)专业、联系地址、联系电话、家长姓名,休学日期,退学日期; (3) 密码库。2. 2 各管理模块
6、的主要功能实现2. 2. 1 档案管理模块该模块主要用于管理学生学籍资料、奖惩资料、休学资料、退学资料。新生入学时填写学籍卡,包括学生的学号、姓名、性别、出生日期、班级、专业、联系地址、联系电话、家长姓名等,通过录入学籍卡形成学生基本档案。该模块可以进行查询、修改、维护等操作。查询操作可按专业、班级、性别、姓名综合条件查询,也可单项查询,学生受奖励和处罚是填写奖励、处罚表,以便录入备案并形成奖惩库,可以进行查询、统计、打印等操作。学生休学、退学时,可通过学号调用学生的基本资料查询出该类学生,并对其进行修改和补充,形成休、退学库,便于以后查询该资料及学生休学年限到返校时再用。2. 2. 2 成绩
7、管理模块该模块包括用于查询学生的学期、学年成绩、学生评优统计、成绩打印等。学生成绩查询:该项资料与教务部门的学生成绩资料共享,不用重新录入。成绩查询包括学期成绩查询、学年成绩查询等。通过查询可掌握学生学习情况,打印学期、学年成绩单,可以寄发学生家长,也可帮助班主任开展工作,及时发现问题,并采取相应措施。学生评优管理:该项功能主要通过查询学生本学年成绩,审核本学年“三好”学生、“优秀学生干部”的资格,也可以形成报表,进行统计、打印等。毕业生成绩管理:通过查询毕业生成绩,打印毕业生成绩单。2. 2. 3 其它管理奖、助学金管理:奖学金、助学金的发放是由学习成绩和操行成绩通过一定的比例计算得出。并将
8、受奖、受助学生资料记录备案形成库,可供以后查询、打印时用。欠费管理:欠费资料可共享财务部门的学生交费资料,统计学生欠费人数、欠费金额,并打印表单及时催促学生交费。第三章 举例:我们就以学生成绩管理系统为例来具体介绍下此软件:首先,软件设置一个登录界面,为了增加软件的安全系数,软件设置了密码系统,密码为:1234(密码可以修改)。进入系统后有一界面,界面分为:档案管理,成绩录入,成绩分析,系统维护,数据备份,帮助说明,退出系统等四个按钮。3.1学生成绩管理系统界面学生成绩管理系统登录界面功能:此界面输入密码(1234)可进入此系统,可以进行:档案管理,成绩录入,成绩分析,系统维护,数据备份,帮助
9、说明,退出系统,可以进行自己需要的操作。学生成绩查询系统界面 功能:根据需要对个项功能进行使用。3.2.1档案管理按钮当我们点击“档案管理”时,就会调用数据库中的“学生档案”,其截图如下:其代码:“最前”按钮:SELE 学生档案表GO TOPTHISFORM.COMMAND1.ENABLED=.F.THISFORM.COMMAND2.ENABLED=.F.THISFORM.COMMAND3.ENABLED=.T.THISFORM.COMMAND4.ENABLED=.T.THISFORM.CD1.VALUE=班级代码 &将学生档案表中记录内容显示在界面中SELE 班级表LOCA FOR ALLT
10、(班级代码)=SUBST(THISFORM.CD1.VALUE,1,8) &因为在学生档案表中没有相应班级名称字段,所以通过查找班级表显示对应班级名称THISFORM.CD2.VALUE=班级名称SELE 学生档案表THISFORM.CD3.VALUE=姓名THISFORM.CD4.VALUE=学号THISFORM.CD5.VALUE=考号THISFORM.CD6.VALUE=民族THISFORM.CD7.VALUE=性别THISFORM.CD8.VALUE=出生日期THISFORM.CD9.VALUE=电话THISFORM.CD10.VALUE=邮编THISFORM.CD11.VALUE=家
11、庭住址THISFORM.CD12.VALUE=备注THISFORM.REFRESH“向前”按钮:SELE 学生档案表 IF BOF() &判断记录指针是否已到库顶THISFORM.COMMAND1.ENABLED=.F.THISFORM.COMMAND2.ENABLED=.F.ELSE &如果记录指针未到库顶,让指针向上移动一条记录SKIP -1IF BOF() &如果此时指针已到库顶,让指针指向首记录GO TOPTHISFORM.COMMAND1.ENABLED=.F.THISFORM.COMMAND2.ENABLED=.F.ENDIFENDIFTHISFORM.COMMAND3.ENABL
12、ED=.T.THISFORM.COMMAND4.ENABLED=.T.THISFORM.CD1.VALUE=班级代码 &将学生档案表中记录内容显示在界面中SELE 班级表LOCA FOR ALLT(班级代码)=SUBST(THISFORM.CD1.VALUE,1,8) &因为在学生档案表中没有相应班级名称字段,所以通过查找班级表显示对应班级名称THISFORM.CD2.VALUE=班级名称SELE 学生档案表THISFORM.CD3.VALUE=姓名THISFORM.CD4.VALUE=学号THISFORM.CD5.VALUE=考号THISFORM.CD6.VALUE=民族THISFORM.C
13、D7.VALUE=性别THISFORM.CD8.VALUE=出生日期THISFORM.CD9.VALUE=电话THISFORM.CD10.VALUE=邮编THISFORM.CD11.VALUE=家庭住址THISFORM.CD12.VALUE=备注THISFORM.REFRESH“向后”按钮:SELE 学生档案表 IF EOF() &判断记录指针是否已到库底THISFORM.COMMAND3.ENABLED=.F.THISFORM.COMMAND4.ENABLED=.F.ELSE &如果记录指针未到库底,让指针向下移动一条记录SKIPIF EOF() &如果此时指针已到库底,让指针指向尾记录GO
14、 BOTTOMTHISFORM.COMMAND3.ENABLED=.F.THISFORM.COMMAND4.ENABLED=.F.ENDIFENDIFTHISFORM.COMMAND1.ENABLED=.T.THISFORM.COMMAND2.ENABLED=.T.THISFORM.CD1.VALUE=班级代码 &将学生档案表中记录内容显示在界面中SELE 班级表LOCA FOR ALLT(班级代码)=SUBST(THISFORM.CD1.VALUE,1,8) &因为在学生档案表中没有相应班级名称字段,所以通过查找班级表显示对应班级名称THISFORM.CD2.VALUE=班级名称SELE 学
15、生档案表THISFORM.CD3.VALUE=姓名THISFORM.CD4.VALUE=学号THISFORM.CD5.VALUE=考号THISFORM.CD6.VALUE=民族THISFORM.CD7.VALUE=性别THISFORM.CD8.VALUE=出生日期THISFORM.CD9.VALUE=电话THISFORM.CD10.VALUE=邮编THISFORM.CD11.VALUE=家庭住址THISFORM.CD12.VALUE=备注THISFORM.REFRESH“最后”按钮:SELE 学生档案表GO BOTTOMTHISFORM.COMMAND1.ENABLED=.T.THISFORM
16、.COMMAND2.ENABLED=.T.THISFORM.COMMAND3.ENABLED=.F.THISFORM.COMMAND4.ENABLED=.F.THISFORM.CD1.VALUE=班级代码 &将学生档案表中记录内容显示在界面中SELE 班级表LOCA FOR ALLT(班级代码)=SUBST(THISFORM.CD1.VALUE,1,8) &因为在学生档案表中没有相应班级名称字段,所以通过查找班级表显示对应班级名称THISFORM.CD2.VALUE=班级名称SELE 学生档案表THISFORM.CD3.VALUE=姓名THISFORM.CD4.VALUE=学号THISFORM
17、.CD5.VALUE=考号THISFORM.CD6.VALUE=民族THISFORM.CD7.VALUE=性别THISFORM.CD8.VALUE=出生日期THISFORM.CD9.VALUE=电话THISFORM.CD10.VALUE=邮编THISFORM.CD11.VALUE=家庭住址THISFORM.CD12.VALUE=备注THISFORM.REFRESH新建12个label,分别写入:班级代码,班级名称,姓名,学号,考号,民族,性别,出生日期,电话,邮编,家庭住址,备注。然后在其后边各建一个组合框,其代码如下:IF LEN(ALLT(THISFORM.CD1.VALUE)#0 &判断
18、是否选择了班级代码 THISFORM.CD2.VALUE=班级表.班级名称 &如果选择了班级代码,在CD2中显示对应的班级名称 THISFORM.CD1.ENABLED=.F. &CD1置为不可用,将其他置为可用 THISFORM.CD3.ENABLED=.T. THISFORM.CD4.ENABLED=.T. THISFORM.CD6.ENABLED=.T. THISFORM.CD7.ENABLED=.T. THISFORM.CD8.ENABLED=.T. THISFORM.CD9.ENABLED=.T. THISFORM.CD10.ENABLED=.T. THISFORM.CD11.ENA
19、BLED=.T. THISFORM.CD12.ENABLED=.T. THISFORM.CD3.SETFOCUS &让CD3文本框得到焦点ENDIF最后在其最后增加6个按钮:新增,修改,删除,检索,打印和退出。其代码分别如下:新增:IF THIS.CAPTION=新增(A) &如果按下新增按钮后的处理 THISFORM.CD1.ENABLED=.T. &让CD1可用 THISFORM.CD1.VALUE=学生档案表.班级代码 &将当前记录的班级代码作为新增班级代码的默认值,并将界面中文本内容置空,等待录入新数据 THISFORM.CD3.VALUE= THISFORM.CD4.VALUE=0
20、THISFORM.CD5.VALUE= THISFORM.CD6.VALUE=汉 THISFORM.CD7.VALUE=男 THISFORM.CD8.VALUE=CTOD( . . ) THISFORM.CD9.VALUE= THISFORM.CD10.VALUE= THISFORM.CD11.VALUE= THISFORM.CD12.VALUE= THISFORM.COMMAND1.ENABLED=.F. &将其他按钮设为无效 THISFORM.COMMAND2.ENABLED=.F. THISFORM.COMMAND3.ENABLED=.F. THISFORM.COMMAND4.ENABL
21、ED=.F. THISFORM.COMMAND6.ENABLED=.F. THISFORM.COMMAND7.ENABLED=.F. THISFORM.COMMAND8.ENABLED=.F. THISFORM.COMMAND9.ENABLED=.F. THISFORM.COMMAND5.CAPTION=保存(S) &更改按钮标题 THISFORM.COMMAND10.CAPTION=放弃(I) THISFORM.CD1.SETFOCUSELSE IF LEN(ALLT(THISFORM.CD3.VALUE)=0 =MESSAGEBOX(请输入学生姓名!,0+48,系统提示) THISFORM
22、.CD3.SETFOCUS RETURN ENDIF IF THISFORM.CD4.VALUE=0 =MESSAGEBOX(请输入学号!,0+48,系统提示) THISFORM.CD4.SETFOCUS RETURN ENDIF THISFORM.COMMAND1.ENABLED=.T. &如果选择放弃,则让按钮变为可用 THISFORM.COMMAND2.ENABLED=.T. THISFORM.COMMAND3.ENABLED=.T. THISFORM.COMMAND4.ENABLED=.T. THISFORM.COMMAND5.ENABLED=.T. THISFORM.COMMAND6
23、.ENABLED=.T. THISFORM.COMMAND7.ENABLED=.T. THISFORM.COMMAND8.ENABLED=.T. THISFORM.COMMAND9.ENABLED=.T. THISFORM.COMMAND5.CAPTION=新增(A) &将按钮标题还原 THISFORM.COMMAND10.CAPTION=退出(X) FOR i=1 TO 12 &将界面中文本框设为不可修改 M_I=ALLT(STR(i) THISFORM.CD&M_I.ENABLED=.F. ENDFOR SELE 学生档案表 APPE BLANK REPL 班级代码 WITH THISFO
24、RM.CD1.VALUE,姓名 WITH ALLT(THISFORM.CD3.VALUE),学号 WITH THISFORM.CD4.VALUE,; 考号 WITH THISFORM.CD5.VALUE,民族 WITH THISFORM.CD6.VALUE,性别 WITH THISFORM.CD7.VALUE,; 出生日期 WITH THISFORM.CD8.VALUE,电话 WITH ALLT(THISFORM.CD9.VALUE),邮编 WITH THISFORM.CD10.VALUE,; 家庭住址 WITH ALLT(THISFORM.CD11.VALUE),备注 WITH ALLT(T
25、HISFORM.CD12.VALUE)修改:IF THIS.CAPTION=修改(M) &如果按下新增按钮后的处理 THISFORM.CD3.ENABLED=.T. THISFORM.CD4.ENABLED=.T. THISFORM.CD6.ENABLED=.T. THISFORM.CD7.ENABLED=.T. THISFORM.CD8.ENABLED=.T. THISFORM.CD9.ENABLED=.T. THISFORM.CD10.ENABLED=.T. THISFORM.CD11.ENABLED=.T. THISFORM.CD12.ENABLED=.T. THISFORM.CD3.S
26、ETFOCUS &让CD3文本框得到焦点 THISFORM.COMMAND1.ENABLED=.F. &将其他按钮设为无效 THISFORM.COMMAND2.ENABLED=.F. THISFORM.COMMAND3.ENABLED=.F. THISFORM.COMMAND4.ENABLED=.F. THISFORM.COMMAND5.ENABLED=.F. THISFORM.COMMAND7.ENABLED=.F. THISFORM.COMMAND8.ENABLED=.F. THISFORM.COMMAND9.ENABLED=.F. THISFORM.COMMAND6.CAPTION=保存
27、(S) &更改按钮标题 THISFORM.COMMAND10.CAPTION=放弃(I) THISFORM.CD3.SETFOCUSELSE IF LEN(ALLT(THISFORM.CD3.VALUE)=0 =MESSAGEBOX(请输入学生姓名!,0+48,系统提示) THISFORM.CD3.SETFOCUS RETURN ENDIF IF THISFORM.CD4.VALUE=0 =MESSAGEBOX(请输入学号!,0+48,系统提示) THISFORM.CD4.SETFOCUS RETURN ENDIF THISFORM.COMMAND1.ENABLED=.T. &如果选择放弃,则
28、让按钮变为可用 THISFORM.COMMAND2.ENABLED=.T. THISFORM.COMMAND3.ENABLED=.T. THISFORM.COMMAND4.ENABLED=.T. THISFORM.COMMAND5.ENABLED=.T. THISFORM.COMMAND6.ENABLED=.T. THISFORM.COMMAND7.ENABLED=.T. THISFORM.COMMAND8.ENABLED=.T. THISFORM.COMMAND9.ENABLED=.T. THISFORM.COMMAND6.CAPTION=修改(M) &将按钮标题还原 THISFORM.CO
29、MMAND10.CAPTION=退出(X) FOR i=1 TO 12 &将界面中文本框设为不可修改 M_I=ALLT(STR(i) THISFORM.CD&M_I.ENABLED=.F. ENDFOR SELE 学生档案表 REPL 班级代码 WITH THISFORM.CD1.VALUE,姓名 WITH ALLT(THISFORM.CD3.VALUE),学号 WITH THISFORM.CD4.VALUE,; 考号 WITH THISFORM.CD5.VALUE,民族 WITH THISFORM.CD6.VALUE,性别 WITH THISFORM.CD7.VALUE,; 出生日期 WIT
30、H THISFORM.CD8.VALUE,电话 WITH ALLT(THISFORM.CD9.VALUE),邮编 WITH THISFORM.CD10.VALUE,; 家庭住址 WITH ALLT(THISFORM.CD11.VALUE),备注 WITH ALLT(THISFORM.CD12.VALUE)ENDIFENDIF删除:SELE 学生档案表IF RECC()=0 =MESSAGEBOX(无记录可供删除!,0+48,系统提示)ELSE M_KH=ALLT(考号) IF MESSAGEBOX(您真要删除该记录?,4+32+256,请确认)=6 &删除前进行确认提示 SELE 成绩表 LO
31、CA FOR ALLT(考号)=M_KH IF FOUND() IF MESSAGEBOX(系统发现该学生有相应的考试记录,是否确定删除?,4+32+256,询问)#6 RETURN ELSE DELE FOR ALLT(考号)=M_KH PACK ENDIF ENDIF M_JLH=RECN() set excl on &保存删除前的指针号。因为PACK后指针自动移到记录尾部,现要将当前被删记录的下一记录作为当前记录,所以要先保存当前指针号,PACK后再让指针指向该记录号位置 SELE 学生档案表 DELETE PACK set excl off IF RECC()M_JLH GO BOTT
32、OM ELSE GO M_JLH ENDIF SELE 学生档案表 THISFORM.CD1.VALUE=班级代码 &将学生档案表中记录内容显示在界面中 SELE 班级表 LOCA FOR ALLT(班级代码)=SUBST(THISFORM.CD1.VALUE,1,8) &因为在学生档案表中没有相应班级名称字段,所以通过查找班级表显示对应班级名称 THISFORM.CD2.VALUE=班级名称 SELE 学生档案表 THISFORM.CD3.VALUE=姓名 THISFORM.CD4.VALUE=学号 THISFORM.CD5.VALUE=考号 THISFORM.CD6.VALUE=民族 TH
33、ISFORM.CD7.VALUE=性别 THISFORM.CD8.VALUE=出生日期 THISFORM.CD9.VALUE=电话 THISFORM.CD10.VALUE=邮编 THISFORM.CD11.VALUE=家庭住址 THISFORM.CD12.VALUE=备注 ENDIF ENDIFTHISFORM.REFRESH检索:M_FLAG=.T. &将变量置为T,表明开始检索数据THISFORM.CD1.VALUE=THISFORM.CD2.VALUE=THISFORM.CD3.VALUE=THISFORM.CD4.VALUE=THISFORM.CD5.VALUE= THISFORM.C
34、D6.VALUE=THISFORM.CD7.VALUE=THISFORM.CD8.VALUE=CTOD( . . )THISFORM.CD9.VALUE=THISFORM.CD10.VALUE=THISFORM.CD11.VALUE=THISFORM.CD12.VALUE=THISFORM.CD5.ENABLED=.T.THISFORM.CD5.SETFOCUSTHISFORM.REFRESH打印:SET SAFE OFFSELE * FROM 学生档案表 ORDER BY 学生档案表.考号 INTO TABLE TMPXSDABSELE * FROM XSDAB LEFT OUTER JOI
35、N 班级表 ON XSDAB.班级代码=班级表.班级代码 INTO TABLE TMPXSDAREPORT FORM REPORT学生档案报表 TO PRINT PROMPT PREV退出:IF THIS.CAPTION=退出(X) &如果选择退出按钮,则退出本模块 SELE 学生档案表 USE RELE THISFORM *DO FORM 主界面ELSE THISFORM.COMMAND1.ENABLED=.T. &如果选择放弃,则让按钮变为可用 THISFORM.COMMAND2.ENABLED=.T. THISFORM.COMMAND3.ENABLED=.T. THISFORM.COMM
36、AND4.ENABLED=.T. THISFORM.COMMAND5.ENABLED=.T. THISFORM.COMMAND6.ENABLED=.T. THISFORM.COMMAND7.ENABLED=.T. THISFORM.COMMAND8.ENABLED=.T. THISFORM.COMMAND9.ENABLED=.T. THISFORM.COMMAND5.CAPTION=新增(A) &将按钮标题还原 THISFORM.COMMAND6.CAPTION=修改(M) THIS.CAPTION=退出(X) FOR i=1 TO 12 &将界面中文本框设为不可修改 M_I=ALLT(STR
37、(i) THISFORM.CD&M_I.ENABLED=.F. ENDFOR SELE 学生档案表 THISFORM.CD1.VALUE=班级代码 &将学生档案表中记录内容显示在界面中 SELE 班级表 LOCA FOR ALLT(班级代码)=SUBST(THISFORM.CD1.VALUE,1,8) &因为在学生档案表中没有相应班级名称字段,所以通过查找班级表显示对应班级名称 THISFORM.CD2.VALUE=班级名称 SELE 学生档案表 THISFORM.CD3.VALUE=姓名 THISFORM.CD4.VALUE=学号 THISFORM.CD5.VALUE=考号 THISFORM
38、.CD6.VALUE=民族 THISFORM.CD7.VALUE=性别 THISFORM.CD8.VALUE=出生日期 THISFORM.CD9.VALUE=电话 THISFORM.CD10.VALUE=邮编 THISFORM.CD11.VALUE=家庭住址 THISFORM.CD12.VALUE=备注 THISFORM.COMMAND5.SETFOCUSENDIF 功能:对学生档案进行输入,输出的操作。 3.2.2成绩录入按钮考试录入系统界面建立五个label,分别是:班级代码、班级名称、课程代码、课程名称、考号。然后建立六个按钮:成绩录入、成绩查询、按考号打印、按名词打印、不及格情况、退出
39、等按钮。最后建立一个编辑框,用来显示考号、姓名、成绩、名次。其代码如下:课程代码:SET SAFE OFFIF LEN(ALLT(THISFORM.CD1.VALUE)#0 &判断是否选择了班级代码 THISFORM.CD2.VALUE=班级表.班级名称 &如果选择了班级代码,在CD2中显示对应的班级名称 THISFORM.CD1.ENABLED=.F. &CD1置为不可用,将其他置为可用 THISFORM.CD3.ENABLED=.T. THISFORM.CD3.CLEAR &清除CD3内容 SELE 课程安排表.课程代码,课程表.课程名称 FROM 课程安排表 LEFT OUTER JOI
40、N 课程表 ; &生成临时表KCDBF,存放当前班级的课程安排情况 ON ALLT(课程安排表.课程代码)=ALLT(课程表.课程代码) ; WHERE ALLT(课程安排表.班级代码)=ALLT(THISFORM.CD1.VALUE) INTO TABLE TMPKCDBF SELE 临时课程表 ZAP APPE FROM TMPKCDBF SELE KCDBF IF RECC()=0 =MESSAGEBOX(该班级还未设置考试科目!,0+48,提示) ENDIF USEELSE WAIT WINDOW 请选择班级! NOWAIT RETURN 0ENDIF成绩录入:SET SAFE OFFTHISFORM.CD3.ENABLED=.F.IF LEN(ALLT(THISFORM.CD1.VALUE)#0 AND LEN(ALLT(THISFORM.CD3.VALUE)#0 &如果此前已录入或修改过考试成绩,则将新成绩保存到成绩表中。 LCMSG=正在保存数据. WAIT WINDOW LCMSG NOCLEAR NOWAIT AT SROW()/2,(SCOLS()-LEN(LCMSG)/2 SELE 成绩表 DELE FOR SUBST(考号,1,8)=ALLT(T