《最新VF学生管理系统.doc》由会员分享,可在线阅读,更多相关《最新VF学生管理系统.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程名称: 数据库技术及应用设计题目: 学生信息管理系统姓 名: 尹洪棣班 级: 电子商务092学 号: 200936627259联系电话: 15875945900指导教师: 刘大召课程设计时间:2011.5.22至2011.5.30目录一、系统说明1.1系统设计目的31.2系统功能简介31)查询32)数据操作33)浏览打印44)系统帮助41.3系统设计平台5二、系统设计开发2.1数据库设计52.2系统数据表的关系62.3封面表单设计72.4登陆验证设计82.5系统桌面设计92.6主菜单,主页右键快捷单设计102.7学生信息设计112.8课程信息设计152.9学生选课成绩信息设计163.0管理
2、员信息设计173.1报表、标签设计193.2主程序设计203.3程序连编和打包21三、总结设计的心得和感想21数据库课程设计报告电子商务092 200936627259 尹洪棣指导老师:刘大召 一、系统说明1.2设计目的经过一个学期对数据库的学习,在一定的基础上掌握了数据库的建立和相关要件的建立,全面认识了VF6.0和Vf9.0,通过一周时间左右的课程实习,更深层掌握数据表、数据库的基本操作,已经深入了解学习程序的开发、包括表单、菜单、程序间的联系的建立,全面巩固数据库知识的学习。同时,开发此学生信息管理系统,主要面向班级学生的信息管理和成绩管理,简化日常学生班干对学生的管理工作,有助提高工作
3、效率,并能提供更为直观、准确、容易理解的信息内容。1.2系统功能简介按照日常对学生管理的需要和操作,此学生信息管理系统,针对应用于管理学生的基本信息、选修课程管理、以及成绩的信息管理,其实现的基本功能包括如下:管理员功能:本系统通过界面加密,所以只有相应的管理员才能进入系统中,对相应的学生信息进行操作,在一定的程度上保证了数据的机密性和可靠性。1)查询:一学生信息查询模块,学生信息查询可以有两种模式,一种是系统自行录入工作,另外一种是由人工输入相关性的学号、姓名进行查询。二课程信息查询,对课程的信息进行查询。三学生选课和成绩查询。四系统管理员信息查询。此模块可以对管理员的相关信息进行逐一查询。
4、2)数据操作:一学生信息操作,包括有对学生信息的修改、删除、添加功能。二课程信息操作,包括有对课程信息的修改、删除、添加功能。三学生选课成绩信息操作,同样地包括有对学生的选课情况可以修改、删除、添加功能,也可以对学生各科的选课成绩进行修改、删除、添加,大部分满足平常对学生信息管理的功能需求。四系统管理员信息操作,包括有对相关的系统管理员进行修改、添加、删除,同时可以对自己的密码进行修改,并能带引第三方人员进行注册对该管理系统使用。3)浏览、打印一浏览、打印学生成绩单,实现对各个同学的学习成绩情况进行了解。二浏览、打印课程成绩汇总单,实现对课程信息总体教学情况的掌握。三浏览多表信息,进行多表关联
5、查询和了解。4)系统帮助:一系统版本说明,让管理员能够清楚了解该系统的相关信息,包括版本号,版权所有等信息。二系统操作帮助,方便管理员的操作。介绍系统相关特性。非管理员功能本管理系统由于进行加密操作,保证学生信息的准确性和安全性能。但非管理员可以对管理员的信息进行查询,和相关管理员联系,对系统注册就能方便使用。针对以上功能模块和日常管理需求,再对其进行模块化,从而得出系统功能模块图,结合工作流程得如下图所示。学生信息管理系统封面进入用户密码输入登陆界面管理员信息查询重启查询修改添加删除查看成绩单打印浏览管理员退出帮助学生信息课程信息成绩信息多表信息管理员 1.3系统设计平台 此学生信息管理系统
6、,由Vf6.0和VF6.9共同开发设计,主要前期系统项目的创建有Vf9.0创建。而后期程序打包安装设计有VF6.0设计。本系统提供windows环境下使用。二、系统设计开发 2.1数据库设计 根据设计中的学生信息管理系统的功能分析,和实际应用需要,本系统的数据库在信息管理系统的项目管理器中创建了一个名为student的数据库,并在数据库中建立了有class(课程信息表,主要记载学生所有的课程信息),stu(学生信息表,主要记载学生信息),mark(学生成绩表,主要记载学生相应的选课成绩),user(系统管理员信息表,主要记载系统管理员的相关信息),各表的结构如下所示:图表 1class字段结构
7、 图表 2学生成绩信息表Class表中有课程id,课程名,课程学分,课程教室安排,还有课程老师安排;学生成绩信息表中含有学生学号,课程id和课程成绩。图表 3学生表学生信息表含有学生班级,学生学号,学生姓名,学生性别,学生专业,学生民族,学生籍贯,学生年龄,学生是否团员,学生入学日期,学生照片。其中,特别指出,学生性别赋予了字段有效性规则xb=男.OR.xb=女,默认值为:男,所以凡是添加和修改学生信息性别这一属性的时候,就会要求用户输入正确的性别。图表 4管理员系统管理员的信息表含有名字、密码、电话号码、和联系地址。2.2系统数据表的关系1)索引设计:系统中各表的索引设计如下:class表以
8、课程id为主索引,成绩表mark以课程id和学生学号为普通索引,学生表stu以学生学号为主索引,通过这样的设计建立各表间的关系如下:class与成绩表mark以课程id为关联,学生表stu以学生学号和成绩表相关联。 2)数据库完整性设计为了更好地为系统的相关数据操作,本系统的数据表间的参照完整性设计如下:当stu表和class表的值受到修改,其子表mark的相关记录就要级联更新;当删除父表stu、class的记录,也是级联删除子表mark的相关记录;当子表要插进新记录的时候,就要看父表中是否含有相关值,如果没有就限制插入。图表 5参照完整性设计3)数据库视图的创建根据系统功能需要和报表与标签的
9、成绩汇总需要,本系统由以上所述的stu表、class表、mark表为数据源,创建了两个本地视图。1)课程汇总,以mark为数据源,选取了以课程id为分组依据对mark进行分组,并统计其课程总体的平均成绩,已经统计记录数量。方便后期课程汇总报表的建立。2)学生成绩单,以class、stu、mark表为数据源,选择了其中的学生表学号、姓名、专业、班级、课程id、课程名、课程老师安排、和课程成绩为字段。其作用广泛应用于有关成绩的表单,如学生成绩单;和报表的个人成绩的统计使用。 2.3封面表单设计1)封面界面的设计主要是本着实用简便的原则设计制作。在系统界面被打开时,映入一张图片,缓解使用环境和气氛。
10、同时,包括系统名称,系统版本号和创作人,以及系统选择,通过命令按钮设计,系统可以退出,以及进入系统。此时除了按退出键可以退出以外,要退出系统封面,可以使用电脑系统的任务管理器,或者让封面自运行一分钟(60 s)就能退出系统。另外,利用了计时控件,设计了个动态字样“欢迎使用”,和系统时间表。实现的表达界面如图所示图表 6系统封面表单2)其中实现动态字样“欢迎使用”的计时控件代码设计如下:(100毫秒刷新)为Timer2的time event添加如下代码:if thisform.label4.Left+thisform.label4.Width0 &当记录不是为空的时候,就插进新纪录,如果发现有空
11、格为纪录,则把它先删除APPEND BLANK ELSEDELETEpackENDIF确定按钮的click事件控件代码为:DIMENSION x(10)x(1)=ALLTRIM(thisform.text2.Value) &bjx(2) =ALLTRIM(thisform.text5.Value)&xhx(3)=ALLTRIM(thisform.text1.Value) & xmx(4)=ALLTRIM(thisform.text7.Value)&xbx(5)=ALLTRIM(thisform.text3.Value) &zyx(6)=ALLTRIM(thisform.text9.Value)
12、&mzx(7)=ALLTRIM(thisform.text6.Value)&jgx(8)=thisform.text8.Value&nlIF thisform.check1.Value=1 &ry x(9)=.t.endifyeah=ALLTRIM(str(thisform.spinner1.Value)mon=ALLTRIM(str(thisform.spinner2.Value)da=ALLTRIM(str(thisform.spinner3.Value)x(10)=CTOD(ALLTRIM(mon+/+da+/+yeah)GATHER FROM xa=MESSAGEBOX(添加成功,如需
13、继续添加,请点击确定!,4+31,确定)IF a=6thisform.text1.Value=thisform.text2.Value=thisform.text3.Value=thisform.text5.Value=thisform.text6.Value=thisform.text7.Value=thisform.text5.Value=ELSEthisform.Releaseendif用户添加相片的按钮代码:wjm=getfile()if not empty(wjm)append general stu.photo from &wjmendif界面如下:图表 11添加学生三删除、修改学
14、生信息用户通过输入姓名或者学生学号,首先进行查询查看相关学生信息,按下确认按钮,将有如下事件发生:sno=ALLTRIM(thisform.text1.Value )SCANIF stu.xh=sno .or. stu.xm=snothisform.txtXm.Enabled = .t.mand5.Enabled= .t.thisform.bj1.Enabled = .t.thisform.xh1.Enabled = .t.thisform.zy1.Enabled = .t.thisform.xb1.Enabled = .t.thisform.date1.Enabled = .t.thisfo
15、rm.nl1.Enabled = .t.thisform.mz1.Enabled = .t.thisform.ty1.Enabled = .t.thisform.JG1.Enabled = .T.SCATTER TO A &首先保存记录,取消返回保存thisform.text1.Value =thisform.Refresh RETURNENDIFENDSCANmessagebox(该学生不存在!,0,查找失败!)删除按钮的按键发生事件代码:SCANIF stu.xh=sno .or. stu.xm=snoDELETE FOR (stu.xh=sno .or. stu.xm=sno)USE s
16、tu EXCLUSIVEPACKENDIFENDSCANUSE markPACKUSE用户通过输入姓名或者学号,按下确认键,期间学生信息相关的控件就能够实现开放修改,当然,用户也可以取消返回到系统的主界面。当按下删除该学生的时候,取消修改就起相应作用,同时把当前记录复制给一个数组A,此时若按下能够取消删除记录,将会全局sacn寻找当前记录,如果存在就替换掉当前记录,避免没有按删除键而无法操作返回的操作,如果寻找不到也就是已经按过删除键的时候,会通过插入新记录来返回误操作。修改学生信息和删除信息事件差不多。界面运行如下图所示:图表 12删除学生信息2.8课程信息设计有了上面对学生信息的管理的基础
17、,课程信息设计就差不多和学生信息管理同一个模板,相关的属性不同了,界面也相应不同了。课程信息设计的内容同样包括有,课程信息查询、添加课程信息、删除课程信息、修改课程信息。其相关代码可以对照学生信息设计模块。其运行界面如下: 图表 13课程信息查询、修改 图表 14课程信息添加、删除2.9学生选课成绩信息设计 一学生选课成绩查询学生选课成绩查询的表单,力求简单和明了的特点,用户可以通过输入学号、姓名进行查询到改学生以后,通过list的组合框,实现用户点击某个课程,右边的与mark相连接起来的txtmark就能显示当前选中的课程的成绩。主要的“确定”按钮代码为:sno=ALLTRIM(thisfo
18、rm.text1.Value )SCANIF 学生成绩单.xh=sno .or. 学生成绩单.xm=snothisform.list1.Visible = .T.thisform.txtMark.Visible= .T.thisform.lblMark.Visible=.t.thisform.Refresh RETURNENDIFENDSCANmessagebox(该学生不存在!,0,查找失败!)界面运行如下:图表 15学生成绩查询二学生成绩单本系统的学生成绩不另外设计了添加成绩、删除成绩等相关功能,而是通过了本地视图的,学生成绩单来建立一个表单,实现成绩单简单的添加、删除、查找、打印、编辑等
19、。3.0管理员信息设计一管理员信息查看由上面的系统功能分析知道,本学生信息管理系统如果是非管理员进入系统,可以通过查看系统管理员注册使用的,同样的,管理员也可以在系统重查看到管理员的相关信息。管理员信息查看,是通过表单向导来设计的,设计为无按钮,并结合学生信息查询的“最前、上一条、下一条、最好、返回”命令按钮组,在一定的程度上满足非管理员的需要和信息的查阅度。二管理员信息修改管理员可以进入系统管理员信息修改器,进行对相关管理员信息的修改。本模块中,主要想实现的功能是修改当前管理员的密码。管理员点击密码修改,就能显示要输入旧密码的需要,通过 旧密码的tex1中的valid(将要释放)的代码实现和
20、原来的密码对照,如果相同就可以修改新密码,不同的话,证明此管理员不是本人。代码如下:s=ALLTRIM(thisform.pasSWORD1.Value)IF this.Value=sthisform.standardlabel2.Visible= .t.thisform.standardlabel3.Visible= .t.thisform.text2.Visible= .t.thisform.text3.Visible= .t.ELSEMESSAGEBOX(密码错误,请重新输入,0,错误)thisform.text1.Value=endif另外,通过第二次输入密码,要释放焦点的时候,验证前
21、后两次的新密码是否都一样,实现的代码如下:Text3lostfocus:s=ALLTRIM(thisform.text2.Value )IF this.Value=s thisform.passWORD1.Value=this.Value MESSAGEBOX(修改成功!,0) ELSE MESSAGEBOX(前后密码不一致!请修改!,0,错误) endif 三管理员注册外界人员要对本系统进行使用,必须在管理员的情况下注册才能拥有对系统的使用权。“确定按钮”的主要代码为:if (LEN(ALLTRIM(thisform.text1.Value ) 0) AND (LEN(ALLTRIM(thi
22、sform.text6.Value ) 0) a=ALLTRIM(thisform.text1.Value)b=ALLTRIM(thisform.text6.Value)c=ALLTRIM(thisform.text3.Value)d=ALLTRIM(thisform.text4.Value)insert into user values(a,b,c,d)c=MESSAGEBOX(注册成功!,1+64)IF (c=1)thisform.ReleaseendifELSEMESSAGEBOX(注册失败,请新填写!,5+16)Endif相关界面运行图如下:图表 16系统管理员界面3.1报表、标签设计
23、本系统有设计了两个报表,一个是课程汇总,实现每一个科目的成绩统计,包括有课程的平均分,和统计选修人数,并在总结中有学生总体的平均成绩。有利于班干和老师针对不同的课程有不同的教学方针。另一个是学生成绩单报表,主要记载了学生各个选修的科目和成绩。并能在组注脚中实现对学生个人平均成绩的计算。标签只有一个,名字为学生成绩单,类似于学生成绩单,只是形式不一样了。运行界面如下:图表 17报表预览3.2主程序设计本学生信息管理系统,主建了一个主程序,并设置为主文件,实现程序的开端调用文件。其中的代码如下:CLOSE ALL CLEAR ALL SET TALK OFF _screen.Caption=学生信
24、息管理系统 v513_screen.Visible=.f.DO FORM 封面READ eventsSET SYSMENU TO default33 程序连编和打包安装程序通过Vf9.0对该学生信息管理系统进行连编成程序exe格式,此时,可以双击改文件运行程序。由于v9没有打包安装向导,所以用v6进行程序打包成安装程序,可以生成web安装和网络安装文件。三 总结设计的心得和感想较为漫长的一周,在老师的检查系统下,就完美的结束了我的数据库课程实习设计。这一周来,常常对着电脑上那渺小的文字,想着那连连相扣的思路,到后来总有点感觉累透了眼睛,也累透了脑袋。特别是在出现错误的时候,想的东西,需要更多。
25、这次设计的学生信息管理系统,全在自己所掌握的知识下,进行编程设计,完全体现了自己在数据库语言和程序设计课程学习状况,充分地为自己以后更深入了数据库语言奠下深厚的基础。纵观此学生信息管理系统的整体概况,目前,自我认为设计良好,相关功能都能够实现,功能强大,条理清晰,界面可观性比较好。并且特色在于,所设计的表单都在一个表单系统桌面中运行,比较符合系统的观念。经过这次实习系统设计,自己总结了这个学生信息管理系统的一些问题,发现,虽然已经可以运行,但是,很多细节问题,还没有得到很好的解决,例如,那些排列显示,没有好好地对称显示;系统的主菜单太杂而繁多;多表信息浏览的界面太差等等。在系统设计的过程中,我搜索了许多关于Vf的相关知识,例如,怎么解决vf提示数据库的无效性;系统如何打包才正确而不出现CBA文件错误我从中发现,学习数据库要细心和有耐性,并且要不断地从外界学习更多的技术才能设计出一套完美的系统。