VFP课程设计学生信息管理系统.docx
- 文档编号:9072581
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:25
- 大小:815.45KB
VFP课程设计学生信息管理系统.docx
《VFP课程设计学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《VFP课程设计学生信息管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
VFP课程设计学生信息管理系统
广西大学数学与信息科学学院
《数据库开发与应用》
课程设计报告
题目:
学生信息管理系统
班级:
信息与计算科学121
学号:
1211100238
姓名:
李华
日期:
二〇一四年六月
前言
随着学校的规模不断扩大,学生数量急剧增加,有关学生信息量也成倍增长。
面对庞大的信息量需要有学生成绩管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
目前社会上信息管理系统发展飞快,各个企业事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生信息管理系统也是有了很大的发展,商业化的学生信息管理软件也不少。
但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作,其主要实现了对高校从学生学籍信息录入、学生选课、学生信息管理、课程信息、任课教师查询、到学生成绩管理。
整个系统分为学生信息管理、课程信息查询、任课教师查询、、成绩管理、系统管理四大模块。
其中,学生信息管理模块包括学生信息录入、学生信息修改。
学生课程信息管理模块包括学生选课、学生课程查询。
学生成绩管理模块包括学生成绩录入、学生成绩查询。
系统管理模块包括用户权限、密码修改、退出系统。
整个系统从操作简便、灵活、实用的目的要求出发完成学生信息管理系统全过程。
用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。
1、系统分析
1.1系统介绍
本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。
为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,减少很多不必要的资源,不用像以前那样用冗余的纸张式的管理。
大节省了学校能源。
并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。
现提出如下的系统开发目标:
1.系统应具有实用性、可靠性和适用性,同时注意到先进性。
2.对各个数据库进行动态管理,防止混乱。
3.能够按照用户选择的不同的条件进行简单查询和复合查询。
4.能够对查询结果进行分类汇总,实现报表打印。
5.注意数据的安全性,具有数据备份和恢复的功能。
6.方便用户的操作,尽量减少用户的操作。
本课程设计主要解决与学生成绩信息管理相关的问题,设计一个功能齐全的学生管理信息系统。
同时实现学生相关信息的添加、删除、修改和查询;学生选课的管理,添加、修改、删除;学生成绩的录入和对学生成绩的分析等主要功能。
1.2需求分析
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。
使原本的旧的管理方法越来越不适应现在社会的发展。
许多人还停留在以前的手工操作。
这大大地阻碍了人类经济的发展。
为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。
(一)教育系统学生管理现状分析
学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。
新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。
这就需要一个功能强大的学生管理系统来做学院工作者的左右手。
(二)学校具体需求分析
学生:
对各科成绩的查询
任课老师:
输入并维护所教科目的学生成绩
教务处:
学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护。
通过研究调查,本系统需以下功能:
综合学生信息、学生成绩以及信息查询等信息;方便用户了解和管理学生的全面动态信息;良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。
1.2可行性分析
可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。
首先,从经济上来看,用VFP开发的学生信息管理系统经济成本低,功能足够满足日常需要。
由于学校等中小型管理系统并不复杂,且VisualFoxPro本身要求的运行环境不高,所以一般Windows2000以上的系统环境都可以使用。
其次,从实用性来看,本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如,足够满足学生相关信息的添加、删除、修改和查询、学生选课的管理、添加、修改、删除、学生成绩的录入、课程信息的查询和对学生成绩的分析等主要功能。
2、系统设计
学生信息管理系统对于学生信息管理有非常大的作用,这些管理包括增、删、改,以及查询等功能,同时还应实现对数据信息访问权限控制。
下面从软件的整体结构设计角度来进行设计。
2.1系统流程图
2.2数据库需求分析
2.3数据库逻辑结构设计
2.3.1用户密码表:
字段名
数据类型
可否为空
说明
账户
Char(5)
NOTNULL
主索引
密码
Char(6)
NOTNULL
Qx(权限)
Num
(1)
2.3.2学生信息表:
字段名
数据类型
可否为空
说明
学号
Char(5)
NOTNULL
主索引
姓名
Char(8)
NOTNULL
性别
Char
(2)
NOTNULL
学院
Char(8)
NOTNULL
出生日期
Char(8)
NOTNULL
2.3.3课程信息表:
字段名
数据类型
可否为空
说明
课程代码
Char
(2)
NOTNULL
主索引
课程名
Char(10)
NOTNULL
课时数
Char
(2)
NOTNULL
学分
Char
(1)
NOTNULL
课程类别
Char(4)
NOTNULL
课程教师
Char(6)
NOTNULL
教师工号
Char(5)
NOTNULL
2.3.4学生成绩表:
字段名
数据类型
可否为空
说明
学号
Char(5)
NOTNULL
主索引
姓名
Char(6)
NOTNULL
课程名
Char(10)
NOTNULL
课程类别
Char(4)
NOTNULL
成绩
Char
(2)
NOTNULL
学分
Char
(1)
NOTNULL
课程代码
Char
(2)
NOTNULL
2.4界面设计
界面设计设计应遵循简洁美观、方便实用的基本原则。
具体设计如下:
2.4.1主窗体设计
主窗体包括登陆界面和主界面:
2.4.2学生信息管理界面设计
2.4.3课程信息查询界面设计
2.4.4任课教师查询界面设计
2.4.5成绩查询与成绩管理界面设计
2.4.6密码修改与退出界面设计
2.5代码编写
2.5.1登录表单程序:
“登录”click事件:
if(N>2)
=messagebox("登录信息三次输入错误,不能使用本系统",16,"信息提示")
thisform.release
return&&退出,不执行下面语句
endif
setordertotag账户
seekthisform.text1.value&&定位数据表中的用户名
if(thisform.text2.value=账户密码.密码);
and(ThisForm.Optiongroup1.value=账户密码.qx)&&检查密码和权限是否正确
thisform.release
doform主界面with账户密码.qx&&打开主界面,并传达权限值
else
=messagebox("输入错误,请重新输入!
",48,"信息提示")
thisform.text1.setfocus&&将光标移到用户名框
N=N+1&&错误次数N+1
endif
“取消”click事件:
quit
表单init事件:
publicN
N=1
2.5.2学生信息管理表单程序:
(Click事件)
“查询”:
if.not.empty(alltrim(bo2.value))
select学生信息
locatefor姓名=alltrim(bo2.value)
if.not.found()
messagebox("学生不存在",48,"提示")
bo2.value=""
else
bo2.value=姓名
thisform.text2.value=学号
thisform.text3.value=姓名
thisform.text4.value=性别
thisform.text5.value=学院
thisform.text6.value=出生日期
endif
endif
select学生信息
locateforalltr(姓名)=alltr(bo2.value)
seleall姓名,学号,性别,学院,出生日期from学生信息;
wherealltr(姓名)==alltr(bo2.value)intocursortemp
withthisform.grd学生信息
.recordsourcetype=1
.recordsource="temp"
.columncount=6
.column1.header1.caption="姓名"
.column2.header1.caption="学号"
.column3.header1.caption="性别"
.column4.header1.caption="学院"
.column5.header1.caption="出生日期"
endwith
thisform.refresh
thisform.grd学生信息.setfocus
“清空”:
bo2.setfocus
bo2.value=""
bo2.value=""
thisform.text2.value=""
thisform.text3.value=""
thisform.text4.value=""
thisform.text5.value=""
thisform.text6.value=""
“修改”:
z=thisform.text2.value
a=thisform.text3.value
b=thisform.text4.value
c=thisform.text5.value
d=thisform.text6.value
update学生信息set姓名=awhere学号=z
update学生信息set性别=bwhere学号=z
update学生信息set学院=cwhere学号=z
update学生信息set出生日期=dwhere学号=z
messagebox("信息更新成功",48,"提示")
“注销”:
select学生信息
locatefor学号=alltrim(thisform.text2.value)
if.not.found()
messagebox("学生不存在",48,"提示")
else
a=thisform.text2.value
deletefrom学生信息where学号=a
messagebox("该生已成功注销",48,"提示")
endif
“添加”:
iflen(thisform.text2.value)=0orlen(thisform.text3.value)=0orlen(thisform.text4.value)=0orlen(thisform.text5.value)=0orlen(thisform.text6.value)=0
messagebox("输入信息不完整,请重新输入",48,"提示")
else
select学生信息
locatefor学号=alltrim(thisform.text2.value)
iffound()
messagebox("学号已存在",48,"提示")
thisform.text2.value=""
thisform.text2.setfocus
else
insertinto学生信息(姓名,学号,性别,学院,出生日期)values(thisform.text2.value,thisform.text3.value,thisform.text4.value,thisform.text5.value,thisform.text6.value)
messagebox("添加成功!
",48,"提示")
endif
endif
2.5.3课程信息查询表单程序:
(Click事件)
课程查询
“确定”1:
if.not.empty(alltrim(bo1.value))
select课程信息
locatefor课程代码=val(alltrim(bo1.value))
if.not.found()
messagebox("课程不存在",48,"提示")
bo1.value=""
else
bo2.value=课程名
thisform.text2.value=课程代码
thisform.text3.value=课程名
thisform.text4.value=课时数
thisform.text5.value=学分
thisform.text6.value=课程类别
thisform.text7.value=课程教师
thisform.text8.value=教师工号
endif
endif
“确定”2:
if.not.empty(alltrim(bo2.value))
select课程信息
locatefor课程名=alltrim(bo2.value)
if.not.found()
messagebox("课程不存在",48,"提示")
thisform.text1.value=""
else
bo1.value=课程代码
thisform.text2.value=课程代码
thisform.text3.value=课程名
thisform.text4.value=课时数
thisform.text5.value=学分
thisform.text6.value=课程类别
thisform.text7.value=课程教师
thisform.text8.value=教师工号
endif
endif
2.5.4教师任课查询表单程序:
(Click事件)
“查询”:
select课程信息
locateforalltr(课程教师)=alltr(bo1.value)
iffound()
seleall课程代码,课程名,课时数,学分,课程类别,课程教师,教师工号from课程信息;
wherealltr(课程教师)=alltr(bo1.value)intocursortemp
withthisform.grid1
.recordsourcetype=1
.recordsource="temp"
.columncount=10
.column1.header1.caption="课程代码"
.column2.header1.caption="课程名"
.column3.header1.caption="课时数"
.column4.header1.caption="学分"
.column5.header1.caption="课程类别"
.column6.header1.caption="任课教师"
.column7.header1.caption="教师工号"
endwith
thisform.refresh
thisform.grid1.setfocus
endif
“清空”:
bo1.value=""
bo1.setfocus
2.5.6成绩查询表单程序:
(Click事件)
“查询”:
if.not.empty(alltrim(bo1.value))
select学生信息
locatefor姓名=(alltrim(bo1.value))
if.not.found()
messagebox("学生姓名不能为空",48,"提示")
bo1.value=""
else
bo1.value=姓名
thisform.text1.value=学号
thisform.text2.value=性别
thisform.text3.value=学院
select学生成绩
locatefor姓名=(alltrim(bo1.value))
thisform.text4.value=高等数学
thisform.text5.value=大学英语
thisform.text6.value=大学物理
thisform.text7.value=大学写作
thisform.text8.value=计算机技术
endif
endif
select学生成绩
locateforalltr(姓名)=alltr(bo1.value)
seleall姓名,高等数学,大学英语,大学物理,大学写作,计算机技术from学生成绩;
wherealltr(姓名)==alltr(bo1.value)intocursortemp
withthisform.grid2
.recordsourcetype=1
.recordsource="temp"
.columncount=6
.column1.header1.caption="姓名"
.column2.header1.caption="高等数学"
.column3.header1.caption="大学英语"
.column4.header1.caption="大学物理"
.column5.header1.caption="大学写作"
.column6.header1.caption="计算机技术"
endwith
thisform.refresh
thisform.grid2.setfocus
“清空”:
bo1.value=""
bo1.setfocus
2.5.7学生成绩管理表单程序:
(Click事件)
“查询”:
if.not.empty(alltrim(bo1.value))
select学生成绩
locatefor姓名=(alltrim(bo1.value))
if.not.found()
messagebox("学生姓名不能为空",48,"提示")
bo1.value=""
else
bo1.value=姓名
thisform.text3.value=姓名
thisform.text4.value=高等数学
thisform.text5.value=大学英语
thisform.text6.value=大学物理
thisform.text7.value=大学写作
thisform.text8.value=计算机技术
endif
endif
select学生成绩
locateforalltr(姓名)=alltr(bo1.value)
seleall姓名,高等数学,大学英语,大学物理,大学写作,计算机技术from学生成绩;
wherealltr(姓名)==alltr(bo1.value)intocursortemp
withthisform.grid2
.recordsourcetype=1
.recordsource="temp"
.columncount=6
.column1.header1.caption="姓名"
.column2.header1.caption="高等数学"
.column3.header1.caption="大学英语"
.column4.header1.caption="大学物理"
.column5.header1.caption="大学写作"
.column6.header1.caption="计算机技术"
endwith
thisform.refresh
thisform.grid2.setfocus
“添加”:
iflen(thisform.text3.value)=0orlen(thisform.text4.value)=0orlen(thisform.text5.value)=0orlen(thisform.text6.value)=0orlen(thisform.text7.value)=0orlen(thisform.text8.value)=0
messagebox("输入信息不完整,请重新输入",48,"提示")
else
select学生成绩
locatefor姓名=alltrim(thisform.text3.value)
iffound()
messagebox("成绩已存在",48,"提示")
else
insertinto学生成绩(姓名,高等数学,大学英语,大学物理,大学写作,计算机技术)values(thisform.text3.value,thisform.text4.value,thisform.text5.value,thisform.text6.value,thisform.text7.value,thisform.text8.value)
messagebox
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 课程设计 学生 信息管理 系统