您的当前位置:首页正文

学生信息管理系统论文范文_计算机毕业设计论文范文_优秀毕业论文范文

2021-08-19 来源:客趣旅游网


1系统技术及运行环境 1.1 Visual Foxpro 6.0简介

Visual Foxpro 6.0是计算机优秀的数据管理系统软件之一,正如其名称中的“Visual”一样,它采用了可视化的、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了应用系统的开发过程,并提高了系统的模块性和紧凑型。是新一代的小型数据库管理系统的杰出代表,它以其强大的性能、完整而又丰富的工具、较高的处理速度、友好的界面以及较完备的兼容性,备受广大用户的欢迎。面前,Visual Foxpro 6.0是用户收集信息、查询数据、创建集成数据库系统、进行应用系统开发较为理想的微机数据库管理系统。 1.2系统开发及运行环境

该运行环境的规定是保证本需求说明的功能得到实际真正体现的基础。 (1)运行环境Windows98或更高版本的操作系统 数据库系统:Microsoft Visual Foxpro 6.0 (2)开发环境:

开发工具:Microsoft Visual Foxpro 6.0 数据库系统:Microsoft Visual Foxpro 6.0

2 系统分析

2.1需求分析

21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。

(一)教育系统学生管理现状分析 学校工作流程分析

学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。

新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。

(二)学校具体需求分析 学生:对各科成绩的查询

任课老师:输入并维护所教科目的学生成绩

教务处: 学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对

学生的信息进行必要的维护。

通过研究调查,本系统需以下功能:

综合学生信息、学生成绩以及信息查询等信息。 方便用户了解和管理学生的全面动态信息。

良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。 2.2可行性分析

目的:可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。 经济性:

由于学校等中小型管理系统并不复杂,且Visual Foxpro 6.0本身要求的运行环境不高,所以一般Windows 2000以上的系统环境都可以使用。

实用性:

本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如

3总体设计

3.1 设计目标

本系统可以能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。

方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。

数据库分析

用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。 3.2项目规划

学生管理系统是各大中专院校不可缺少的一部分,是一个VF数据库开发应用程序,它主要包括用户登录、学生信息输入修改、学生信息查询以及学生成绩输入、学生成绩查询、系统用户管理等几个页面,因而该系统具有较强的实用性。

1

3.3系统功能图

学生信息管理系统登录 系统主界面 学生信息管学生课程信息管学生成绩信息管系统管理 学生信息录入

学生信息录入 学生信息录入 系管理 专业管理 班级管理 课程管理 2

学生成绩录入 学生成绩管理 学生班级管理 用户管理 修改密码 退出系统 4系统详细设计

4.1数据库设计

(1)deandma.dbf,见表1

表1

字段名 班级 系 专业

(2)grade.dbf,见表2

表2

字段名 学号 班级 课程 成绩 学期 备注 (3)stduents.dbf,见表3

表3

字段名 班级 学号 姓名 性别 出生日期 政治面貌 身份证号码 入学时间 籍贯 家庭住址 邮政编码 照片 备注

(4).dbf,见表4

3

数据类型 Char(8) Char(10) Char(14) 备注 主键Not null Not null Not null 数据类型 Char(8) Char(10) Char(18) Int (5) Char(2) Memo 备注 主键Not null Not null Not null Not null Not null Null 数据类型 Char(8) Char(8) Char(8) Char(6) Datetime Char(8) Char(16) Datetime Char(16) Char(28) Char(6) General Memo 备注 主键 Not null Not null Not null Not Null Null Null Null Null Null Null Null Null Null 表4 用户信息表

字段名 姓名 密码 标识

4.2登陆界面设计

数据类型 Char(8) Char(6) Logical 备注 主键 Not null Not null Not null

“进入”按钮的click事件添加如下的代码: sele yonghu

if allt(thisform.text1.value)==\"\"

messagebox(left(allt(thisform.label1.caption),6)+\"为空,请输入!

\提示\")

thisform.text1.setfocus else

if allt(thisform.text2.value)==\"\"

messagebox(\"密码为空,请输入!\提示\") thisform.text2.setfocus else n=n+1

locate for allt(姓名)=allt(thisform.text1.value);

4

.and. allt(密码)=allt(thisform.text2.value) if found()

if thisform.check1.value==1 .and. 标识 checked=1

thisform.release do menu.mpr else

if thisform.check1.value==1.and.!标识 messagebox(\"你不是管理员!\警告\") thisform.check1.value=0 else

checked=0

cyonghu=allt(姓名) cmima=allt(密码) thisform.release do menu.mpr endif endif else if n>=3

messagebox(\"你不是合法用户,请与管理员联系!\警告\")

thisform.release clear event quit else

messagebox(left(allt(thisform.label1.caption),6)+\"或密码错误,请重新

输入!\提示\")

thisform.text1.value=\"\" thisform.text1.setfocus thisform.text2.value=\"\"

endif endif endif endif

“取消”按钮的click事件添加如下的代码

nr=messagebox(\"你选择了退出登录,是否退出?\用户登录\") if nr=6

thisform.release

5

quit endif

4.3学生信息录入

“增加”按钮的click事件添加如下的代码: if this.caption==\"增加\"

if(thisform.combo3.displayvalue==\"(

选择)

\").or.(alltrim(thisform.text1.value)==\"\");

.or.(alltrim(thisform.text2.value)==\"\")

messagebox(\"班级、学号和姓名必须填充!!\提示\") else

locate for alltrim(thisform.text1.value)=alltrim(students.学号) if !eof()

=messagebox(\"此学号已经存在,请重新输入!\提示\") thisform.text1.value=\"\" thisform.text1.setfocus else sele students append blank

replace 班级 with alltrim(thisform.combo3.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);

6

家庭住址 with alltrim(thisform.text8.value),身份证号码with

alltrim(thisform.text8.value);

备注 with alltrim(thisform.edit1.value),邮政编码 with alltrim(thisform.text3.value)

if alltrim(thisform.combo4.value)==\"\"

replace 性别 with alltrim(thisform.combo4.displayvalue) else

replace 性别 with alltrim(thisform.combo4.value) endif

if alltrim(thisform.combo5.value)==\"\"

replace 政治面貌 with alltrim(thisform.combo5.displayvalue)

else

replace 政治面貌 with alltrim(thisform.combo5.value) endif

&& if .not.alltrim(thisform.label17.caption)==\"\" if !pictemp==\"\" wait windows \"正在导入相片,请等待!.......\" at 100,40 timeout 2 nowait && pictemp=thisform.label17.caption append general students.照片 from \"&pictemp\" endif

pictemp=\"\"

this.caption=\"继续\" endif endif else

thisform.command2.click this.caption=\"增加\" endif

4.4 学生信息修改

7

“修改”按钮的click事件添加如下的代码: ith thisform sele students

locate 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,入学时间 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 nowait append general 照片 from \"&pictemp\" endif endif

sele ls

locate 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.身份证号码,

8

性别 with students.性别,;

政治面貌 with students.政治面貌,备注 with students.备注,照片 with students.照片 endif

pictemp=\"\"

this.enabled=.f. endwith

4.5 学生信息查询

“定位查询”按钮的click事件添加如下的代码 if allt(thisform.text1.value)==\"\"

messagebox(\"请输入学号或姓名!\提示\") thisform.text1.setfocus else

sele stuls

locate for allt(学号)=allt(thisform.text1.value); .or.allt(姓名)=allt(thisform.text1.value) if found() go recn() else

wait window at 18,38 nowait '没有找到你要查询的信息!' endif

9

endif

thisform.grid1.refresh thisform.refresh

“第一个”按钮的click事件添加如下的代码 sele stuls skip -1 if bof()

this.enabled=.f.

thisform.commandgroup1.command3.enabled=.f. messagebox(\"已经到第一条记录了!\提示\") go top else

go recn() endif

thisform.commandgroup1.command2.enabled=.t. thisform.commandgroup1.command4.enabled=.t.

“单个查询”按钮的click事件添加如下的代码 nxx=1 do form xxxg

4.6系管理表单设计

“增加”按钮的click事件添加如下的代码

10

set order to tag

set safety off

if alltrim(thisform.text1.value)==\"\"

messagebox(\"系名为空,请输入!\提示\") thisform.text1.setfocus else

locate for deandma.系=alltrim(thisform.text1.value) if .not.eof()

messagebox(\"系名已经存在,请重新输入!\提示\") thisform.text1.value=\"\" thisform.text1.setfocus

else

append blank

replace deandma.系 with alltrim(thisform.text1.value) thisform.text1.value=\"\" thisform.text1.setfocus endif

thisform.list1.clear

thisform.list1.init &&重新显示list列表 thisform.list1.value=\"\" endif

“删除”按钮的click事件添加如下的代码 Set safety off

if this.caption==\"取消\" thisform.text2.value=\"\" thisform.text2.enabled=.f. thisform.label3.enabled=.f. this.caption=\"删除\"

thisform.command1.enabled=.t.

thisform.command2.caption=\"修改\" else

if alltrim(thisform.text1.value)==\"\"

messagebox(\"缺少完整信息,无法删除!\警告\") thisform.text1.setfocus else

thisform.list1.value=alltrim(thisform.text1.value)

nn=messagebox(\"是否确定删除此系单位,其所属的专业班级的数据库都将删除!\警告\")

11

if nn==1

t=0

use data\\deandma go top

do while .not.eof()

if alltrim(系)==alltrim(thisform.text1.value) delete pack t=1 endif skip

enddo if t==0

messagebox(\"将删除的内容不存在,请重新输入。\提示\") thisform.text1.setfocus endif endif

thisform.text1.value=\"\" thisform.list1.requery thisform.list1.clear

thisform.list1.init &&重新显示List列表

thisform.text1.value=alltrim(thisform.list1.value) endif endif

thisform.refresh

12

4.7班级管理

“增加”按钮的click事件添加如下的代码 set order to tag set safety off

if alltrim(thisform.text1.value)==\"\"

messagebox(\"班级名为空,请输入!\提示\")

thisform.text1.setfocus else

locate for deandma.班级=alltrim(thisform.text1.value) if .not.eof()

messagebox(\"班级名已经存在,请重新输入!\提示\") thisform.text1.value=\"\" thisform.text1.setfocus else

locate for deandma.专业=alltrim(thisform.combo2.value) if alltrim(deandma.班级)==\"\"

replace deandma.班级 with alltrim(thisform.text1.value) else

append blank

replace deandma.系 with alltrim(thisform.combo1.value) replace deandma.专业 with alltrim(thisform.combo2.value) replace deandma.班级 with alltrim(thisform.text1.value) endif

thisform.text1.value=\"\"

13

thisform.text1.setfocus

endif

thisform.combo2.click &&重新显示list列表 thisform.list1.value=\"\" endif

“删除”按钮的click事件添加如下的代码 Set safety off

if this.caption==\"取消\" thisform.text2.value=\"\" thisform.text2.enabled=.f.

thisform.label5.enabled=.f. this.caption=\"删除\"

thisform.commandgroup1.command1.enabled=.t. thisform.commandgroup1.command2.caption=\"修改\" else

if alltrim(thisform.text1.value)==\"\"

=messagebox(\"缺少完整信息,无法删除!\警告\") thisform.text1.setfocus else

use deandma exclusive

thisform.list1.value=alltrim(thisform.text1.value)

nn=messagebox(\"是否确定删除此班级,与其相关的数据都将删除!\警告\") if nn==1 t=0

locate for alltrim(deandma.班级)=alltrim(thisform.text1.value) delete pack t=1

if t==0

messagebox(\"将删除的内容不存在,请重新输入。\提示\") thisform.text1.setfocus endif endif

thisform.text1.value=\"\" thisform.list1.requery

thisform.combo2.click &&重新显示List列表

thisform.text1.value=alltrim(thisform.list1.value)

14

endif

endif

thisform.refresh

4.8学生成绩录入

“确定”按钮的click事件添加如下的代码 xuehao=allt(thisform.text1.value) banji=allt(thisform.combo3.value)

kecheng=allt(thisform.combo4.value) xueqi=allt(thisform.combo5.value) chengji=allt(thisform.text2.value) sele grade if chengji==\"\"

tt=messagebox(\"想输入单科成绩吗?\提示\") if tt==6

thisform.text2.setfocus else endif

else

*locate for allt(学号)=xuehao *if eof()

locate for allt(课程)=kecheng

if allt(学号)==\"\".and.allt(班级)==banji repl 学号 with xuehao

repl 成绩 with val(chengji) repl 学期 with xueqi

15

else

* append blank

* repl 学号 with xuehao * repl 班级 with banji * repl 课程 with kecheng

* repl 成绩 with val(chengji) * repl 学期 with xueqi *endif *else

locate for allt(学号)=xuehao .and. allt(课程)==kecheng .and. allt(学期)==xueqi

if eof()

append blank

repl 学号 with xuehao repl 班级 with banji repl 课程 with kecheng

repl 成绩 with val(chengji) repl 学期 with xueqi else

tt=messagebox(\"该科的成绩已存在,是否覆盖?\提示\") if tt==6

repl 成绩 with val(chengji) endif endif endif

thisform.Command2.click

thisform.command3.enabled=.f. endif

“查询”按钮的click事件添加如下的代码 sele ls

if allt(thisform.text3.value)==\"\"

messagebox(\"请输入学号或姓名!\提示\") else

locate for 学号=allt(thisform.text3.value).or.=allt(thisform.text3.value) if eof()

messagebox(\"该班级没有此人!!\提示\") thisform.text3.value=\"\" thisform.text3.setfocus

16

姓名

go nhere

else

thisform.text1.value=学号 endif endif

4.9 修改学生成绩

“快速查询”按钮的click事件添加如下的代码 sele lsbj

if allt(thisform.text1.value)==\"\"

messagebox(\"请输入学号或姓名!\提示\") thisform.text1.setfocus else

locate for 学号=allt(thisform.text1.value).or.=allt(thisform.text1.value) if eof()

messagebox(\"本班级没有此人,请重新输入!\提示\") thisform.text1.value=\"\" thisform.text1.setfocus else

xuehao=allt(学号)

17

姓名

thisform.label8.caption=姓名

thisform.label9.caption=学号 thisform.combo4.click endif endif

“下一位”按钮的click事件添加如下的代码 thisform.command2.enabled=.t. thisform.command4.enabled=.t.

if !allt(thisform.combo3.value)==\"\" sele lsbj skip 1

if eof()

this.enabled=.f.

thisform.command5.enabled=.f.

messagebox(\"已经到最后一条记录了!\提示\") go bottom endif

xuehao=allt(学号)

thisform.label8.caption=allt(姓名) thisform.label9.caption=allt(学号)

18

4.10学生成绩查询

“补考统计”按钮的click事件添加如下的代码 if allt(thisform.combo3.value)==\"\" messagebox(\"请选择班级!\提示\") else

bkbj=thisform.combo3.value bkxq=thisform.combo4.value do form bukao endif

“定位查询”按钮的click事件添加如下的代码 if allt(thisform.text1.value)==\"\"

messagebox(\"请输入学号或姓名!\提示\") thisform.text1.setfocus

else

locate for allt(students.学号)=allt(thisform.text1.value).or.; allt(students.姓名)=allt(thisform.text1.value) if found()

lsxh=allt(students.学号) lsxm=allt(students.姓名)

buxq=allt(thisform.combo4.value) do form dgcj

19

else

messagebox(\"没有此人,请重新输入\提示\") endif endif

4.11用户管理

List1的init事件中添加的代码如下 sele yonghu

this.additem(\"管理员\") locate for 标识=.T. do while found()

this.additem(\"----\"+姓名) continue enddo

go top

locate for 标识=.F.

this.additem(\"普通用户\") do while found()

this.additem(\"----\"+姓名) continue enddo

“注册”按钮的click事件添加如下的代码

20

Set safety off

sele yonghu

if alltrim(thisform.text1.value)==\"\"

messagebox(\"用户名不能为空! \警告\") thisform.text1.setfocus else

locate for 姓名=alltrim(thisform.text1.value) if(.not. eof())

messagebox(\"此用户已存在,请重新输入!\警告\") thisform.text1.value=\"\" thisform.text1.setfocus

else

if alltrim(thisform.text2.value)==\"\"

messagebox(\"密码不能为空! \警告\") thisform.text2.setfocus else

if (thisform.text2.value)==(thisform.text3.value) append blank

repl 姓名 with alltrim(thisform.text1.value),; 密码 with alltrim(thisform.text2.value) if thisform.check1.value==1 repl 标识 with .T. else

repl 标识 with .F. endif

thisform.text1.value=\"\" thisform.text2.value=\"\" thisform.text3.value=\"\" thisform.text1.setfocus thisform.text3.enabled=.f.

thisform.label4.enabled=.f. thisform.list1.clear thisform.list1.init else

tt=messagebox(\"确认密码错误,请重新输入!\警告\") if tt==1

thisform.text3.enabled=.t. thisform.label4.enabled=.t. thisform.text3.value=\"\"

21

thisform.text3.setfocus

endif endif endif endif endif

“删除”按钮的click事件添加如下的代码 if allt(thisform.text1.value)==\"\"

messagebox(\"请选择或输入用户名\提示\") thisform.text1.setfocus else

use yonghu

locate for 姓名=allt(thisform.text1.value); .and.密码=allt(thisform.text2.value) if eof()

messagebox(\"请选择或输入正确的用户名\提示\") thisform.text1.value=\"\" thisform.text2.value=\"\" thisform.text1.setfocus else

tt=messagebox(\"一定要删除吗?\删除确认\") if tt==6 delete pack endif

thisform.list1.clear thisform.list1.init thisform.list1.click endif endif

22

4.12修改用户密码

“修改”按钮的click事件添加如下的代码 sele yonghu

if allt(thisform.text1.value)==\"\" thisform.text1.setfocus else

locate for allt(姓名)=allt(thisform.text1.value) if eof()

messagebox(\"此用户不存在,请重新输入!\提示\") thisform.text1.value=\"\" thisform.text1.setfocus() else

if !allt(密码)==allt(thisform.text2.value) messagebox(\"密码错误,请重新输入!\提示\") thisform.text2.value=\"\" thisform.text2.setfocus() else

if allt(thisform.text3.value)==\"\"

messagebox(\"请输入新密码!\提示\") thisform.text3.setfocus else

if !allt(thisform.text3.value)==allt(thisform.text4.value) messagebox(\"确认密码错误,请重新输入!\提示\") thisform.text4.value=\"\" thisform.text4.setfocus else

23

repl 密码 with allt(thisform.text4.value) thisform.release endif endif endif endif endif

4.13关于系统

退出系统

if messagebox(\"是否退出学生信息官系统?\学生信息管理系统\")=6 Close all &&关闭所有打开的文件

Clear Events &&结束事件循环,退出图书管理系统 Endif

24

5 结论

学生信息管理系统是学校信息管理系统的一个重要组成部分。他为其他系统(如学校图书管理系统、学校档案管理系统、教学管理系统、总务后勤管理系统等)提供学生的基本信息,同时它也需要如教学管理系统提供课程设置数据等。这些系统在具体应用中构成一个大系统,相互调用对方的数据。由以上分析,我们可以充分认识到设计并开发一个学生信息管理系统的必要性和迫切性,本次设计和开发的学生信息管理系统应符合学校学生信息管理的规定,满足对学校学生信息管理的需要,并达到操作过程中的直观,方便,实用,安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。SIMS通过教育网络或互联网把整个学校的学生信息汇聚起来,为学校教育主管部门提供全面及时的学生信息,方便管理,同时亦可通过校园网扩展各类信息化应用,共享学生信息。

25

参考文献

1.Visual FoxPro 6.0数据库应用实例完全解析.北京:人民邮电出版社.2006年 2.Visual FoxPro 软件项目开发实例.北京:电子工业出版社.2005年 3. 周佩德.数据库原理及应用.北京:电子工业出版社.2005年

4.史济民、汤观全等.Visual FoxPro 及其应用系统开发.北京:清华大学出版社.2002 5.郑砚、周青.Visual FoxPro 8.0实用编程100例.北京:中国铁道出版社.2004

6.伍军良.Visual FoxPro 6.0/Foxbase 课程设计案例精编.北京:中国水利水电出版社.2001 7.邵阳、谷宇等.Visual FoxPro 6.0数据库系统开发实例导航.北京:人民邮电出版社.2000 8.网冠科技.Visual FoxPro 6.0时尚变编程百例.北京:机械工业出版社.2005 9.夏辉 王冬等.Visual FoxPro 7.0函数和系统变量手册.北京:清华大学出版社.2004 10.陈华生 单启成.Visual FoxPro 5.0教程.苏州:苏州大学出版社.2002 11.钱培德 朱巧明.Visual FoxPro 5.0学习指导.苏州:苏州大学出版社.2002

26

因篇幅问题不能全部显示,请点此查看更多更全内容