学生成绩档案管理系统.doc_第1页
学生成绩档案管理系统.doc_第2页
学生成绩档案管理系统.doc_第3页
学生成绩档案管理系统.doc_第4页
学生成绩档案管理系统.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息工程学院毕 业 论 文论文题目:学生成绩档案管理系统姓 名:曹斌学 号:2008171101班 级: 08级教育技术本科班指导教师:马月进 讲师2012年5月学生成绩档案管理系统曹斌,马月进(陇东学院 信息工程学院 甘肃 庆阳 745000)摘要:高校学生成绩管理是学生学籍管理的一方面,用户在成绩管理过程中,涉及的信息(如学生基本情况、学生所在专业班级的课程设置情况及各课程任课教师情况等),其来源分别依赖于不同的管理岗位。系统开发任务主要包括数据库的设计与维护、界面设计等两个方面。对于前者要求建立起数据库具有完整性和一致性,且具有一定的数据的安全性,如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。关键词:成绩管理;学籍分配;学生简历;学生成绩;数据库设计;界面设计Student achievement records management systemCao Bin, Ma yuejin(Longdong College of Information Engineering Qingyang 745000)Abstract: The performance management of the college students is the Student Management on the one hand, in the performance management process, involving information (such as the students the basic situation of the students where the curriculum of the professional classes the situation and the course Instructor, etc.) and originating depends on the different management positions. System development tasks mainly include two aspects of database design and maintenance, and interface design. The former requires to establish a database integrity and consistency, with a certain degree of data security such as user password to use, while for the latter requires the program interface is friendly and fully functional.Keywords: performance management; enrollment distribution; student resume; student achievement; database design; interface design引言 高校学生成绩管理是学籍管理的重要组成部分。在成绩管理过程中涉及的信息种类繁多,数量庞大。例如,每一学生来自什么系别,不同学期各门课程成绩如何,以及各科任课教师是谁都是成绩档案管理过程中必须记录和使用的信息。随着高校规模的不断扩大,成绩管理档案的信息量成倍增长,相应的成绩计算整理、日常维护和查询任务量也越来越大。因此建立一套完善的成绩档案信息的存储、快速整理与检索系统非常必要。Visual FoxPro 数据库管理系统在开发中、小型数据库应用系统方面由于对计算机软、硬件的要求不高,且功能强大,深受系统设计人员的欢迎。本案例将结合高校学生成绩档案管理的实际,开发出一套相对完善的学生成绩档案管理系统。1 用户需求分析1.1 用户调查经调查在成绩档案管理过程中,管理人员的工作是从两个方面入手的。第一是收集和建立学生基本情况信息,如学生的系别和专业,以及学生的自然条件、政治面貌等信息。其次是收集和建立学生的成绩信息,即分别对每个学生不同学期各门课程的成绩进行记载和整理。成绩档案管理是以每个学生为基本单位进行管理的,即成绩的建立、整理和查询可以具体到每一个学生。在学生成绩档案管理过程中,信息的建立和维护是交替进行的,如新生信息录入和毕业生信息清除。另外,每学期的课程成绩录入以后也不是一成不变的,如重修或补考后的成绩更改等。学生成绩管理过程中更大的任务则是根据不同需要对学生成绩进行快速查询并形成各种报表。如学籍成绩、奖学金评定、就业推荐、课程教学评估等都是对学生成绩档案管理工作的内容和任务赋予了具体的内涵。成绩信息维护学生信息维护学籍处理、学生评定、就业推荐等工作准备阶段系别设置情况课程设置情况学生成绩登记学生注册情况简历查询与维护成绩查询与维护图1 学生成绩档案管理工作流程图成绩档案管理除了在内容上有具体要求外,在管理程序和管理制度上也有严格的要求,如成绩登录和日常管理一般应由专人负责。1.2 构造系统的逻辑模型经过详细调查,我们已经掌握了学生成绩管理的现行工作流程,接下来需要给出系统的逻辑模型。构造系统逻辑模型的工具是数据流程图和数据字典。学生成绩档案管理系统数据流程图(如图2).成绩管理员学生及课程信息成绩管理员学籍处理成绩整理成绩录入图2 学生成绩档案管理系统数据流程图学生成绩档案管理系统的数据流程图确定以后,还有许多具体的信息,如学生注册信息、系别设置信息、课程设置信息、成绩信息等需要进一步描述,即建立数据字典。表1列出了成绩档案管理系统的主要数据字典表格。从表1中可以看出在成绩档案管理过程中,数据信息大致分为两个方面,即学生注册信息和课程成绩信息。表1 学生成绩表学号:2008171101 姓名:曹斌 性别:男第一学年第二学年第一学期第二学期第三学期第四学期课程成绩课程成绩课程成绩课程成绩思修体育体育体育体育高数高数1.3 确定目标系统的功能经过以上详细的用户调查,在现行工作流程和数据分析的基础上,基本可以确定系统设计所必须达到的目标。学生成绩档案管理系统必须具备的功能如下:(1)基础档案的记录和维护功能 通过建立相应的数据文件,记录并保存基本的档案信息。建立的信息系统必须适应档案信息的动态变化特征,如学生信息的更替、成绩变动等。 (2)方便的分类检索功能成绩档案的存储不是目的,目的是为了查阅和应用。因此,在系统信息检索设计中,必须考虑用户的实际工作习惯。如学生查询主要考虑其本人各个学期各门课程的成绩如何,而教室教师查询则侧重考虑其本人所承担课程各个学生的成绩等。(3)报表整理功能在成绩档案管理中,成绩报表一般分两类,即以学生为描述对象的学生成绩单和以课程为描述对象的单科成绩单。(4)身份验证功能根据成绩档案管理的特点,系统设计必须考虑身份验证功能,防止与档案管理无关的人员对成绩档案进行修改或破坏。1.4 概念结构设计及数据分析1.4.1 数据库建模经过对现有管理模式的分析,可以提取出以下几个实体:系别,学生,课程,成绩等。现在把它们分别给出如图3、如图4、如图5、如图6所示。系别号学生学号性别姓名系别系别名称系别编号出生日期期 图3 系别实体图 图4 学生实体图 课程名称课程编号任课教师课程图 5 课程实体图课程编号学号分数成绩开课学期 图 6 成绩实体图1.4.2 关系描述的设计依据数据库的原理,并结合以上实体图,经过转换,可以导出各个关系。其转换规则为:首先每个实体应转换为一个关系,然后给出每个关系的关键字。系别:高校学生管理多以系别为单位进行。考虑到这种情况,在系统数据库中建立系别登记数据表,记载学校系别设置情况,在数据表中设置“系别编号”字段同记载学生名录的数据表关联。主要设计字段应包括“系别名称”和“系别编号”。学生:记载学生的基本自然属性和社会属性如姓名、性别、出生日期、政治面貌等。该数据表应设立两个关联字段即“系别号”和“学号”,通过“系别号”可以同系别名录数据表关联,反映学生的系别归属。通过学号同学生成绩表关联,反映学生的成绩状况。在“学号”字段上应设置主索引,避免出现相同的学号。成绩:记载学生不同学期的各门成绩,每条记录记载一门课程的成绩。该数据表应设立“学号”和“课程编号”两个关联字段。通过学号同学生记录数据表关联,通过课程编号同课程数据表进行关联。课程:记载各个系别所有专业对应学期所开设的课程及任课教师。该数据表的关联字段为“课程编号”,在该字段上建立主索引,避免出现相同的课程编号。该数据表同学生成绩数据表建立一对多关联。2 系统设计根据软件工程的基本原理,系统设计一般分为总体设计和详细设计。依据用户需求分析阶段的调查分析,已经十分清楚系统必须具备的功能,下面的工作就是这些功能如何实现的问题。总体设计主要工作有两个:一是通过该阶段的工作划分出组成系统的物理元素,即程序、文件、数据库、文档等;二是设计软件系统的结构,即确定系统的模块组成及各模块之间的关系。根据用户需求分析阶段的数据流程图,采用软件工程中软件设计的概念和原理,与用户充分协商后,本案例系统设计的模块规划如图7所示。主控界面学生名录打印成绩报表打印建立学生成绩信息学生成绩检索建立学生名录信息图 7 系统模块设计规划图2.1 数据库的设计该系统的所有数据分析已经完成。根据该阶段所建立的概念模型,已经得出满足第三范式的几个关系描述,下面就是把前一阶段的成果转化为具体的数据库。数据库设计分为逻辑设计和物理设计两个步骤。2.1.1 数据库的逻辑设计需求分析阶段已经给出了系统的概念模型即实体图,根据实体图即可进行数据库的逻辑设计。数据库的逻辑设计即把得到的满足第三范式的关系转化为特定的数据库管理系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。1) 成绩表:学号,课程编号,成绩,学分,学期。2) 学生表:系别号,学号,姓名,性别,出生日期,政治面貌,照片,简历,通讯地址,邮政编码,电话号码。3) 课程表:课程编号,课程名称,教师姓名。4) 系别表:系别名称,系别编号。5) 用户表:用户编号,用户姓名,用户密码。此表用于对操作员的设置。2.1.2 数据库的物理设计基于以上数据库的逻辑设计,本案例数据库拟建4个数据库表和1个自由表。数据表文件名称分别为cjb.dbf、xsjl.dbf、kcb.dbf、xbb.dbf和sysb.dbf。各数据结构如表2、表3、表4、表5和表6所示。表2 cjb.dbf结构表字段名称字段类型字段宽度小数点索引类型学号字符型6普通索引课程编号字符型4普通索引成绩字符型6学分数值型20学期字符型14表3 xsjl.dbf结构表字段名称字段类型字段宽度小数点索引类型系别号字符型2普通索引学号字符型6主索引姓名字符型8性别字符型2出生日期日期型8政治面貌字符型4照片通用型10简历备注型10通讯地址字符型40邮政编码字符型6电话号码字符型18表4 kcb.dbf结构表字段名称字段类型字段宽度小数点索引类型课程编号字符型4主索引课程名称字符型16教师姓名字符型8表5 xbb.dbf结构表字段名称字段类型字段宽度小数点索引类型系别号字符型2主索引系名字符型18表6 sysb.dbf结构表字段名称字段类型字段宽度小数点索引类型bh(操作员编号)字符型2xm(操作员姓名)字符型8ma(操作员密码)字符型6本案例系统数据库名称为xjgl.dbc,在数据库中除了创建的xsjl.dbf、cjb.dbf、kcb.dbf和xbb.dbf数据表外,另建立两个报表视图,“简历查询”和“成绩查询”,视图关联设置全部采用内连接方法,视图字段设置如图8和如图9所示。数据库结构及各表之间的关联设置如图10所示。图 8 “简历查询”视图设计图 9 “成绩查询”视图设计图 10 xjgl.dbc结构图2.2 详细设计依据软件工程的基本原理,详细设计阶段的根本任务是确定应该如何具体实现所要求的系统,即经过这个阶段的设计工作,得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成应用程序设计语言书写的程序。本系统采用Visual FoxPro 6.0作为开发工具。主程序流程图如图11所示。系统主程序权限认证主控界面学生成绩检索建立学生成绩信息建立学生名录信息成绩报表打印学生名录打印图11 系统主控程序的程序流程图3 系统的现实与调试本系统在实现时,将大多数过程放于表单中,主控程序及相关的自定义函数添加到项目工程中。3.1 建立学生基础档案编辑表单3.1.1 界面控件元素构成及主要属性设置学生基础档案编辑表单“frm_jbdajl”主要完成“xsjl.dbf”数据表的数据录入、修改和删除。本表单可以通过系统主菜单中“学生基础档案建立”和系统工具条中的按钮调出。表单界面控件元素构成,如图12所示。图 12 “frm_jbdajl”界面构成3.1.2 编写事件代码“首记录”Commandgroup1.Command1的单击Click事件:GO TOPThisform. Commandgroup1.Command2.Enabled=.F.Thisform. Commandgroup1.Command3.Enabled=.T.Thisform. Commandgroup1.Command4.Enabled=.T.Thisform. REFRESH & 刷新表单显示的信息“上一条”Commandgroup1.Command2的单击Click事件:IF BOF() This.Enabled=.F. Thisform. Commandgroup1.Command1.Enabled=.F. Thisform. Commandgroup1.Command3.Enabled=.T. Thisform. Commandgroup1.Command4.Enabled=.T.ELSE SKIP-1This.Enabled=.T.Thisform. Commandgroup1.Command1.Enabled=.T. Thisform. Commandgroup1.Command3.Enabled=.T. Thisform. Commandgroup1.Command4.Enabled=.T.ENDIFThisform.REFRESH & 刷新表单显示的信息“下一条”Commandgroup1.Command3的单击Click事件:SKIP 1IF EOF() This.Enabled=.F. Thisform. Commandgroup1.Command1.Enabled=.T. Thisform. Commandgroup1.Command2.Enabled=.T. Thisform. Commandgroup1.Command4.Enabled=.F.ELSE This.Enabled=.T. Thisform. Commandgroup1.Command1.Enabled=.T. Thisform. Commandgroup1.Command2.Enabled=.T. Thisform. Commandgroup1.Command4.Enabled=.T.ENDIFThisform.REFRESH & 刷新表单显示的信息“末记录”Commandgroup1.Command4的单击Click事件:GO BOTTOMThis.Enabled=.F. Thisform. Commandgroup1.Command1.Enabled=.T. Thisform. Commandgroup1.Command2.Enabled=.T. Thisform. Commandgroup1.Command3.Enabled=.F.Thisform.REFRESH & 刷新表单显示的信息“增 加”Commandgroup1.Command5的单击Click事件:APPEND BLANKThisform.REFRESH“删 除”Commandgroup1.Command6的单击Click事件: IF MESSAGEBOX(“确定删除这条记录吗?”,1+64+256,”警示”)=1 DELETEPACKThisform.REFRESH ENDIF“退 出”Commandgroup1.Command7的单击Click事件: Thisform.RELEASE & 表单释放 操作数据导航按钮在显示记录的同时,如果自动显示照片则必须进行OLE对象设置。OLE控件是指将图像、声音、视频等信息以嵌入和链接的方法放到数据表中,以实现多媒体数据库的功能。注意,链接和嵌入是有区别的。在应用程序中以链接方式包含一个OLE对象时,应用程序只是和对象建立一种引用关系,当用户在其他的应用程序中修改该对象时,修改结果可在包含该对象的应用程序中反映出来。链接实际上是存储了被链接对象的文件名,而不是文件本身,当文件被修改时,使用该文件名的内容当然要随之改变。而嵌入则是把OLE对象的副本本身放在通用字段中,在其他应用程序中修改该对象时,和存储在通用字段的对象不再发生关系,当然其中的内容也不可能改变。3.2 建立学生成绩档案编辑表单3.2.1 界面控件元素构成及主要属性设置学生成绩档案建立表单“frm_cjdajl”主要完成“cjb.dbf”数据表的数据录入、修改和删除功能。首先通过控件表单“frm_cjjlml”选定文件,然后将所选定的条件参数传递给被调用的成绩档案建立表单,该表单将编辑符合条件的学生成绩档案。成绩档案建立可以从系统主菜单中“学生成绩档案建立”进入。“frm_cjjlml”和“frm_cjjdjl”表单界面控件的元素构成,如图13和图14所示。图 13 “frm_cjjlml”界面构成图 14 “frm_cjdajl”界面构成3.2.2 编写事件代码(1)表单“frm_cjdaml”事件代码Form1的初始化事件代码:USE xsjl ORDER TAG 学号SCAN Thisform.List1.additem(学号)ENDSCANUSEList1的单击事件代码:Thisform.Text1.Value=This.ValueCommand1的单击事件代码:Thisform.HIDEDO FORM frm_cjdajl With Thisform.Text1.ValueCommand2的单击事件代码:Thisform.RELEASE该表单的主要功能是输入学生参数,即在成绩输入过程中,首先输入学生的学号作为成绩表的筛选条件,然后调出表单frm_cjdajl,并录入该学生的各科成绩。表单中的文本框用来接受用户的键盘录入或鼠标点击的数据。为了提高学号参数输入的效率,在表单初始化事件init中编制数据表扫描代码,将数据表xsjl.dbf中的学号按照预设的次序添加到列表框List1中。表单启动以后列表框中列出所有学生的学号,用户可以在列表框中通过鼠标来选择学号。List1的单击事件代码将完成对学号的选择。(2)表单“frm_cjdajl”事件代码Form1初始化事件代码: PARA xh Thisform.Dataenvironment.Cursor1.Filter=”学号=Xh”Command1的单击事件代码: SELE cjb APPEND BLANK REPLACE 学号 WITH xsjl.学号 Thisform.REFRESHCommand2的单击事件代码: Thisform.RELEASE Frm_cjjlml.SHOW该表单除表格控件外,其他显示学生基础档案信息的文本对象的ReadOnly属性.T.,这样处理以避免用户在成绩录入阶段更改学生的基础信息。因此表单在启动时要接受表单frm_cjdaml的参数传递,因此其WindowsType属性应设置为1。在表单的初始化事件中设置代码,对父表xsjl.dbf进行筛选操作。3.3 设计学生基础档案检索表单3.3.1 界面控件元素构成及主要属性设置学生档案检索表单“frm_jbdacx”主要根据用户输入的检索条件,完成其基础档案的数据只读显示功能。首先通过控制表单“frm_dacxml”选定条件,然后通过调用该表单将所选定的条件参数传递过来,检索表单将显示符合条件的学生基础档案。档案检索功能可以从系统主菜单中“学生基础档案检索”和系统常用工具条中实现。“frm_dacxml”和“frm_jbdacx”表单界面控件元素构成如图15和图16所示。图15 “frm_dacxml”界面构成图16 “frm_jbdacx”界面构成3.3.2 编写事件代码(1)表单“frm_dacxml”事件代码List1的单击事件代码:thisform.text1.value=this.valueList2的单击事件代码:thisform.text2.value=this.valueCommand1的单击事件代码:thisform.hidedo form frm_jbdacx with thisform.text1.valueCommand2的单击事件代码:select xbb.系名,xsjl.学号,xsjl.姓名,xsjl.性别,xsjl.出生日期,xsjl.政治面貌,xsjl.通讯地址,xsjl.邮政编码,xsjl.电话号码 ; from xjgl!xbb inner join xjgl!xsjl on xbb.系别号=xsjl.系别号 order by xbb.系名,xsjl.学号 ; where xbb.系名=alltrim(thisform.text2.value)Command3的单击事件代码:thisform.release该表单的主要功能是输入查询参数,查询参数分别采用了“学号”和“系别”两个条件参数,每个条件参数分别作为不同查询控制条件进行学生档案查询。为了提高参数的输入效率,表单上的列表框List1 和List2分别列出了xsjl.dbf和xbb.dbf中的学生学号和系别名称,用户可以通过鼠标单击列表框快速选择。按学号查询时,将直接调用学生基础档案显示表单frm_jbdacx。按系别查询时,将直接启动数据表查询浏览窗口,符合条件的学生基础信息将通过该窗口显示出来。(2)表单“frm_jbdacx”事件代码Form1的初始化事件代码:para xhthisform.dataenvironment.cursor1.filter=学号=xhCommand1的单击事件代码:thisform.dataenvironment.cursor1.filter=thisform.releasefrm_dacxml.show表单frm_jbdacx中的文本对象的ReadOnly属性应设置为只读即ReadOnly=.T.,即用户通过此表单只能完成数据的查询,而不能对数据进行修改。因此表单在启动时要接受表单frm_dacxml的参数传递,因此其WindowsType属性应设置为1。在表单的初始化事件中设置代码,对表xsjl.dbf进行筛选操作。3.4 设计学生成绩档案检索表单3.4.1 界面控件元素构成及主要属性设置学生成绩档案检索表单“frm_cjdacx”主要根据用户输入的检索条件,完成其成绩档案的检索功能。首先通过表单上的列表框或文本框中输入检索条件,然后利用SQL标准查询语句进行条件查询。本表单可以通过系统主菜单中“学生基础档案检索”调用。表单界面控件的元素构成,如图17所示。图17 “frm_cjdacx”界面构成3.4.2 编写事件代码Command1的单击事件代码:thisform.caption=学生成绩查询+(-bo1.value-)select xbb.系名,xsjl.学号,xsjl.姓名,xsjl.性别,kcb.课程名称,cjb.成绩,;cjb.学分,kcb.教师姓名 from xjgl!xbb inner join xjgl!xsjl ; inner join xjgl!cjb inner join xjgl!kcb on kcb.课程编号=cjb.课程编号 ; on xsjl.学号=cjb.学号 on xbb.系别号=xsjl.系别号 ; order by xbb.系名,kcb.课程名称,xsjl.学号 ; where xsjl.学号=bo1.value thisform.caption=学生成绩查询Command2的单击事件代码:thisform.caption=学生成绩查询+(-bo2.value-)select xbb.系名,xsjl.学号,xsjl.姓名,xsjl.性别,kcb.课程名称,cjb.成绩,;cjb.学分,kcb.教师姓名 from xjgl!xbb inner join xjgl!xsjl ; inner join xjgl!cjb inner join xjgl!kcb on kcb.课程编号=cjb.课程编号 ; on xsjl.学号=cjb.学号 on xbb.系别号=xsjl.系别号 ; order by xbb.系名,kcb.课程名称,xsjl.学号 ; where xbb.系名=bo2.value thisform.caption=学生成绩查询Command3的单击事件代码:thisform.caption=学生成绩查询+(-bo3.value-)select xbb.系名,xsjl.学号,xsjl.姓名,xsjl.性别,kcb.课程名称,cjb.成绩,;cjb.学分,kcb.教师姓名 from xjgl!xbb inner join xjgl!xsjl ; inner join xjgl!cjb inner join xjgl!kcb on kcb.课程编号=cjb.课程编号 ; on xsjl.学号=cjb.学号 on xbb.系别号=xsjl.系别号 ; order by xbb.系名,kcb.课程名称,xsjl.学号 ; where kcb.课程名称=bo3.value thisform.caption=学生成绩查询Command4的单击事件代码:thisform.release该表单的特点是参数输入和结果显示于一体。组合控件combo1、combo2、combo3在设计阶段启动控件生成器程序或从属性窗口分别对数据表xsjb.dbf、xbb.dbf和kcb.dbf中的学号、系别和课程字段进行绑定。成绩检索表单frm_cjdacx启动后,用户利用鼠标可以直接从其下拉列表中快速选择查询参数。当单击对应查询按钮后,分别启动事件代码中的数据库标准查询语句进行数据筛选。各种查询结果将直接显示在临时的查询窗口之中。3.5 设计学生基础档案打印控制表单3.5.1 界面控件元素构成及主要属性设置学生基础档案打印控制表单“frm_jbdady”主要根据用户输入的打印条件,完成其基础档案的报表打印功能。首先通过表单上的组合框或在文本框中输入打印条件,然后运行报表文件,实现条件打印。本表单可以通过系统主菜单中“学生基础档案打印”调用。表单界面控件的元素构成,如图18所示。图18 “frm_jbdady”界面构成3.5.2 编写事件代码Form1的初始化事件代码:open database xjgluse xsjl order tag 学号scan bo1.additem(学号)endscanuse xbbscan bo2.additem(系名)endscanuseclose databaseCommand1的单击事件代码:report form xsda noco for 学号=bo1.value previewCommand2的单击事件代码:report form xsjl noco for 系名=bo2.value previewCommand3的单击事件代码:thisform.release该表单的主要功能是学生基础档案打印控制的参数输入,在设计过程中参数的输入利用两个组合框来完成。组合框中列出的数据可以在设计阶段启动控件生成器程序或从属性窗口直接设置,但这里是在表单程序运行时来完成的,即在表单初始化事件中通过对数据表xsjb.dbf和xbb.dbf的扫描操作,分别将学生的学号和系别名称信息添加到相应的组合框中。3.6 设计学生成绩档案打印控制表单3.6.1界面控件元素构成及主要属性设置学生成绩档案打印控制表单“frm_cjdady”,主要根据用户输入的打印条件,完成其基本成绩档案的报表打印功能。首先通过表单上的组合框或在文本框中输入打印条件,然后运行报表文件,实现条件打印。本表单可以通过系统主菜单中“学生成绩档案打印”调用。表单界面控件的元素构成,如图19所示。图19 “frm_cjdady”界面构成3.6.2 编写事件代码Form1的初始化事件代码:open database xjgluse xsjl order tag 学号scan bo1.additem(学号)endscanuse xbbscan bo2.additem(系名)endscanuse kcbscan bo3.additem(课程名称)endscanuseclose databaseCommand1的单击事件代码:report form xscj noco for 学号=bo1.value previewCommand2的单击事件代码:report form xscj noco for 系名=bo2.value previewCommand3的单击事件代码:report form xscj noco for 课程名称=bo3.value previewCommand4的单击事件代码:thisform.release该表单的主要功能是学生成绩档案打印控制的参数输入。成绩管理是本案例的中心设计议题,在实际工作中用户对成绩报表的种类和格式要求比较复杂,如按学生、课程、任课教师、系别进行分类打印等。这些要求反映到系统设计上来,表现为报表格式及控制条件的多样化。该表单利用三个组合框即combo1、combo2、combo3分别完成对学生、系别和课程的选择。组合框中列出的数据可以在设计阶段启动控件生成器程序或从属性窗口直接设置,但这里是在表单程序运行时来完成的,即在表单初始化事件中通过对数据表xsjb.dbf、kcb.dbf和xbb.dbf的扫描操作,分别将学生的学号、系别名称和课程信息添加到相应的组合框中。3.7 设计系统登录表单3.7.1 界面控件元素构成及主要属性设置系统登录表单“frm_login”主要根据用户输入的密码,控制非法用户进入系统,同时显示系统功能和版本等信息。表单界面控件元素构成,如图20所示。图20“frm_login”界面构成3.7.2 编写事件代码“确定”Container1.Command1的单击事件代码:private sysmaselect sysbsysma=alltrim(this.parent.txtma.value)locate for alltrim(bh)=alltrim(bo1.value)if found() and alltrim(sysb.ma)=sysma thisform.cuser=alltrim(sysb.bh) thisform.visible=.F. do zkcd.mpr read event thisform.visible=.T. this.parent.txtma.value=else messagebox(用户编号或密码不正确!请重新输入。,0,警告) this.parent.txtma.value= this.parent.txtma.setfocusendif“退出”Container1.Command2的单击事件代码:thisform.cuser=thisform.releaseForm1 的Unload事件代码:return thisform.cuser系统登录表单是系统运行的起点,在此界面上只有通过用户身份验证的用户才可以进入系统进行操作。系统登录界面实际上就是一个参数输入的窗口界面,用户输入的登录信息是否合法,可以同程序中内置的参数或特定数据表中预置的数据进行比较,符合条件者可以进入系统操作控制界面,否则必须重新录入登录信息或直接结束系统运行。该案例的用户登录验证信息全部存放在数据表sysb.dbf中。用户输入的信息直接同数据表中的记录信息进行比较,如果在数据表可以找到对应的用户登录信息,则系统将启动主控菜单。3.8 系统工具栏设计3.8.1 创建系统工具条类库本工具条的调用在系统主窗口中进行,首先定义一个容器类,然后在其中添加命令按钮,最后设定各个按钮的图标及单击事件代码。工具条模式如图21所示。如图21系统工具条构成图3.8.2 编写事件代码Command1的单击事件代码:do form frm_jbdajlCommand2的单击事件代码:do form frm_cjdacxCommand3的单击事件代码:do form frm_jbdadyCommand4的单击事件代码:wait window帮助系统timeout 3Command5的单击事件代码:Quit工具栏设计的目的是为了方便用户的操作。在系统设计过程中一般将用户经常进行的操作定制在相应的工具按钮单击事件中。本案例将学生基础档案建立、成绩档案查询、学生基本档案控制打印和结束系统运行的操作定到了工具栏按钮的单击事件之中进行控制。工具栏设计过程中采用了类设计的方法。3.9 设计系统报表3.9.1设计学生学籍卡片报表“xsda.frx”该报表完成学生学籍卡片报表输出任务。数据环境及报表版面设计,如图22所示。该报表数据环境中的数据表为xsjl.dbf图22 学生学籍卡片报表“xsda.frx”版面设计图3.9.2设计学生名册报表“xsjl.frx”该报表完成学生名册报表输出任务。数据环境及报表版面设计,如图23所示。该报表数据环境的数据源为视图“简历查询”。图23 学生名册报表“xsjl.frx”版面设计图3.9.3设计学生成绩册报表“xscj.frx”该报表完成学生成绩报表输出任务。数据环境及报表版面设计,如图24所示。该报表数据环境的数据源为视图“成绩查询”。图24 学生成绩册报表“xscj.frx”版面设计图3.10 系统主控程序及系统关闭函数设计3.10.1 设计系统主控程序系统主文件为程序文件,主要进行系统选项设置和系统控制,程序代码如下:set safety offpublic dltclconshutdown=xtgb()on shutdown &lconshutdownset classlib to xtlk_screen.caption=学生档案管理系统_screen.addobject(fm,tp)_screen.fm.width=_screen.width_screen.fm.height=_screen.height_screen.fm.visible=.T._screen.addobject(gj,xtgj)_screen.gj.visible=.T._screen.windowstate=2_screen.minbutton=.F._screen.maxbutton=.T._screen.showtips=.T._screen.addobject(lbl01,label)_screen.addobject(lbl02,label)_screen.addobject(lbl03,label)_screen.lbl01.autosize=.T._screen.lbl02.autosize=.T._screen.lbl03.autosize=.T._screen.lbl01.visible=.T._screen.lbl02.visible=.T._screen.lbl03.visible=.T._screen.lbl01.backstyle=0_screen.lbl02.backstyle=0_screen.lbl03.backstyle=0_screen.lbl01.fontname=楷体_GB2312_screen.lbl02.fontname=楷体_GB2312_screen.lbl03.fontname=楷体_GB2312_screen.lbl01.top=100_screen.lbl02.top=200_screen.lbl03.top=230_screen.lbl01.left=(_screen.width-_screen.lbl01.width)/2-150_screen.lbl02.left=(_screen.width-_screen.lbl02.width)/2-85_screen.lbl03.left=(_screen.width-_screen.lbl03.width)/2-100_screen.lbl01.fontsize=40_screen.lbl02.fontsize=15_screen.lbl03.fontsize=15_screen.lbl01.caption=学生档案管理_screen.lbl02.caption=设计者:曹斌_screen.lbl03.caption=版权所有(S) 2012_screen.lbl01.backcolor=rgb(64,128,128)_screen.lbl02.backcolor=rgb(64,128,128)_screen.lbl03.backcolor=rgb(64,128,128)_screen.lbl01.forecolor=rgb(0,0,0)_screen.lbl02.forecolor=rgb(0,0,0)_screen.lbl03.forecolor=rgb(0,0,0)do form frm_login to cuserif empty(cuser) dltc=.T.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论