学生信息管理系统VFP课程设计.docx
《学生信息管理系统VFP课程设计.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统VFP课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
学生信息管理系统VFP课程设计
1引言1
2系统技术及运行环境1
2.1VisualFoxpro6.0简介1
2.2系统开发及运行环境1
3系统分析2
3.1需求分析2
3.2可行性分析2
4总体设计2
4.1设计目标2
4.2项目规划3
4.3系统功能图4
5系统详细设计5
5.1数据库设计5
5.2登陆界面设计6
5.3学生信息录入8
5.4学生信息修改9
5.5学生信息查询11
5.6系管理表单设计12
5.7班级管理15
5.8学生成绩录入17
5.9修改学生成绩19
5.10学生成绩查询21
5.11用户管理22
5.12修改用户密码25
5.13关于系统26
6结论27
致谢28
参考文献29
1引言
学生信息管理系统(StudentInformationManagementSystem),以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(ManagementInformationSystem)。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。
在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:
效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。
诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。
随着科学技术的不断提高,计算机科学日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。
这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。
用计算机制作的学生信息管理系统还可以通过功能强大的Internet网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用!
因此,开发这样一套管理软件成为很有必要的事情。
2系统技术及运行环境
2.1VisualFoxpro6.0简介
VisualFoxpro6.0是计算机优秀的数据管理系统软件之一,正如其名称中的“Visual”一样,它采用了可视化的、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了应用系统的开发过程,并提高了系统的模块性和紧凑型。
是新一代的小型数据库管理系统的杰出代表,它以其强大的性能、完整而又丰富的工具、较高的处理速度、友好的界面以及较完备的兼容性,备受广大用户的欢迎。
面前,VisualFoxpro6.0是用户收集信息、查询数据、创建集成数据库系统、进行应用系统开发较为理想的微机数据库管理系统。
2.2系统开发及运行环境
该运行环境的规定是保证本需求说明的功能得到实际真正体现的基础。
(1)运行环境Windows98或更高版本的操作系统
数据库系统:
MicrosoftVisualFoxpro6.0
(2)开发环境:
开发工具:
MicrosoftVisualFoxpro6.0
数据库系统:
MicrosoftVisualFoxpro6.0
3系统分析
3.1需求分析
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。
使原本的旧的管理方法越来越不适应现在社会的发展。
许多人还停留在以前的手工操作。
这大大地阻碍了人类经济的发展。
为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。
(一)教育系统学生管理现状分析
学校工作流程分析
学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。
新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。
(二)学校具体需求分析
学生:
对各科成绩的查询
任课老师:
输入并维护所教科目的学生成绩
教务处:
学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护。
通过研究调查,本系统需以下功能:
综合学生信息、学生成绩以及信息查询等信息。
方便用户了解和管理学生的全面动态信息。
良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。
3.2可行性分析
目的:
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。
经济性:
由于学校等中小型管理系统并不复杂,且VisualFoxpro6.0本身要求的运行环境不高,所以一般Windows2000以上的系统环境都可以使用。
实用性:
本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如
4总体设计
4.1设计目标
本系统可以能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。
大节省了学校能源。
并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。
方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。
为学校增加了财富。
数据库分析
用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
4.2项目规划
学生管理系统是各大中专院校不可缺少的一部分,是一个VF数据库开发应用程序,它主要包括用户登录、学生信息输入修改、学生信息查询以及学生成绩输入、学生成绩查询、系统用户管理等几个页面,因而该系统具有较强的实用性。
4.3系统功能图
5系统详细设计
5.1数据库设计
(1)deandma.dbf,见表1
表1
字段名
数据类型
备注
班级
Char(8)
主键Notnull
系
Char(10)
Notnull
专业
Char(14)
Notnull
(2)grade.dbf,见表2
表2
字段名
数据类型
备注
学号
Char(8)
主键Notnull
班级
Char(10)
Notnull
课程
Char(18)
Notnull
成绩
Int(5)
Notnull
学期
Char
(2)
Notnull
备注
Memo
Null
(3)stduents.dbf,见表3
表3
字段名
数据类型
备注
班级
Char(8)
主键Notnull
学号
Char(8)
Notnull
姓名
Char(8)
Notnull
性别
Char(6)
NotNull
出生日期
Datetime
Null
政治面貌
Char(8)
Null
身份证号码
Char(16)
Null
入学时间
Datetime
Null
籍贯
Char(16)
Null
家庭住址
Char(28)
Null
邮政编码
Char(6)
Null
照片
General
Null
备注
Memo
Null
(4).dbf,见表4
表4用户信息表
字段名
数据类型
备注
姓名
Char(8)
主键Notnull
密码
Char(6)
Notnull
标识
Logical
Notnull
5.2登陆界面设计
“进入”按钮的click事件添加如下的代码:
seleyonghu
ifallt(t
else
if
messagebox("密码为空,请输入!
",64,"提示")
else
n=n+1
locatefor
.and.
iffound()
if.and.标识
checked=1
thisform.release
domenu.mpr
else
if
messagebox("你不是管理员!
",48,"警告")
else
checked=0
cyonghu=allt(姓名)
cmima=allt(密码)
thisform.release
domenu.mpr
endif
endif
else
ifn>=3
messagebox("你不是合法用户,请与管理员联系!
",48,"警告")
thisform.release
clearevent
quit
else
""
endif
endif
endif
endif
“取消”按钮的click事件添加如下的代码
nr=messagebox("你选择了退出登录,是否退出?
",68,"用户登录")
ifnr=6
thisform.release
quit
endif
5.3学生信息录入
“增加”按钮的click事件添加如下的代码:
ifthis.caption=="增加"
messagebox("班级、学号和姓名必须填充!
!
",64,"提示")
else
locatefor
if!
eof()
=messagebox("此学号已经存在,请重新输入!
",64,"提示")
else
selestudents
appendblank
replace班级with
姓名with
入学时间with籍贯with
家庭住址with
备注withwith
if
replace性别with
else
replace性别with
endif
ifalltrim(bo5.value)==""
replace政治面貌with
else
replace政治面貌with
endif
&&if
if!
pictemp==""
waitwindows"正在导入相片,请等待!
......."at100,40timeout2nowait
&&
appendgeneralstudents.照片from"&pictemp"
endif
pictemp=""
this.caption="继续"
endif
endif
else
this.caption="增加"
endif
5.4学生信息修改
“修改”按钮的click事件添加如下的代码:
iththisform
selestudents
locateforallt(学号)=allt(.text1.value)
ifallt(学号)==allt(.text1.value)
replace学号withallt(.text1.value),姓名withallt(.text2.value),邮政编码withallt(.text3.value),;
出生日期with.text4.value,入学时间with.text6.value,籍贯withallt(.text7.value),;
家庭住址withallt(.text8.value),身份证号码withallt(.text9.value),性别withallt(.combo4.value),;
政治面貌withallt(.combo5.value),备注withallt(.edit1.value)
if!
pictemp==""
waitwindows"正在导入相片,请等待!
......."at100,40timeout2nowait
appendgeneral照片from"&pictemp"
endif
endif
selels
locateforallt(学号)=allt(.text1.value)
ifallt(学号)==allt(students.学号)
replace学号withstudents.学号,姓名withstudents.姓名,邮政编码withstudents.邮政编码,;
出生日期withstudents.出生日期,入学时间withstudents.入学时间,籍贯withstudents.籍贯,;
家庭住址withstudents.家庭住址,身份证号码withstudents.身份证号码,性别withstudents.性别,;
政治面貌withstudents.政治面貌,备注withstudents.备注,照片withstudents.照片
endif
pictemp=""
this.enabled=.f.
endwith
5.5学生信息查询
“定位查询”按钮的click事件添加如下的代码
if
messagebox("请输入学号或姓名!
",64,"提示")
else
selestuls
locatefor
iffound()
gorecn()
else
waitwindowat18,38nowait'没有找到你要查询的信息!
'
endif
endif
thisform.refresh
“第一个”按钮的click事件添加如下的代码
selestuls
skip-1
ifbof()
this.enabled=.f.
messagebox("已经到第一条记录了!
",64,"提示")
gotop
else
gorecn()
endif
“单个查询”按钮的click事件添加如下的代码
nxx=1
doformxxxg
5.6系管理表单设计
“增加”按钮的click事件添加如下的代码
setordertotag
setsafetyoff
if
messagebox("系名为空,请输入!
",64,"提示")
else
locatefor
if.not.eof()
messagebox("系名已经存在,请重新输入!
",48,"提示")
else
appendblank
replacedeandma.系with
this
endif
&&重新显示list列表
endif
“删除”按钮的click事件添加如下的代码
Setsafetyoff
ifthis.caption=="取消"
this.caption="删除"
else
if
messagebox("缺少完整信息,无法删除!
",0+48,"警告")
else
nn=messagebox("是否确定删除此系单位,其所属的专业班级的数据库都将删除!
",1+48,"警告")
ifnn==1
t=0
usedata\deandma
gotop
dowhile.not.eof()
if
delete
pack
t=1
endif
skip
enddo
ift==0
messagebox("将删除的内容不存在,请重新输入。
",60,"提示")
endif
endif
&&重新显示List列表
endif
endif
thisform.refresh
5.7班级管理
“增加”按钮的click事件添加如下的代码
setordertotag
setsafetyoff
if
messagebox("班级名为空,请输入!
",64,"提示")
else
locatefor
if.not.eof()
messagebox("班级名已经存在,请重新输入!
",48,"提示")
else
locatefor
ifalltrim(deandma.班级)==""
replacedeandma.班级with
else
appendblank
replacedeandma.系with
replacedeandma.专业with
replacedeandma.班级with
endif
endif
&&重新显示list列表
endif
“删除”按钮的click事件添加如下的代码
Setsafetyoff
ifthis.caption=="取消"
this.caption="删除"
else
if
=messagebox("缺少完整信息,无法删除!
",0+48,"警告")
else
usedeandmaexclusive
nn=messagebox("是否确定删除此班级,与其相关的数据都将删除!
",1+48,"警告")
ifnn==1
t=0
locatefor
delete
pack
t=1
ift==0
messagebox("将删除的内容不存在,请重新输入。
",64,"提示")
endif
endif
&&重新显示List列表
endif
endif
thisform.refresh
5.8学生成绩录入
“确定”按钮的click事件添加如下的代码
selegrade
ifchengji==""
tt=messagebox("想输入单科成绩吗?
",4+32,"提示")
iftt==6
else
endif
else
*locateforallt(学号)=xuehao
*ifeof()
locateforallt(课程)=kecheng
ifallt(学号)=="".and.allt(班级)==banji
repl学号withxuehao
repl成绩withval(chengji)
repl学期withxueqi
else
*appendblank
*repl学号withxuehao
*repl班级withbanji
*repl课程withkecheng
*repl成绩withval(chengji)
*repl学期withxueqi
*endif
*else
locateforallt(学号)=xuehao.and.allt(课程)==kecheng.and.allt(学期)==xueqi
ifeof()
appendblank
repl学号withxuehao
repl班级withbanji
repl课程withkecheng
repl成绩withval(chengji)
repl学期withxueqi
else
tt=messagebox("该科的成绩已存在,是否覆盖?
",4+32+256,"提示")
iftt==6
repl成绩withval(chengji)
endif
endif
endif
endif
“查询”按钮的click事件添加如下的代码
selels
if
messagebox("请输入学号或姓名!
",64,"提示")
else
locatefor
ifeof()
messagebox("该班级没有此人!
!
",64,"提示")
gonhere
else
endif
endif
5.9修改学生成绩
“快速查询”按钮的click事件添加如下的代码
selelsbj
if
messagebox("请输入学号或姓名!
",16,"提示")
else
locatefor
ifeof()
messagebox("本班级没有此人,请重新输入!
",64,"提示")
else
xuehao=allt(学号)
endif
endif
“下一位”按钮的click事件添加如下的代码
if
selelsbj
skip1
ifeof()
this.enabled=.f.
messagebox("已经到最后一条记录了!
",48,"提示")
gobottom
endif
xuehao=allt(学号)
5.10学生成绩查询
“补考统计”按钮的click事件添加如下的代码
if
messagebox("请选择班级!
",64,"提示")
else
doformbukao
endif
“定位查询”按钮的click事件添加如下的代码
if
messagebox("请输入学号或姓名!
",64,"提示")
else
locatefor
iffound()
lsxh=allt(students.学号)
lsxm=allt(students.姓名)
doformdgcj
else
messagebox("没有此人,请重新输入",64,"提示")
endif
endif
5.11用户管理
List1的init事件中添加的代码如下
seleyonghu
this.additem("管理员")
locatefor标识=.T.
dowhilefound()
this.additem("----"+姓名)
continue
enddo
gotop
locatefor标识=.F.
this.additem("普通用户")
dowhilefound()
this.additem("----"+姓名)
continue
enddo
“注册”按钮的click事件添加如下的代码
Setsafetyoff
seleyonghu
if
messagebox("用户名不能为空!
",0+48,"警告")
else
locatefor
if(.not.eof())
messagebox("此用户已存在,请重新输入!
",64,"警告")
else
if
messagebox("密码不能为空!
",0+48,"警告")
else
if
appendblank
repl姓名with
密码with
if
repl标识with.T.
else
repl标识with.F.
endif
else
tt=messagebox("确认密码错误,请重新输入!
",0+48,"警告")
iftt==1
endif
endif
endif
endif
endif
“删除”按钮的click事件添加如下的代码
if
messagebox("请选择或输入用户名",64,"提示")
else
useyonghu
locatefor
ifeof()
messagebox("请选择或输入正确的用户名",64,"提示")
else
tt=messagebox("一定要删除吗?
",4+48,"删除确认")
iftt==6
delete
pack
endif
endif
endif
5.12修改用户密码
“修改”按钮的click事件添加如下的代码
seleyonghu
if
else
locatefor
ifeof()
messagebox("此用户不存在,请重新输入!
",64,"提示")
else
if
messagebox("密码错误,请重新输入!
",64,"提示")
else
if
messagebox("请输入新密码!
",64,"提示")
else
if
messagebox("确认密码错误,请重新输入!
",64,"提示")
else
repl密码with
thisform.release
endif
endif
endif
endif
endif
5.13关于系统
退出系统
ifmessagebox("是否退出学生信息官系统?
",36,"学生信息管理系统")=6
Cl