1、一、 实习目的两周的时间里,在任课老师毛政利老师和马千里老师的指导下,掌握学生成绩管理系统的分析及设计方法,学会综合运用VFP数据库知识,重点掌握数据的添加、修改、查询功能。二、 本组课题及本人任务本组设计课题为学生成绩管理系统,组员有王大海、张国岭、张卫华、冯伟霞实习分为四部分:王大海:系统主程序及查询与统计设计;张国岭:学生信息管理设计;张卫华:系统管理设计;冯伟霞:学生成绩管理设计三、 系统需求调查分析 学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。另外,学生的成绩要用到学校教务管
2、理的各个方面,所以一旦学生成绩管理出现了错误,后果往往是非常严重的。传统手工的学生成绩管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了学生成绩管理的系统化、规范和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。 需求分析简单的说就是分析用户的要求,通过调查、收集与分析,获得用户对数据库的如下要求:3.1信息要求:指用户需要从数据库中获得信息的内容与性质。本系统需要的输入数据:学生信息(学号,姓名,班级,性别,出生日期)、课程信息(课程名,满分)、考生成绩;输出数据:学生成绩报表、学生信息报表、课程报表、成绩报表
3、。3.2处理要求:指用户要完成什么处理功能。本系统功能需求可归纳如下:1 数据登记登记功能用于把各种手填的数据及时登记系统定义表中,还能修改这些数据(学生信息、课程信息、成绩)。2 数据浏览能浏览学生信息、课程信息、成绩。3 数据打印能打印学生信息表、课程信息表、成绩表(单课成绩和总分成绩)。4 数据统计能统计各班学生总数和男女人数,统计各班学生的总分、排名,及各单课的排名。 3.3 性能要求:维护数据的安全性.设定密码,限制非法用户的使用;还能修改密码,维护系统的安全性。四、 系统总体设计1、系统设计目标 实现了学生成绩数据库的创建及学生成绩的输入、浏览、维护和统计。 2、主要软件需求 操作
4、系统:windows xp sp2软 件:V FP 6.0 3、功能模块与系统构成 系统登陆如图:事件响应代码如下:sele 用户信息表if allt(thisform.text1.value)=messagebox(left(allt(thisform.label1.caption),6)+为空,请输入!,64,提示)thisform.text1.setfocuselseif allt(thisform.text2.value)=messagebox(密码为空,请输入!thisform.text2.setfocusn=n+1locate for allt(姓名)=allt(thisform.
5、text1.value).and.allt(密码)=allt(thisform.text2.value)if found()if thisform.check1.value=1.and.标识checked=1dqyh=allt(姓名)thisform.releasedo menu.mprif thisform.check1.value=1.and.!标识对不起,你不是管理员!,48,警告thisform.check1.value=0checked=0endifif n=3你不是合法用户,请与管理员联系!clear eventquit或密码错误,请重新输入!thisform.text1.valu
6、e=thisform.text2.value= endif 1)学生信息录入如图所示go bottomappend blankthisform.refresh2)学生信息修改如图所示with thisformcreat cursor 1sb(学号 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 学生基本信息表locate for allt(学号)=allt(.text1.value)if
7、allt(学号)=allt(.text1.value)replace 学号 with allt(.text1.value),姓名 with allt(.text2.value),出生日期 with .text3.value,入学时间 with .text4.value;联系电话 with allt(.text5.value),邮政编码 with allt(.text6.value),身份证号码 with allt(.text7.value);家庭住址 with allt(.text8.value),班级 with allt(.combo1.value),性别 with allt(.combo2
8、.value),政治面貌 with allt(.combo3.value),备注 with allt(.edit1.value)if !pictemp=wait windows 正在导入相片,请等待!.at 100,40timeout 2 nowait append general 照片 foem&pictempendif sele lsblocate for allt(学号)=allt(text1.value)if allt(学号)=allt(学生基本信息表.学号)replace 学号 with 学生基本信息表.学号,姓名 with 学生基本信息表.姓名,出生日期 with 学生基本信息表.
9、出生日期,;入学时间 with 学生基本信息表.入学时间,联系电话 with 学生基本信息表.联系电话,邮政编码 with 学生基本信息表.邮政编码,;身份证号码 with 学生基本信息表.身份证号码,家庭住址 with 学生基本信息表.家庭住址,性别 with 学生基本信息表.性别,;政治面貌 with 学生基本信息表.政治面貌,备注 with 学生基本信息表.备注,照片 with 学生基本信息表.照片pictemp=this.enabled=.f.endwith 1)学生成绩录入如图所示banji=alltrim(bo1.value)xuehao=alltrim(bo2.value)xue
10、qi=alltrim(bo3.value)kecheng=alltrim(bo4.value)chengji=alltrim(thisform.text1.value)chengji_num=val(alltrim(thisform.text1.value)if xuehao=.or.banji=.or.xueqi=.or.kecheng=.or.chengji= messagebox(您的信息填写不完整,请补充完整!,0+32, else sele 学生基本信息表 locate for alltrim(学号)=xuehao if eof()对不起,此人不存在! temp=0 sele 学生成
11、绩信息表 do while found() if alltrim(课程)=kecheng .and.alltrim(学期)=xueqi temp=1 tt=messagebox(该科的成绩已存在,是否覆盖?,4+32+256, if tt=6 repl 成绩 with chengji_num exit continue enddo if temp=0 append blank repl 班级 with banji repl 学号 with xuehao repl 课程 with kecheng repl 学期 with xueqi成绩录入成功,请继续!2)学生成绩修改如图所示sele lsbj
12、请输入学号或姓名!,32,locate for 学号=allt(thisform.text1.value).or.姓名=allt(thisform.text1.value)if eof()本班没有此人,请重新输入!xuehao=allt(学号)thisform.label5.caption=姓名thisform.label6.caption=学号bo2.click1)学生信息查询如图所示sele stulscount all to allstudentcount all for 性别=男to boy女to girlthisform.label3.caption=allt(str(allstud
13、ent)thisform.label4.caption=allt(str(boy)thisform.label5.caption=allt(str(girl)go top2)学生成绩查询if allt(bo1.value)=请选择班级!tjbj=bo1.valuetjxq=bo2.valuedo form cjtj3)报表打印如图所示1) 用户管理 if alltrim(thisform.text1.value)=用户名不能为空!,0+48, thisform.text1.setfocuselse locate for 姓名=alltrim(thisform.text1.value) if(.
14、not.eof()此用户已存在,请重新输入! thisform.text1.value= if alltrim(thisform.text2.value)=密码不能为空! thisform.text2.setfocusif(thisform.text2.value)=(thisform.text3.value) repl 姓名 with alltrim(thisform.text1.value),; 密码 with alltrim(thisform.text2.value) if thisform.check1.value=1 repl 标识 with.T. repl 标识 with.F. t
15、hisform.text2.value= thisform.text3.value= thisform.text3.enabled=.f. thisform.label4.enabled=.f. thisform.list1.clear thisform.list1.init确认密码错误,请重新输入! if tt=1 thisform.text3.enabled=.t. thisform.label4.enabled=.t. thisform.text3.setfocus2)密码修改sele yonghu thisform.text1setfocus locate for allt(姓名)=a
16、llt(thisform.text1.value)此用户不存在,请重新输入! thisform.text1.setfocus() if !allt(密码)=allt(thisform.text2.value)密码错误,请重新输入! thisform.text2.setfocus() if allt(thisform.text3.value)=请输入新密码!allt(thisform.text3.value)=allt(thisform.text4.value)确认密码错误,请重新输入! thisform.text4.value= thisform.text4.setfocus repl 密码
17、with allt(thisform.text4.value) thisform.release1)关于如图所示2)退出六、设计体会在此次的管理信息系统程序设计的过程中,我充分认识到了做计划的重要性,要实现把整体方案规划好,才能保证以后设计的顺利进行,才能应对出现的突发事件,达到系统设计的目标。在开始进行系统设计时,我对管理信息系统的认识比较少,对系统的开发缺乏本质和深入地研究调查,以至与在着手设计的过程中,困难接踵而至。然而又不知道怎样解决,直到后来重新对此次的设计做了认真细致的规划和调查,最终才使整个程序的设计工作完成。然而,本次程序设计的收获不仅仅让我了解了VISUAI FOXPRO6.
18、0,使我对系统开发有了初步的了解,提高了编写程序的兴趣,如果今后有机会的话,我希望能够对编程有更深入的学习。由于水平有限,错误在所难免,设计过程中有许多不敬如人意的地方。我想,这也是在以后的学习和工作中激励我不断学习,不断前进的动力。我会在今后的工作中不断地完善它,充实它,使之能够更方便、更准确、更快捷地在工作中应用到系统开发技术,提高工作效率。以上是我在本次管理信息系统程序设计中的一点体会,由于自己水平有限,难免又许多错误,请老师予以指正,我将继续努力!七、参考书目VFP程序设计基础与实训 主编 牟云翠 机械工业出版社Visual FoxPro程序设计设计题目:学生成绩管理系统 组 别:第9组 设计时间:1314周 实习地点:西校区5#教学楼、图书馆指导老师:毛政利老师、马千里老师河南城建学院测绘与城市空间信息系2010-12-01