VF程序设计《学生成绩管理》.docx
- 文档编号:12633644
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:19
- 大小:695.55KB
VF程序设计《学生成绩管理》.docx
《VF程序设计《学生成绩管理》.docx》由会员分享,可在线阅读,更多相关《VF程序设计《学生成绩管理》.docx(19页珍藏版)》请在冰豆网上搜索。
VF程序设计《学生成绩管理》
目录
一、实习目的…………………………………………………………02
二、本组课题及本人任务……………………………………………02
三、系统需求调查分析………………………………………………02
四、系统总体设计
1、系统设计目标…………………………………………………02
2、主要软件需求…………………………………………………02
3、功能模块与系统结构…………………………………………03
五、系统详细设计
1、系统登录………………………………………………………04
2、学生信息管理
1)学生信息录入………………………………………………05
2)学生信息修改………………………………………………05
3、学生成绩管理
1)学生成绩录入………………………………………………07
2)学生成绩修改………………………………………………08
4、查询与统计
1)学生信息查询………………………………………………09
2)学生成绩查询………………………………………………09
3)报表打印……………………………………………………10
5、系统管理
1)用户管理……………………………………………………10
2)密码修改……………………………………………………11
6、系统维护
1)关于…………………………………………………………12
2)退出…………………………………………………………13
六、设计体会……………………………………………………………13
七、参考书目……………………………………………………………13
一、实习目的
两周的时间里,在任课老师毛政利老师和马千里老师的指导下,掌握学生成绩管理系统的分析及设计方法,学会综合运用VFP数据库知识,重点掌握数据的添加、修改、查询功能。
二、本组课题及本人任务
本组设计课题为学生成绩管理系统,组员有王大海、张国岭、张卫华、冯伟霞实习分为四部分:
王大海:
系统主程序及查询与统计设计;
张国岭:
学生信息管理设计;
张卫华:
系统管理设计;
冯伟霞:
学生成绩管理设计
三、系统需求调查分析
学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。
由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。
另外,学生的成绩要用到学校教务管理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。
传统手工的学生成绩管理,管理过程繁琐而复杂,执行效率低,并且易于出错。
通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了学生成绩管理的系统化、规范和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。
需求分析简单的说就是分析用户的要求,通过调查、收集与分析,获得用户对数据库的如下要求:
3.1信息要求:
指用户需要从数据库中获得信息的内容与性质。
本系统需要的输入数据:
学生信息(学号,姓名,班级,性别,出生日期)、课程信息(课程名,满分)、考生成绩;输出数据:
学生成绩报表、学生信息报表、课程报表、成绩报表。
3.2处理要求:
指用户要完成什么处理功能。
本系统功能需求可归纳如下:
1数据登记
登记功能用于把各种手填的数据及时登记系统定义表中,还能修改这些数据(学生信息、课程信息、成绩)。
2数据浏览
能浏览学生信息、课程信息、成绩。
3数据打印
能打印学生信息表、课程信息表、成绩表(单课成绩和总分成绩)。
4数据统计
能统计各班学生总数和男女人数,统计各班学生的总分、排名,及各单课的排名。
3.3性能要求:
维护数据的安全性.
设定密码,限制非法用户的使用;还能修改密码,维护系统的安全性。
四、系统总体设计
1、系统设计目标
实现了学生成绩数据库的创建及学生成绩的输入、浏览、维护和统计。
2、主要软件需求
操作系统:
windowsxpsp2
软件:
VFP6.0
3、功能模块与系统构成
五、系统详细设计
系统登陆如图:
事件响应代码如下:
sele用户信息表
ifallt(thisform.text1.value)==""
messagebox(left(allt(thisform.label1.caption),6)+"为空,请输入!
",64,"提示")
thisform.text1.setfocus
else
ifallt(thisform.text2.value)==""
messagebox("密码为空,请输入!
",64,"提示")
thisform.text2.setfocus
else
n=n+1
locateforallt(姓名)=allt(thisform.text1.value).and.allt(密码)=allt(thisform.text2.value)
iffound()
ifthisform.check1.value==1.and.标识
checked=1
dqyh=allt(姓名)
thisform.release
domenu.mpr
else
ifthisform.check1.value==1.and.!
标识
messagebox("对不起,你不是管理员!
",48,"警告")
thisform.check1.value=0
else
checked=0
dqyh=allt(姓名)
thisform.release
domenu.mpr
endif
endif
else
ifn>=3
messagebox("你不是合法用户,请与管理员联系!
",48,"警告")
thisform.release
clearevent
quit
else
messagebox(left(allt(thisform.label1.caption),6)+"或密码错误,请重新输入!
",64,"提示")
thisform.text1.value=""
thisform.text1.setfocus
thisform.text2.value=""
endif
endif
endif
endif
2、学生信息管理
1)学生信息录入如图所示
事件响应代码如下:
gobottom
appendblank
thisform.refresh
2)学生信息修改如图所示
事件响应代码如下:
withthisform
creatcursor1sb(学号c(6),姓名c(10),性别c
(2),出生日期d(8),政治面貌c(4),
身份证号码c(18),入学时间d(8),联系电话c(15),家庭住址c(30),邮政编码c(6),照片g(4),备注m(4))
sele学生基本信息表
locateforallt(学号)=allt(.text1.value)
ifallt(学号)==allt(.text1.value)
replace学号withallt(.text1.value),姓名withallt(.text2.value),出生日期with.text3.value,入学时间with.text4.value;
联系电话withallt(.text5.value),邮政编码withallt(.text6.value),身份证号码withallt(.text7.value);
家庭住址withallt(.text8.value),班级withallt(.combo1.value),性别withallt(.combo2.value),政治面貌withallt(.combo3.value),备注withallt(.edit1.value)
if!
pictemp==""
waitwindows"正在导入相片,请等待!
......"at100,40timeout2nowaitappendgeneral照片foem"&pictemp"
endif
endif
selelsb
locateforallt(学号)=allt(text1.value)
ifallt(学号)==allt(学生基本信息表.学号)
replace学号with学生基本信息表.学号,姓名with学生基本信息表.姓名,出生日期with学生基本信息表.出生日期,;
入学时间with学生基本信息表.入学时间,联系电话with学生基本信息表.联系电话,邮政编码with学生基本信息表.邮政编码,;
身份证号码with学生基本信息表.身份证号码,家庭住址with学生基本信息表.家庭住址,性别with学生基本信息表.性别,;
政治面貌with学生基本信息表.政治面貌,备注with学生基本信息表.备注,照片with学生基本信息表.照片
endif
pictemp=""
this.enabled=.f.
endwith
3、学生成绩管理
1)学生成绩录入如图所示
事件响应代码如下:
banji=alltrim(bo1.value)
xuehao=alltrim(bo2.value)
xueqi=alltrim(bo3.value)
kecheng=alltrim(bo4.value)
chengji=alltrim(thisform.text1.value)
chengji_num=val(alltrim(thisform.text1.value))
ifxuehao=="".or.banji=="".or.xueqi=="".or.kecheng=="".or.chengji==""
messagebox("您的信息填写不完整,请补充完整!
",0+32,"提示")
else
sele学生基本信息表
locateforalltrim(学号)=xuehao
ifeof()
messagebox("对不起,此人不存在!
",0+32,"提示")
else
temp=0
sele学生成绩信息表
locateforalltrim(学号)=xuehao
dowhilefound()
ifalltrim(课程)==kecheng.and.alltrim(学期)==xueqi
temp=1
tt=messagebox("该科的成绩已存在,是否覆盖?
",4+32+256,"提示")
iftt==6
repl成绩withchengji_num
endif
exit
else
continue
endif
enddo
iftemp=0
appendblank
repl班级withbanji
repl学号withxuehao
repl课程withkecheng
repl成绩withchengji_num
repl学期withxueqi
messagebox("成绩录入成功,请继续!
",0+32,"提示")
endif
endif
endif
2)学生成绩修改如图所示
事件响应代码如下:
selelsbj
ifallt(thisform.text1.value)==""
messagebox("请输入学号或姓名!
",32,"提示")
thisform.text1.setfocus
else
locatefor学号=allt(thisform.text1.value).or.姓名=allt(thisform.text1.value)
ifeof()
messagebox("本班没有此人,请重新输入!
",64,"提示")
thisform.text1.value=""
thisform.text1.setfocus
else
xuehao=allt(学号)
thisform.label5.caption=姓名
thisform.label6.caption=学号
bo2.click
endif
endif
4、查询与统计
1)学生信息查询如图所示
事件响应代码如下:
selestuls
countalltoallstudent
countallfor性别="男"toboy
countallfor性别="女"togirl
thisform.label3.caption=allt(str(allstudent))
thisform.label4.caption=allt(str(boy))
thisform.label5.caption=allt(str(girl))
gotop
2)学生成绩查询
事件响应代码如下:
ifallt(bo1.value)==""
messagebox("请选择班级!
",64,"提示")
else
tjbj=bo1.value
tjxq=bo2.value
doformcjtj
endif
3)报表打印如图所示
5、系统管理
1)用户管理
事件响应代码如下:
sele用户信息表
ifalltrim(thisform.text1.value)==""
messagebox("用户名不能为空!
",0+48,"警告")
thisform.text1.setfocus
else
locatefor姓名=alltrim(thisform.text1.value)
if(.not.eof())
messagebox("此用户已存在,请重新输入!
",64,"警告")
thisform.text1.value=""
thisform.text1.setfocus
else
ifalltrim(thisform.text2.value)==""
messagebox("密码不能为空!
",0+48,"警告")
thisform.text2.setfocus
else
if(thisform.text2.value)==(thisform.text3.value)
appendblank
repl姓名withalltrim(thisform.text1.value),;
密码withalltrim(thisform.text2.value)
ifthisform.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("确认密码错误,请重新输入!
",0+48,"警告")
iftt==1
thisform.text3.enabled=.t.
thisform.label4.enabled=.t.
thisform.text3.value=""
thisform.text3.setfocus
endif
endif
endif
endif
endif
2)密码修改
事件响应代码如下:
seleyonghu
ifallt(thisform.text1.value)==""
thisform.text1setfocus
else
locateforallt(姓名)=allt(thisform.text1.value)
ifeof()
messagebox("此用户不存在,请重新输入!
",64,"提示")
thisform.text1.value=""
thisform.text1.setfocus()
if!
allt(密码)==allt(thisform.text2.value)
messagebox("密码错误,请重新输入!
",64,"提示")
thisform.text2.value=""
thisform.text2.setfocus()
else
ifallt(thisform.text3.value)==""
messagebox("请输入新密码!
",64,"提示")
thisform.text3.setfocus
else
if!
allt(thisform.text3.value)==allt(thisform.text4.value)
messagebox("确认密码错误,请重新输入!
",64,"提示")
thisform.text4.value=""
thisform.text4.setfocus
else
repl密码withallt(thisform.text4.value)
thisform.release
endif
endif
endif
endif
endif
6、系统维护
1)关于如图所示
事件响应代码如下:
thisform.release
2)退出
六、设计体会
在此次的管理信息系统程序设计的过程中,我充分认识到了做计划的重要性,要实现把整体方案规划好,才能保证以后设计的顺利进行,才能应对出现的突发事件,达到系统设计的目标。
在开始进行系统设计时,我对管理信息系统的认识比较少,对系统的开发缺乏本质和深入地研究调查,以至与在着手设计的过程中,困难接踵而至。
然而又不知道怎样解决,直到后来重新对此次的设计做了认真细致的规划和调查,最终才使整个程序的设计工作完成。
然而,本次程序设计的收获不仅仅让我了解了VISUAIFOXPRO6.0,使我对系统开发有了初步的了解,提高了编写程序的兴趣,如果今后有机会的话,我希望能够对编程有更深入的学习。
由于水平有限,错误在所难免,设计过程中有许多不敬如人意的地方。
我想,这也是在以后的学习和工作中激励我不断学习,不断前进的动力。
我会在今后的工作中不断地完善它,充实它,使之能够更方便、更准确、更快捷地在工作中应用到系统开发技术,提高工作效率。
以上是我在本次管理信息系统程序设计中的一点体会,由于自己水平有限,难免又许多错误,请老师予以指正,我将继续努力!
七、参考书目
VFP程序设计基础与实训主编牟云翠机械工业出版社
VisualFoxPro程序设计
设计题目:
学生成绩管理系统
组别:
第9组
设计时间:
13~14周
实习地点:
西校区5#教学楼、图书馆
指导老师:
毛政利老师、马千里老师
河南城建学院测绘与城市空间信息系
2010-12-01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理 VF 程序设计 学生 成绩 管理