学生信息管理系统VFP课程设计_第1页
学生信息管理系统VFP课程设计_第2页
学生信息管理系统VFP课程设计_第3页
学生信息管理系统VFP课程设计_第4页
学生信息管理系统VFP课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1引言12系统技术及运行环境12.1 Visual Foxpro 6.0简介12.2系统开发及运行环境13 系统分析23.1需求分析23.2可行性分析24总体设计24.1 设计目标24.2项目规划34.3系统功能图45系统详细设计55.1数据库设计55.2登陆界面设计65.3学生信息录入85.4 学生信息修改95.5 学生信息查询115.6系管理表单设计125.7班级管理155.8学生成绩录入175.9 修改学生成绩195.10学生成绩查询215.11用户管理225.12修改用户密码255.13关于系统266 结论27致 谢28参考文献291引言学生信息管理系统(Student Info

2、rmation Management System),以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严

3、重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟, 使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。用计算机制作的学生信息管理系统还可以通过功能强大的Internet网及时的向学生的

4、家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用!因此,开发这样一套管理软件成为很有必要的事情。2系统技术及运行环境2.1 Visual Foxpro 6.0简介Visual Foxpro 6.0是计算机优秀的数据管理系统软件之一,正如其名称中的“Visual”一样,它采用了可视化的、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了应用系统的开发过程,并提高了系统的模块性和紧凑型。是新一代的小型数据库管理系统的杰出代表,它以其强大的性能、完整而又丰富的工具、较高的处理速度、友好的界面以及较完备的兼容性,备受广大用户的欢迎。面前,Vi

5、sual Foxpro 6.0是用户收集信息、查询数据、创建集成数据库系统、进行应用系统开发较为理想的微机数据库管理系统。2.2系统开发及运行环境该运行环境的规定是保证本需求说明的功能得到实际真正体现的基础。(1)运行环境Windows98或更高版本的操作系统数据库系统:Microsoft Visual Foxpro 6.0(2)开发环境:开发工具:Microsoft Visual Foxpro 6.0数据库系统:Microsoft Visual Foxpro 6.03 系统分析3.1需求分析21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各

6、个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。(一)教育系统学生管理现状分析学校工作流程分析学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。(二)学校具体需求分析学生:对各科成绩的查询任课老师:输入并维护所教

7、科目的学生成绩教务处: 学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护。通过研究调查,本系统需以下功能:综合学生信息、学生成绩以及信息查询等信息。方便用户了解和管理学生的全面动态信息。良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。3.2可行性分析目的:可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。经济性:由于学校等中小型管理系统并不复杂,且Visual Foxpro 6.0本身要求的运行环境不高,所以一般Windows 2000以上的系统环境都可以使用。实用性:本学生信息管理系统管理系统无太多复杂的操作要求,也

8、没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如 4总体设计4.1 设计目标本系统可以能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。数据库分析用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关

9、联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。4.2项目规划学生管理系统是各大中专院校不可缺少的一部分,是一个VF数据库开发应用程序,它主要包括用户登录、学生信息输入修改、学生信息查询以及学生成绩输入、学生成绩查询、系统用户管理等几个页面,因而该系统具有较强的实用性。4.3系统功能图学生课程信息管理学生成绩信息管理系统管理学生成绩管理系管理学生成绩录入专业管理用户管理修改密码退出系统班级管理学生班级管理学生信息管理学生信息录入学生信息录入学生信息录入课程管理学生信息管理系统登录系统主界面5系统详细设计5.1数据库设计(1)deand

10、ma.dbf,见表1表1字段名数据类型备注班级Char(8)主键Not null系Char(10)Not null专业Char(14)Not null(2)grade.dbf,见表2表2字段名数据类型备注学号Char(8)主键Not null班级Char(10)Not null课程Char(18)Not null成绩Int (5)Not null学期Char(2)Not null备注MemoNull(3)stduents.dbf,见表3表3字段名数据类型备注班级Char(8)主键 Not null学号Char(8)Not null姓名Char(8)Not null性别Char(6)Not Nu

11、ll出生日期DatetimeNull政治面貌Char(8)Null身份证号码Char(16)Null入学时间DatetimeNull籍贯Char(16)Null家庭住址Char(28)Null邮政编码Char(6)Null照片GeneralNull备注MemoNull(4).dbf,见表4表4 用户信息表 字段名数据类型备注姓名Char(8)主键 Not null密码Char(6)Not null标识LogicalNot null5.2登陆界面设计“进入”按钮的click事件添加如下的代码:sele yonghuif allt(thisform.text1.value)=messagebox(

12、left(allt(thisform.label1.caption),6)+为空,请输入!,64,提示)thisform.text1.setfocuselseif allt(thisform.text2.value)=messagebox(密码为空,请输入!,64,提示)thisform.text2.setfocuselsen=n+1locate for allt(姓名)=allt(thisform.text1.value);.and. allt(密码)=allt(thisform.text2.value)if found()if thisform.check1.value=1 .and. 标

13、识checked=1thisform.releasedo menu.mprelseif thisform.check1.value=1.and.!标识messagebox(你不是管理员!,48,警告)thisform.check1.value=0elsechecked=0cyonghu=allt(姓名)cmima=allt(密码)thisform.releasedo menu.mprendifendifelseif n=3messagebox(你不是合法用户,请与管理员联系!,48,警告)thisform.releaseclear eventquitelsemessagebox(left(al

14、lt(thisform.label1.caption),6)+或密码错误,请重新输入!,64,提示)thisform.text1.value=thisform.text1.setfocusthisform.text2.value=endifendifendifendif“取消”按钮的click事件添加如下的代码nr=messagebox(你选择了退出登录,是否退出?,68,用户登录)if nr=6thisform.releasequitendif5.3学生信息录入“增加”按钮的click事件添加如下的代码:if this.caption=增加if(bo3.display

15、value=(选择)).or.(alltrim(thisform.text1.value)=);.or.(alltrim(thisform.text2.value)=)messagebox(班级、学号和姓名必须填充!,64,提示)elselocate for alltrim(thisform.text1.value)=alltrim(students.学号)if !eof()=messagebox(此学号已经存在,请重新输入!,64,提示)thisform.text1.value=thisform.text1.setfocuselsesele studentsappend blankrepla

16、ce 班级 with alltrim(bo3.value),学号with alltrim(thisform.text1.value);姓名 with alltrim(thisform.text2.value),出生日期with ctod(alltrim(thisform.text4.value);入学时间 with ctod(alltrim(thisform.text6.value), 籍贯with alltrim(thisform.text7.value);家庭住址 with alltrim(thisform.text8.value),身份证号码with alltri

17、m(thisform.text8.value);备注 with alltrim(thisform.edit1.value),邮政编码 with alltrim(thisform.text3.value)if alltrim(bo4.value)=replace 性别 with alltrim(bo4.displayvalue)elsereplace 性别 with alltrim(bo4.value)endifif alltrim(bo5.value)=replace 政治面貌 with alltr

18、im(bo5.displayvalue)elsereplace 政治面貌 with alltrim(bo5.value)endif& if .not.alltrim(thisform.label17.caption)=if !pictemp=wait windows 正在导入相片,请等待!. at 100,40 timeout 2 nowait& pictemp=thisform.label17.captionappend general students.照片 from &pictempendifpictemp=this.caption=继续e

19、mand2.clickthis.caption=增加endif5.4 学生信息修改“修改”按钮的click事件添加如下的代码:ith thisformsele studentslocate for allt(学号)=allt(.text1.value)if allt(学号)=allt(.text1.value)replace 学号 with allt(.text1.value),姓名 with allt(.text2.value),邮政编码 with allt(.text3.value),;出生日期 with .text4.value,入学时间

20、 with .text6.value,籍贯 with allt(.text7.value),;家庭住址 with allt(.text8.value),身份证号码 with allt(.text9.value),性别 with allt(.combo4.value),;政治面貌 with allt(.combo5.value),备注 with allt(.edit1.value)if !pictemp=wait windows 正在导入相片,请等待!. at 100,40 timeout 2 nowaitappend general 照片 from &pictempendifendifsele

21、 lslocate for allt(学号)=allt(.text1.value)if allt(学号)=allt(students.学号)replace 学号 with students.学号,姓名 with students.姓名,邮政编码 with students.邮政编码,;出生日期 with students.出生日期,入学时间 with students.入学时间,籍贯 with students.籍贯,;家庭住址 with students.家庭住址,身份证号码 with students.身份证号码,性别 with students.性别,;政治面貌 with student

22、s.政治面貌,备注 with students.备注,照片 with students.照片endifpictemp=this.enabled=.f.endwith5.5 学生信息查询“定位查询”按钮的click事件添加如下的代码if allt(thisform.text1.value)=messagebox(请输入学号或姓名!,64,提示)thisform.text1.setfocuselsesele stulslocate for allt(学号)=allt(thisform.text1.value);.or.allt(姓名)=allt(thisform.text1.value)if fo

23、und()go recn()elsewait window at 18,38 nowait 没有找到你要查询的信息!endifendifthisform.grid1.refreshthisform.refresh“第一个”按钮的click事件添加如下的代码sele stulsskip -1if bof()this.enabled=.mand3.enabled=.f.messagebox(已经到第一条记录了!,64,提示)go topelsego recn()mand2.enab

24、led=.mand4.enabled=.t.“单个查询”按钮的click事件添加如下的代码nxx=1do form xxxg5.6系管理表单设计“增加”按钮的click事件添加如下的代码set order to tagset safety offif alltrim(thisform.text1.value)=messagebox(系名为空,请输入!,64,提示)thisform.text1.setfocuselselocate for deandma.系=alltrim(thisform.text1.value)if .not.eof(

25、)messagebox(系名已经存在,请重新输入!,48,提示)thisform.text1.value=thisform.text1.setfocuselseappend blankreplace deandma.系 with alltrim(thisform.text1.value)thisform.text1.value=thisform.text1.setfocusendifthisform.list1.clearthisform.list1.init &重新显示list列表thisform.list1.value=endif“删除”按钮的click事件添加如下的代码Set safet

26、y offif this.caption=取消thisform.text2.value=thisform.text2.enabled=.f.thisform.label3.enabled=.f.this.caption=删除mand1.enabled=.mand2.caption=修改elseif alltrim(thisform.text1.value)=messagebox(缺少完整信息,无法删除!,0+48,警告)thisform.text1.setfocuselsethisform.list1.value=alltrim(thisfo

27、rm.text1.value)nn=messagebox(是否确定删除此系单位,其所属的专业班级的数据库都将删除!,1+48,警告)if nn=1t=0use datadeandmago topdo while .not.eof()if alltrim(系)=alltrim(thisform.text1.value)deletepackt=1endifskipenddoif t=0messagebox(将删除的内容不存在,请重新输入。,60,提示)thisform.text1.setfocusendifendifthisform.text1.value=thisform.list1.reque

28、rythisform.list1.clearthisform.list1.init &重新显示List列表thisform.text1.value=alltrim(thisform.list1.value)endifendifthisform.refresh5.7班级管理“增加”按钮的click事件添加如下的代码set order to tagset safety offif alltrim(thisform.text1.value)=messagebox(班级名为空,请输入!,64,提示)thisform.text1.setfocuselselocate for deandma.班级=all

29、trim(thisform.text1.value)if .not.eof()messagebox(班级名已经存在,请重新输入!,48,提示)thisform.text1.value=thisform.text1.setfocuselselocate for deandma.专业=alltrim(bo2.value)if alltrim(deandma.班级)=replace deandma.班级 with alltrim(thisform.text1.value)elseappend blankreplace deandma.系 with alltrim(thisfo

30、bo1.value)replace deandma.专业 with alltrim(bo2.value)replace deandma.班级 with alltrim(thisform.text1.value)endifthisform.text1.value=bo2.click &重新显示list列表thisform.list1.value=endif“删除”按钮的click事件添加如下的代码Set safety offif this.caption=取消thisform.te

31、xt2.value=thisform.text2.enabled=.f.thisform.label5.enabled=.f.this.caption=删除mand1.enabled=.mand2.caption=修改elseif alltrim(thisform.text1.value)=messagebox(缺少完整信息,无法删除!,0+48,警告)thisform.text1.setfocuselseuse deandma exclusivethisform.list1.value

32、=alltrim(thisform.text1.value)nn=messagebox(是否确定删除此班级,与其相关的数据都将删除!,1+48,警告)if nn=1t=0locate for alltrim(deandma.班级)=alltrim(thisform.text1.value)deletepackt=1if t=0messagebox(将删除的内容不存在,请重新输入。,64,提示)thisform.text1.setfocusendifendifthisform.text1.value=bo2.click &重新显

33、示List列表thisform.text1.value=alltrim(thisform.list1.value)endifendifthisform.refresh 5.8学生成绩录入“确定”按钮的click事件添加如下的代码xuehao=allt(thisform.text1.value)banji=allt(bo3.value)kecheng=allt(bo4.value)xueqi=allt(bo5.value)chengji=allt(thisform.text2.value)sele gradeif cheng

34、ji=tt=messagebox(想输入单科成绩吗?,4+32,提示)if tt=6thisform.text2.setfocuselseendifelse*locate for allt(学号)=xuehao*if eof()locate for allt(课程)=kechengif allt(学号)=.and.allt(班级)=banjirepl 学号 with xuehaorepl 成绩 with val(chengji)repl 学期 with xueqielse* append blank* repl 学号 with xuehao* repl 班级 with banji* repl

35、课程 with kecheng* repl 成绩 with val(chengji)* repl 学期 with xueqi*endif*elselocate for allt(学号)=xuehao .and. allt(课程)=kecheng .and. allt(学期)=xueqiif eof()append blankrepl 学号 with xuehaorepl 班级 with banjirepl 课程 with kechengrepl 成绩 with val(chengji)repl 学期 with xueqielsett=messagebox(该科的成绩已存在,是否覆盖?,4+32

36、+256,提示)if tt=6repl 成绩 with val(chengji)endifendifendifthisform.Cmand3.enabled=.f.endif“查询”按钮的click事件添加如下的代码sele lsif allt(thisform.text3.value)=messagebox(请输入学号或姓名!,64,提示)elselocate for 学号=allt(thisform.text3.value).or.姓名=allt(thisform.text3.value)if eof()messagebox(该班级没有此人

37、!,64,提示)thisform.text3.value=thisform.text3.setfocusgo nhereelsethisform.text1.value=学号endifendif5.9 修改学生成绩“快速查询”按钮的click事件添加如下的代码sele lsbjif allt(thisform.text1.value)=messagebox(请输入学号或姓名!,16,提示)thisform.text1.setfocuselselocate for 学号=allt(thisform.text1.value).or.姓名=allt(thisform.text1.value)if e

38、of()messagebox(本班级没有此人,请重新输入!,64,提示)thisform.text1.value=thisform.text1.setfocuselsexuehao=allt(学号)thisform.label8.caption=姓名thisform.label9.caption=学号bo4.clickendifendif“下一位”按钮的click事件添加如下的代码mand2.enabled=.mand4.enabled=.t.if !allt(bo3.value)=sele l

39、sbjskip 1if eof()this.enabled=.mand5.enabled=.f.messagebox(已经到最后一条记录了!,48,提示)go bottomendifxuehao=allt(学号)thisform.label8.caption=allt(姓名)thisform.label9.caption=allt(学号)5.10学生成绩查询“补考统计”按钮的click事件添加如下的代码if allt(bo3.value)=messagebox(请选择班级!,64,提示)elsebkbj=bo3.val

40、uebkxq=bo4.valuedo form bukaoendif“定位查询”按钮的click事件添加如下的代码if allt(thisform.text1.value)=messagebox(请输入学号或姓名!,64,提示)thisform.text1.setfocuselselocate for allt(students.学号)=allt(thisform.text1.value).or.;allt(students.姓名)=allt(thisform.text1.value)if found()lsxh=allt(students.学号)lsxm=allt(s

41、tudents.姓名)buxq=allt(bo4.value)do form dgcjelsemessagebox(没有此人,请重新输入,64,提示)endifendif5.11用户管理List1的init事件中添加的代码如下sele yonghuthis.additem(管理员)locate for 标识=.T.do while found()this.additem(-+姓名)continueenddogo toplocate for 标识=.F.this.additem(普通用户)do while found()this.additem(-+姓名)continue

42、enddo“注册”按钮的click事件添加如下的代码Set safety offsele yonghuif alltrim(thisform.text1.value)=messagebox(用户名不能为空! ,0+48,警告)thisform.text1.setfocuselselocate for 姓名=alltrim(thisform.text1.value)if(.not. eof()messagebox(此用户已存在,请重新输入!,64,警告)thisform.text1.value=thisform.text1.setfocuselseif alltrim(thisform.text

43、2.value)=messagebox(密码不能为空! ,0+48,警告)thisform.text2.setfocuselseif (thisform.text2.value)=(thisform.text3.value)append blankrepl 姓名 with alltrim(thisform.text1.value),;密码 with alltrim(thisform.text2.value)if thisform.check1.value=1repl 标识 with .T.elserepl 标识 with .F.endifthisform.text1.value=thisfor

44、m.text2.value=thisform.text3.value=thisform.text1.setfocusthisform.text3.enabled=.f.thisform.label4.enabled=.f.thisform.list1.clearthisform.list1.initelsett=messagebox(确认密码错误,请重新输入!,0+48,警告)if tt=1thisform.text3.enabled=.t.thisform.label4.enabled=.t.thisform.text3.value=thisform.text3.setfocusendife

45、ndifendifendifendif“删除”按钮的click事件添加如下的代码if allt(thisform.text1.value)=messagebox(请选择或输入用户名,64,提示)thisform.text1.setfocuselseuse yonghulocate for 姓名=allt(thisform.text1.value);.and.密码=allt(thisform.text2.value)if eof()messagebox(请选择或输入正确的用户名,64,提示)thisform.text1.value=thisform.text2.value=thisform.te

46、xt1.setfocuselsett=messagebox(一定要删除吗?,4+48,删除确认)if tt=6deletepackendifthisform.list1.clearthisform.list1.initthisform.list1.clickendifendif5.12修改用户密码“修改”按钮的click事件添加如下的代码sele yonghuif allt(thisform.text1.value)=thisform.text1.setfocuselselocate for allt(姓名)=allt(thisform.text1.value)if eof()messagebox(此用户不存在,请重新输入!,64,提示)thisform.text1.value=thisform.text1.setfocus()elseif !allt(密码)=allt(thisform.text2.value)messagebox(密码错误,请重新输入!,64,提示)thisform.text2.value=thisform.text2.setfocus()elseif allt(thisform.text3.value)=m

温馨提示

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

评论

0/150

提交评论