![[工学]数据库课程设计_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/23419908-cea8-4d62-963a-bd2b4990f079/23419908-cea8-4d62-963a-bd2b4990f0791.gif)
![[工学]数据库课程设计_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/23419908-cea8-4d62-963a-bd2b4990f079/23419908-cea8-4d62-963a-bd2b4990f0792.gif)
![[工学]数据库课程设计_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/23419908-cea8-4d62-963a-bd2b4990f079/23419908-cea8-4d62-963a-bd2b4990f0793.gif)
![[工学]数据库课程设计_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/23419908-cea8-4d62-963a-bd2b4990f079/23419908-cea8-4d62-963a-bd2b4990f0794.gif)
![[工学]数据库课程设计_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/23419908-cea8-4d62-963a-bd2b4990f079/23419908-cea8-4d62-963a-bd2b4990f0795.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. 第一章:摘要随着时光的流逝,人类社会悄然已经进入21世纪。21世纪是知识经济时代,是信息技术时代,是数字化时代。近年来,随着学校的办学规模越来越大,在校学生数也日益增多,随之而来的是教务管理工作日趋复杂繁重,要耗费大量人力、物力,已愈来愈成为学校日常管理工作的一个瓶颈。学生成绩管理是教务、教学管理中一个重要组成部分,也是比较烦琐的工作。每次考试都需要大量的人力、物力,为了减轻中学生成绩管理工作量和实现现代化的科学管理,设计一个学生成绩管理系统是行之有效的.设计的主要步骤如下: (第二章)需求分析。(第三章)数据库概念结构设计。(第四章)数据库逻辑结构设计。(第五章)数据流图及程序结构框图。
2、(第六章)程序原代码及其说明。(第七章)总结。 关键词:知识经济 信息技术 学生管理 成绩管理信息化 软件第2章 :需求分析 一:功能需求:“学生成绩管理系统”包括以下六个模块:登入系统,学生基本情况,学生信息查询,学生成绩管理,删除数据,系统功能。这六个模块既相互联系又相互独立。(1) 登入系统:主要用于显示学生登入界面,提示用户输入用户名和密码进入学生管理系统界面。若用户名不存在或者密码不正确提示操作错误,重新输入。 (2) 学生基本情况:主要用于实现学生基本情况的录入、修改、删除等基本操作。在界面中输入学生基本信息中的学号或者其他信息查询后进行以下操作。录入:可以在系统里新增加一条学生的
3、基本情况信息。修改:可以即使更正由于变故的学生的基本信息并存入系统。删除:可以选择性的删除用户选定的学生的基本信息中的一条或者多条。(3)学生信息查询:对学生基本信息提供灵活的查询方式。比如在界面中输入学号查询该学生的基本信息。也可以在界面中输入班级,查询该班所有学生的基本信息。能实现分类查询学生基本信息和成绩的功能。比如按专业输出学生的情况和信息,比如按年级输出学生的基本情况个成绩。(4)学生成绩管理:主要功能用来对学校学生的成绩进行录入、修改、删除等基本操作。具体包括中学生成绩录入、修改、增加、删除、查询,打印等功能。成绩录入需要分专业、分年级以及各门功课的成绩。修改要与成绩录入相对应。增
4、加、删除是对基本表的操作。打印操作可以由Word文档或Excel表格输入,在此模块中增加了导入、导出数据功能。查询条件设置应该齐全且灵活方便,可以专业查询,年级查询,也可以姓名查询,学号查询等等。成绩可以打印、也可以以报表形式阅览等。 (5)删除数据:可以把曾经在校学习但现已毕业的学生的基本信息和所以科目的成绩记录均删除。比如在界面中输入该学生的学号或者姓名,就可以输出该学生的所有数据,然后删除。删除时提示是否确实要删除该学生的所有记录。 (6)系统功能:包括帮助信息,关于系统及退出系统。当用户对此学生管理系统表示疑惑时可以点击帮助查询到系统的有关说明。关于系统是系统设计者和设计时间等的介绍。
5、退出系统用于关闭整个学生管理系统。 二:数据需求密码表(dl): 字 段 名 称 数 据 类 型 可 否 为 空 用户名 文本 Not null 密码 文本 Not null 学生信息表(student): 字 段 名 称 数 据 类 型 可 否 为 空 学号 文本 Not null 姓名 文本 null 性别 文本 null 出生日期 文本 null 班号 文本 null 专业 文本 null 年级 文本 null 班级信息表(class): 字 段 名 称 数 据 类 型 可 否 为 空 班号 文本 Not null 年级 文本 null 班主任 文本 null 教室 文本 null 课程
6、信息表(cource): 字 段 名 称 数 据 类 型 可 否 为 空 课程编号 文本 Not null 课程名称 文本 null 课程类型 文本 null 课程描述 文本 null 成绩信息表(sc): 字 段 名 称 数 据 类 型 可 否 为 空 学号 文本 Not null 课程号 文本 null 成绩 文本 Not null 年级课程设置表(courceset): 字 段 名 称 数 据 类 型 可 否 为 空 年级 文本 Not null 课程名称 文本 Not null 三:数据流程需求:学籍 学管理 学生情况 生 查询 教条处部门 成 学生 绩 教师 学生成绩 管 教师 理
7、统计 系 统 学生成绩管理系统数据流程图 用户输入系统 系统用户学生班级班级输出学生管理流程图: 用户输入系统班主任用户学生信息信息输出学生信息管理流程图: 用户输入系统 教师用户学生课程输出课程管理流程图:成绩管理流程图: 用户输入系统 教师用户学生成绩教师输出数据存储分析:实体联系图1、数据模型设计。首先做出学生成绩管理系统的E-R图,分析这个问题的实体,从系统分析可以知道,学生成绩是由任课教师按照课程给出的,学生、课程、成绩组成了这个系统的三个实体。2、再分析三个之间的联系。首先,这三个实体不是一个统一体,学生成绩与教师没有内在联系,教师必须通过课程实体才能建立联系,因而先不考虑。课程与
8、学生这两个实体是多对多联系,一位学生要学习多门课程,一门课程有多位学生共同学习。而学习成绩是这两个实体是“学习”边。因为成绩既不是学生独有的,也不是课程独有的;“学生甲70分”或“或英语70分”是不完全的,说“学生甲英语70分”才是正确的,因为70分是甲学生和英语课二者共有的。这个E-R图成下图。学生学习课程成绩 学生与课程的E-R图教师与课程这两个实体之间,是一对多联系;一位教师可以教多门课程,而一门课题对于学生来说只能有一位教师是E-R图,如下所示: 教师教学课程四:运行环境分析 (1)运行设备微机 CPU:1.0G,硬盘:40G,内存:256M,显示器 17。能够打印A4纸大小的打印机。
9、(2)支持软件。1) 开发工具及运行环境:后台数据库工具我们采用Visual FoxPro6.0自带数据库,前台则采用Visual FoxPro6.0作为开发工具,系统运行环境为Windows 98及以上的Windows操作系统平台。2) 开发平台:操作系统 Windows xp.3) 开发工具:Visual FoxPro6.0。4) 数据库:Visual FoxPro6.0(3)接口。软件能够在Windows xp以上的平台上运行。Visual FoxPro6.0数据库与Visual FoxPro6.0前台的连接由Visual FoxPro6.0自身完成。第3章 :数据库概念结构设计 一:概
10、念设计分析: 在需求分析阶段数据库设计人员充分调查并描述了用户的应用需求,但这些应用需求还是现实世界的具体要求,下面,应该首先把他们抽象为信息世界的结构,才能更好的、更准确地用某一个DBMS实现用户的这些要求。概念结构独立于数据库逻辑结构,也独立于支持数据库的DBMS。它是现实世界与机器世界的中介,它一方面能够充分反映现实世界,包括实体和实体之间的联系,同时又易于向关系、网状、层次等各种数据模型转换。它是现实世界的一个真实模型,易于理解,便于和不同属性计算机的用户交换意见,使用户易于参与,当现实世界需求改变时,概念结构又可以很容易的相应调整。 1.将现实世界中一组具有某些共同特性和行为的对象可
11、以抽象为一个实体。在本系统中,可以把学校中所有的学生抽象为学生实体。对象和实体之间是“is member of”的关系。2.对象类型的组成成分可以抽象为实体的属性。在本系统中,把学号、姓名、年级、专业等可以抽象为学生实体的属性。组成成分与对象类型之间是“is part of”的关系。3.实际上实体与属性是想对应而言的,很难有截然划分的界限,同一事物,在一种应用环境作为“属性”,在另一种环境中就必须作为“实体”。在本系统中,学校里的班级、年级是“学生”实体中的属性。表明学生属于哪个班级或年级,但在另一种环境中,由于需要考虑班级号、班主任、年级号、年级主任等,这时,它们就需要作为实体了。(二)ER
12、图设计:四份E-R图:学生、班级、成绩、年级成绩管理E-R图:四份关系E-R图片:学生和课程信息间的关系(E/R模型)老师和课程之间的关系(E/R模型)班级和学生之间的关系(E/R模型)(三).顶层数据流图设计:第4章 :数据库逻辑结构设计 为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型。设计逻辑结构应该选择最施用于描述与表达相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,综合考虑性能、价格等各种因素,从而选出最合适的DBMS。设计逻辑结构时一般要分三步进行:*将概念经过转化为一般的关系、网状、层次模型;*将转化来的关系、网状、层次模型向特
13、定DBMS支持下的数据模型转换;*对数据模型进行优化。一:功能分析:功能层次图学生成绩管理系统用户登录系统管理班级管理信息管理打印报表课程管理成绩管理基本课程设置按班查询成绩学生缴费浏览班级课程设置学生年级查询成绩生成费添加学生成绩查询基本学费设置学生成绩打印学生成绩生缴费查询修改密码添加班级信息添加览添加用户复新登录班级浏览班级查询信息删除删除天加添加信息查询二。数据库的建立:根据以上的实体图即可在数据库中建立表格,为了系统的安全,有必要建立一个登录窗体,所以在数据库中还应建立一个密码表.数据库(学生信息管理系统)包括以下几个表格. 1。用户表:字段名类型宽度小数位数索引NULL用户名字符型
14、10普通索引密码字符型20类型数值型102。学生基本信息表:字段名类型宽度小数位数索引NULL学号字符型10普通索引姓名字符型10性别字符型2出生日期日期型8专业字符型20年级字符型63。课程表:字段名类型宽度小数位数索引NULL课程号字符型6普通索引课程名字符型20类型字符型10学时数值型30备注备注型44。成绩表:字段名类型宽度小数位数索引NULL学号字符型10普通索引课程号字符型20成绩字符型10三。项目的建立:打开文件-新建-项目四:表单的建立五。建立报表和标签:六:自由表的建立:七:主程序的建立:八:所有有关数据设计:第五章:数据流图及程序结构框图 一。数据流程分析: 学生成绩管理模
15、块: 学籍管理部门教师学生成绩管理系统教务处学生教师教师学生情况学生成绩查询统计分析 学生成绩管理系统0层数据 学生成绩管理系统1层数据流程图管理部门教务处教师1.0学生管理2.0课程管理3.0成绩管理4.0统计分析D1D2D3查询者管理者 教师与课程的E-R图组合到一起,得到最后的E-R图,有了E-R图,就可以设计数据库。下图为数据模型图。学生课程教师学习学习课程学生教师实体模型数据模型数据库学习lnmm接受数据处理中心班级管理信息管理年级管理课程管理成绩管理打印报表系统操作流程:二。程序详细设计框图:2。主界面:3。成绩录入界面:4。:成绩分析界面:5。系统维护界面:6。帮助说明界面:7。
16、退出系统界面:第6章 :程序原代码及其说明主程序:SET TALK OFFSET ECHO OFFSET DOHISTORY OFFSET EXACT ONSET DELETE ONSET DATE TO ANSI LONGSET EXCL OFFCLOSE DATABASESET SYSMENU AUTOSET SYSMENU TOSET SYSMENU OFFSET STATUS OFFSET STATUS BAR OFFSET SAFE OFFSET CENT ON _SCREEN.VISIBLE=.F.*_SCREEN.WINDOWSTATE=2*_SCREEN.PICTURE=&qu
17、ot;PICTUREBACKGROUND.BMP"*_SCREEN.ICON="PICTUERNetwork Neighbourhood.ico"*cCaption="学生档案管理信息系统 程序: 寇宏伟"*DECLARE INTEGER FindWindow IN win32api STRING cClass,STRING cCaption*IF FindWindow(0,cCaption)#0*_SCREEN.CAPTION=cCaption*=MESSAGEBOX("程序已经运行,请注意任务栏!",16,"程
18、序:AYongSoft _ ")*QUIT*RETURN .F.*ENDIF*_SCREEN.CAPTION=cCaptionDO FORM 身份验证READ EVENTS一:班级维护表单的程序代码:1.新增按钮:click事件代码:IF THIS.CAPTION="新增(<A)" &&假如现在要新增班级记录 THISFORM.CD1.VALUE="" THISFORM.CD2.VALUE="" THISFORM.CD1.ENABLED=.T. THISFORM.CD2.ENABLED=.T. THIS
19、FORM.COMMAND1.CAPTION="保存(<S)" &&更改换钮标题 THISFORM.COMMAND6.CAPTION="放弃(<I)" THISFORM.COMMAND2.ENABLED=.F. &&在新增记录时禁止其他按钮可用 THISFORM.COMMAND3.ENABLED=.F. THISFORM.COMMAND4.ENABLED=.F. THISFORM.COMMAND5.ENABLED=.F. THISFORM.CD1.SETFOCUS &&让CD1获得焦点ELSE I
20、F LEN(ALLT(THISFORM.CD1.VALUE)#8 &&判断班级代码输入的规范性 =MESSAGEBOX("班级代码应为8位数字!",0+48,"提示") THISFORM.CD1.SETFOCUS RETURN ENDIF IF LEN(ALLT(THISFORM.CD2.VALUE)=0 &&限制班级名称必须要录入 =MESSAGEBOX("班级名称必须要录入!",0+48,"提示") THISFORM.CD2.SETFOCUS RETURN ENDIF SELE
21、班级表 THISFORM.COMMAND1.CAPTION="新增(<A)" &&恢复按钮原先标题 THISFORM.COMMAND6.CAPTION="退出(<X)"ENDIFTHISFORM.REFRESH2.修改按钮:click事件代码:IF THIS.CAPTION="修改(<M)" THIS.CAPTION="保存(<S)" THISFORM.COMMAND6.CAPTION="放弃(<I)" THISFORM.COMMAND1.ENABL
22、ED=.F. THISFORM.COMMAND3.ENABLED=.F. THISFORM.COMMAND4.ENABLED=.F. THISFORM.COMMAND5.ENABLED=.F. THISFORM.CD1.ENABLED=.T. THISFORM.CD2.ENABLED=.T. THISFORM.CD1.SETFOCUSELSE IF LEN(ALLT(THISFORM.CD1.VALUE)#8 &&判断班级代码输入的规范性 =MESSAGEBOX("班级代码应为8位数字!",0+48,"提示") THISFORM.CD1.
23、SETFOCUS RETURN ENDIF IF LEN(ALLT(THISFORM.CD2.VALUE)=0 &&限制班级名称必须要录入 =MESSAGEBOX("班级名称必须要录入!",0+48,"提示") THISFORM.CD2.SETFOCUS RETURN ENDIF SELE 班级表 M_JLH=RECN() LOCA FOR (ALLT(班级代码)=ALLT(THISFORM.CD1.VALUE) OR ALLT(班级名称)=ALLT(THISFORM.CD2.VALUE) AND RECN()#M_JLH &&a
24、mp;检查是否有同班级代码或同班级名称的记录 IF !EOF() &&如果发现,提示用户 =MESSAGEBOX("发现同班级代码或班级名称记录,请检查!",0+48,"提示") THISFORM.CD1.SETFOCUS RETURN ENDIF IF RECC()<M_JLH &&因为没找到对应记录后,指针已指向库尾,现要将指针指向原记录.判断的标准是:如果记录数比记录号还小,则指针指向尾记录,否则指向原记录号 GO BOTTOM ELSE GO M_JLH ENDIF REPL 班级代码 WITH THISFO
25、RM.CD1.VALUE,班级名称 WITH ALLT(THISFORM.CD2.VALUE) &&如果没发现同代码或同班名的记录,则在班级表修改当前记录 THISFORM.CD1.ENABLED=.F. THISFORM.CD2.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND3.ENABLED=.T. THISFORM.COMMAND4.ENABLED=.T. THISFORM.COMMAND5.ENABLED=.T. THISFORM.COMMAND2.CAPTION="修改(<M)&qu
26、ot; &&恢复按钮原先标题 THISFORM.COMMAND6.CAPTION="退出(<X)" ENDIFTHISFORM.REFRESH 3.删除按钮:click事件*=MESSAGEBOX("暂不能用!",0+48,"提示")set delete ondeleteThisform.refresh4。查询按钮:click事件M_FLAG=.T.THISFORM.CD1.VALUE=""THISFORM.CD2.VALUE=""THISFORM.CD1.ENABLED=
27、.T.THISFORM.CD1.SETFOCUSTHISFORM.REFRESH5.打印按钮:click事件SET SAFE OFFSELE * FROM 班级表 ORDER BY 班级代码 INTO TABLE TMPBJBLABEL FORM REPORT班级标签 TO PRINT PROMPT PREVSELE BJBUSE6.退出按钮:click事件IF THISFORM.COMMAND6.CAPTION="退出(<X)" ENDIF二。成绩管理表单的程序代码:1。显示名次:IF THISFORM.COMMAND1.CAPTION="显示名次(<
28、;T)" THISFORM.COMMAND1.CAPTION="隐藏名次(<H)"IF LEN(ALLT(THISFORM.CD1.VALUE)#0 LCMSG="正在生成数据,请稍候." WAIT WINDOW LCMSG NOCLEAR NOWAIT AT SROW()/2,(SCOLS()-LEN(LCMSG)/2 SELE * FROM 成绩表 WHERE ALLT(成绩表.课程代码)="*" INTO TABLE TMPLS1 SELE LSCJB.*,LS1.成绩 AS 总成绩,LS1.成绩 AS 名次 F
29、ROM LSCJB LEFT OUTER JOIN LS1 ; ON LSCJB.考号=LS1.考号 INTO TABLE TMPLS2 &&目的是在LS2表中加上总成绩和名次两个字段 REPL ALL 总成绩 WITH 0,名次 WITH 0 &&将所有NULL值记录赋值0 SELE LS1 USE SELE LS2 M_ZDS=FCOUNT() &&记录字段数 SCAN M_SUM=0 &&M_SUM用于存放当前学生考试成绩之和 FOR i=3 TO M_ZDS-2 M_Field=Field(i) M_SUM=M_SUM+&
30、amp;M_Field ENDFOR REPL 总成绩 WITH M_SUM ENDSCAN SELE * FROM LS2 ORDER BY 总成绩 DESC INTO TABLE TMPLS3 SELE LS2 USE SELE LS3 REPL ALL 名次 WITH RECN() M_MC=1 M_CJ=总成绩 SCAN IF 总成绩=M_CJ REPL 名次 WITH M_MC ELSE M_MC=名次 M_CJ=总成绩 REPL 名次 WITH M_MC ENDIF ENDSCAN THISFORM.GRID1.RECORDSOURCE="LS3" SELE L
31、SCJB USE SELE * FROM LS3 ORDER BY 名次 INTO TABLE TMPLSCJB SELE LS3 ENDIFELSE THISFORM.CD1.VALID ENDIFTHISFORM.REFRESH 2。退出:RELE THISFORM三。成绩录入表单中的代码:1。成绩录入:SET SAFE OFFTHISFORM.CD3.ENABLED=.F.IF LEN(ALLT(THISFORM.CD1.VALUE)#0 AND LEN(ALLT(THISFORM.CD3.VALUE)#0 &&如果此前已录入或修改过考试成绩,则将新成绩保存到成绩表中。
32、LCMSG="正在保存数据." WAIT WINDOW LCMSG NOCLEAR NOWAIT AT SROW()/2,(SCOLS()-LEN(LCMSG)/2 SELE 成绩表 DELE FOR SUBST(考号,1,8)=ALLT(THISFORM.CD1.VALUE) AND ALLT(课程代码)=ALLT(THISFORM.CD3.VALUE) PACK SELE 临时成绩表 SCAN M_KH=ALLT(考号) M_KCDM=ALLT(THISFORM.CD3.VALUE) M_CJ=成绩 SELE 成绩表 APPE BLANK REPL 考号 WITH M_
33、KH,课程代码 WITH M_KCDM,成绩 WITH M_CJ SELE 临时成绩表 ENDSCAN WAIT CLEAENDIFTHISFORM.GRID1.RECORDSOURCE="课程表" &&置空GRID1,并将界面中各控件赋初值SELE 临时成绩表ZAPGO TOPTHISFORM.GRID1.COLUMNCOUNT=3THISFORM.GRID1.RECORDSOURCE="临时成绩表"THISFORM.GRID1.COLUMN1.CONTROLSOURCE="临时成绩表.考号"THISFORM.GRI
34、D1.COLUMN2.CONTROLSOURCE="临时成绩表.姓名"THISFORM.GRID1.COLUMN3.CONTROLSOURCE="临时成绩表.成绩"THISFORM.CD1.VALUE=''THISFORM.CD2.VALUE=''THISFORM.CD3.VALUE=''THISFORM.CD4.VALUE=''THISFORM.LBL1.CAPTION=""THISFORM.CD1.ENABLED=.T.THISFORM.CD1.SETFOCUSTHI
35、SFORM.REFRESH2。成绩查询:THISFORM.LBL.VISIBLE=.T.THISFORM.CD5.VISIBLE=.T.THISFORM.CD5.VALUE=""THISFORM.CD5.SETFOCUSTHISFORM.REFRESH3。按考号查询: LEN(ALLT(THISFORM.CD5.VALUE)#0 &&如果输入了查询条件,则系统进行查找 SELE 临时成绩表 LOCA FOR ALLT(考号)=ALLT(THISFORM.CD5.VALUE) &&在临时成绩表中查找对应考号的记录 IF EOF() =MESSA
36、GEBOX("没发现您要查找的内容!",0+48,"系统提示") GO TOP ENDIFENDIFTHISFORM.LBL.VISIBLE=.F. &&查询后让LBL和CD5不可见.THISFORM.CD5.VISIBLE=.F.THISFORM.GRID1.SETFOCUSTHISFORM.REFRESH5。按名次打印:SET SAFE OFFSELE * FROM 临时成绩表 ORDER BY 成绩 DESC INTO TABLE TMPLSB &&将成绩按从高到低顺序导出到临时表LSB中.SELE LSBREPL
37、ALL 名次 WITH RECN()GO TOPM_MC=1M_CJ=成绩SCAN IF 成绩=M_CJ REPL 名次 WITH M_MC ELSE M_MC=名次 M_CJ=成绩 REPL 名次 WITH M_MC ENDIFENDSCANM_Tittle=ALLT(THISFORM.CD2.VALUE)+ALLT(THISFORM.CD4.VALUE)+"考试成绩表" &&设置报表标题LABEL FORM REPORT成绩标签2 TO PRINTER PROMPT PREVUSE6。退出:SET SAFE OFF &&退出本模块前先提交
38、数据THISFORM.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(THISFORM.CD1.VALUE) AND ALLT(课程代码)=
39、ALLT(THISFORM.CD3.VALUE) PACK SELE 临时成绩表 SCAN M_KH=ALLT(考号) M_KCDM=ALLT(THISFORM.CD3.VALUE) M_CJ=成绩 SELE 成绩表 APPE BLANK REPL 考号 WITH M_KH,课程代码 WITH M_KCDM,成绩 WITH M_CJ SELE 临时成绩表 ENDSCAN WAIT CLEAENDIFRELE THISFORM*DO FORM 主界面四:关于表单中的程序代码:1。系统信息:SET SAFE OFF &&退出本模块前先提交数据THISFORM.CD3.ENABLED
40、=.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(THISFORM.CD1.VALUE) AND ALLT(课程代码)=ALLT(THISFORM.CD3.VALU
41、E) PACK SELE 临时成绩表 SCAN M_KH=ALLT(考号) M_KCDM=ALLT(THISFORM.CD3.VALUE) M_CJ=成绩 SELE 成绩表 APPE BLANK REPL 考号 WITH M_KH,课程代码 WITH M_KCDM,成绩 WITH M_CJ SELE 临时成绩表 ENDSCAN WAIT CLEAENDIFRELE THISFORM*DO FORM 主界面2。退出:RELE THISFORM*DO FORM 主界面五:课程安排表单中的程序代码:1。IF LEN(ALLT(THISFORM.CD1.VALUE)=0 RETURNENDIFM_KC
42、MC=THISFORM.CD3.VALUE &&设置变量内容为未选课程SELE 课程表LOCA FOR ALLT(课程名称)=M_KCMC &&查找正选的课程对应课程代码M_KCDM=ALLT(课程代码)SELE 课程安排表 &&在课程安排表中新增一条记录内容为所选课程APPE BLANKREPL 班级代码 WITH THISFORM.CD1.VALUE,课程代码 WITH M_KCDMDELE FOR ALLT(课程代码)=""PACKTHISFORM.CD1.CLICK &&重新执行CD1的CLICK事件,
43、重新刷新窗体显示内容。RELE M_KCMC,M_KCDM &&释放变量THISFORM.REFRESH2。IF LEN(ALLT(THISFORM.CD1.VALUE)=0 RETURNENDIFM_KCMC=THISFORM.CD4.VALUE &&设置变量内容为所选课程SELE 课程表LOCA FOR ALLT(课程名称)=M_KCMC &&查找正选的课程对应课程代码M_KCDM=ALLT(课程代码)SELE 课程安排表 &&在课程安排表中新增一条记录内容为所选课程DELE FOR ALLT(班级代码)=THISFORM.C
44、D1.VALUE AND ALLT(课程代码)=M_KCDMDELE FOR ALLT(课程代码)=""PACKTHISFORM.CD1.CLICK &&重新执行CD1的CLICK事件,重新刷新窗体显示内容。RELE M_KCMC,M_KCDM &&释放变量THISFORM.REFRESH六。课程维护表单中的程序代码:1。新赠:IF LEN(ALLT(THISFORM.CD1.VALUE)=0 RETURNENDIFM_KCMC=THISFORM.CD4.VALUE &&设置变量内容为所选课程SELE 课程表LOCA FOR
45、ALLT(课程名称)=M_KCMC &&查找正选的课程对应课程代码M_KCDM=ALLT(课程代码)SELE 课程安排表 &&在课程安排表中新增一条记录内容为所选课程DELE FOR ALLT(班级代码)=THISFORM.CD1.VALUE AND ALLT(课程代码)=M_KCDMDELE FOR ALLT(课程代码)=""PACKTHISFORM.CD1.CLICK &&重新执行CD1的CLICK事件,重新刷新窗体显示内容。RELE M_KCMC,M_KCDM &&释放变量THISFORM.REFRESH
46、2。修改IF LEN(ALLT(THISFORM.CD1.VALUE)=0 RETURNENDIFM_KCMC=THISFORM.CD4.VALUE &&设置变量内容为所选课程SELE 课程表LOCA FOR ALLT(课程名称)=M_KCMC &&查找正选的课程对应课程代码M_KCDM=ALLT(课程代码)SELE 课程安排表 &&在课程安排表中新增一条记录内容为所选课程DELE FOR ALLT(班级代码)=THISFORM.CD1.VALUE AND ALLT(课程代码)=M_KCDMDELE FOR ALLT(课程代码)="&q
47、uot;PACKTHISFORM.CD1.CLICK &&重新执行CD1的CLICK事件,重新刷新窗体显示内容。RELE M_KCMC,M_KCDM &&释放变量THISFORM.REFRESH3。删除:=MESSAGEBOX("暂不能用!",0+48,"提示")4。查询:M_FLAG=.T.THISFORM.CD1.VALUE=""THISFORM.CD2.VALUE=""THISFORM.CD1.ENABLED=.T.THISFORM.CD1.SETFOCUSTHISFORM.R
48、EFRESH5。退出:IF THISFORM.COMMAND6.CAPTION="退出(<X)" SELE 课程表 USE RELE M_FLAG RELE THISFORM * DO FORM 主界面ELSE SELE 课程表 THISFORM.CD1.VALUE=课程代码 THISFORM.CD2.VALUE=课程名称 THISFORM.COMMAND1.CAPTION="新增(<A)" THISFORM.COMMAND2.CAPTION="修改(<M)" THISFORM.COMMAND6.CAPTION=&q
49、uot;退出(<X)" THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.T. THISFORM.COMMAND3.ENABLED=.T. THISFORM.COMMAND4.ENABLED=.T. THISFORM.COMMAND5.ENABLED=.T. THISFORM.CD1.ENABLED=.F. THISFORM.CD2.ENABLED=.F.ENDIF七:身份验证表单中的程序代码:登入:IF THISFORM.COMMAND6.CAPTION="退出(<X)" SELE 课程
50、表 USE RELE M_FLAG RELE THISFORM * DO FORM 主界面ELSE SELE 课程表 THISFORM.CD1.VALUE=课程代码 THISFORM.CD2.VALUE=课程名称 THISFORM.COMMAND1.CAPTION="新增(<A)" THISFORM.COMMAND2.CAPTION="修改(<M)" THISFORM.COMMAND6.CAPTION="退出(<X)" THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.T. THISFORM.COMMAND3.ENABLED=.T. THISFORM.COMMAND4.ENABLED=.T. THISFORM.COMMAND5.ENABLED=.T. THISFORM.CD1.ENABLED=.F. THISFORM.CD2.ENABLED=.F.ENDIF退出:RELE THISFORMQUIT八:系统维护表单中的程序代码:选择:DO CASE CASE THISFORM.OPTIONGROUP1.VALUE=1 RELE THISFORM DO FORM 系统初始 CASE THISF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深入理解的审计知识试题及答案
- 2025年中级会计实务重点试题及答案
- 成功通过中级会计的试题及答案
- 2024逆向財務分析的方法試题及答案
- 会计职业发展中的多元化路线选择研究试题及答案
- 消防演练与实际救援能力提升的结合研究试题及答案
- 五年级数学(小数乘法)计算题专项练习及答案
- 企业破产清算的会计处理原则试题及答案
- 全面攻克2025年入团考试试题及答案
- 不良事件管理在医疗领域的重要性
- 2025年入团考试必考题目试题及答案
- 动物生理学题库及答案(附解析)
- 2025年全国保密教育线上培训考试试题库带答案(典型题)含答案详解
- 《疫苗的重要性》课件
- 优雅女生班会课件
- 建筑工人安全教育新模式试题及答案
- 驾驶员心理素质与行车安全的关系
- TTJSFB 002-2024 绿色融资租赁项目评价指南
- -绿化安全技术交底
- 支局一点一策PPT通用课件
- 国防科大暗室屏蔽部分标书
评论
0/150
提交评论