VFP课程设计-学生信息管理系统.docx

上传人:scccc 文档编号:13140723 上传时间:2021-12-16 格式:DOCX 页数:19 大小:329.67KB
返回 下载 相关 举报
VFP课程设计-学生信息管理系统.docx_第1页
第1页 / 共19页
VFP课程设计-学生信息管理系统.docx_第2页
第2页 / 共19页
VFP课程设计-学生信息管理系统.docx_第3页
第3页 / 共19页
VFP课程设计-学生信息管理系统.docx_第4页
第4页 / 共19页
VFP课程设计-学生信息管理系统.docx_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《VFP课程设计-学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《VFP课程设计-学生信息管理系统.docx(19页珍藏版)》请在三一文库上搜索。

1、广西大学数学与信息科学学院数据库开发与应用课程设计报告题目:学生信息管理系统班 级: 信息与计算科学121学号:1211100238姓名: 李华日 期: 二。一四年六月前言随着学校的规模不断扩大,学生数量急剧增加,有关学生信息量也成倍增长。面对庞 大的信息量需要有学生成绩管理系统来提高学生管理工作的效率。通过这样的系统可以做 到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工 作量。目前社会上信息管理系统发展飞快,各个企业事业单位都引入了信息管理软件来管 理自己日益增长的各种信息,学生信息管理系统也是有了很大的发展 ,商业化的学生信息 管理软件也不少。但本系统完全独

2、立开发,力求使系统功能简洁明了,但功能齐全且易于操 作,其主要实现了对高校从学生学籍信息录入、学生选课、学生信息管理、课程信息、任 课教师查询、到学生成绩管理。整个系统分为学生信息管理、课程信息查询、任课教师查 询、成绩管理、系统管理四大模块。其中,学生信息管理模块包括学生信息录入、学生 信息修改。学生课程信息管理模块包括学生选课、学生课程查询。学生成绩管理模块包括 学生成绩录入、学生成绩查询。系统管理模块包括用户权限、密码修改、退出系统。整个 系统从操作简便、灵活、实用的目的要求出发完成学生信息管理系统全过程。用户需求具 体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满

3、足各种信 息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据, 它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。1、系统分析1.1 系统介绍本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流 程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化, 提高工作效率和工作质量,减少很多不必要的资源,不用像以前那样用冗余的纸张式的管 理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率, 并且还提高了学籍信息管理的精确度。现提出如下的系统开发目标:1 .系统应具有实用性、可靠性

4、和适用性,同时注意到先进性。2 .对各个数据库进行动态管理,防止混乱。3 .能够按照用户选择的不同的条件进行简单查询和复合查询。4 .能够对查询结果进行分类汇总,实现报表打印。5 .注意数据的安全性,具有数据备份和恢复的功能。6 .方便用户的操作,尽量减少用户的操作。本课程设计主要解决与学生成绩信息管理相关的问题,设计一个功能齐全的学生管理 信息系统。同时实现学生相关信息的添加、删除、修改和查询;学生选课的管理,添加、 修改、删除;学生成绩的录入和对学生成绩的分析等主要功能。1.2 需求分析21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用 及普及到经济和社会生活的各

5、个领域。使原本的旧的管理方法越来越不适应现在社会的发 展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社 会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。(一)教育系统学生管理现状分析学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本 数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学 年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新 生入学后由教务人员在学籍系统中完成新学生信息的维护。这就需要一个功能强大的学生 管理系统来做学院工作者的左右手。(二)学校具体

6、需求分析学生:对各科成绩的查询任课老师:输入并维护所教科目的学生成绩教务处:学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对 学生的信息进行必要的维护。通过研究调查,本系统需以下功能:综合学生信息、学生成绩以及信息查询等信息;方便用户了解和管理学生的全面动态信息; 良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。1.3 可行性分析可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。首先,从经济上来看,用 VF时发的学生信息管理系统经济成本低,功能足够满足日 常需要。由于学校等中小型管理系统并不复杂,且 Visual FoxPro本身要求的运行环

7、境不高,所以一般 Windows 2000以上的系统环境都可以使用。其次,从实用性来看,本学生 信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计 界面可以使操作者轻易运用自如,足够满足学生相关信息的添加、删除、修改和查询、学 生选课的管理、添加、修改、删除、学生成绩的录入、课程信息的查询和对学生成绩的分 析等主要功能。2、系统设计学生信息管理系统对于学生信息管理有非常大的作用,这些管理包括增、删、改,以 及查询等功能,同时还应实现对数据信息访问权限控制。下面从软件的整体结构设计角度 来进行设计。2.1 系统流程图噪程信息查询 成绩查询 密码修改任课教师查询学生信息

8、管理成绩管理学生信息修改学生信息查询学生成绩录入学生成绩查询2.2 数据库需求分析2.3 数据库逻辑结构设计2.3.1 用户密码表:字段名数据类型可否为空说明账户Char(5)NOT NULL主索引密码Char(6)NOT NULLQx(权限)Num(1)2.3.2 学生信息表:字段名数据类型可否为空说明学号Char(5)NOT NULL主索引姓名Char(8)NOT NULL性别Char(2)NOT NULL学院Char(8)NOT NULL出生日期Char(8)NOT NULL2.3.3 课程信息表:字段名数据类型可否为空说明课程代码Char(2)NOT NULL主索引课程名Char(10

9、)NOT NULL课时数Char(2)NOT NULL学分Char(1)NOT NULL课程类别Char(4)NOT NULL课程教师Char(6)NOT NULL教师工号Char(5)NOT NULL2.3.4 学生成绩表:字段名数据类型可否为空说明学号Char(5)NOT NULL主索引姓名Char(6)NOT NULL课程名Char(10)NOT NULL课程类别Char(4)NOT NULL成绩Char(2)NOT NULL学分Char(1)NOT NULL课程代码Char(2)NOT NULL2.4 界面设计界面设计设计应遵循简洁美观、方便实用的基本原则。具体设计如下:2.4.1主窗

10、体设计主窗体包括登陆界面和主界面JR2.4.3课程信息查询界面设计课程信息查询请输入课程代码;|3诗箍入课程名;3学分清二2.4.5 成绩查询与成绩管理界面设计2.4.6 密码修改与退出界面设计辅密的用户密码修改原甯码汴二对解问画认堡更J正孙哈人I悔事:1一叫之交肾*出后即出岫近的.相匿国为:*H5iJE 理可电,E"£N*M*推室熙2.5代码编写2.5.1 登录表单程序:“登录" click事件:if (N>2)=messagebox("登录信息三次输入错误,不能使用本系统",16,"信息提示")thisform.r

11、elease return&&退出,不执行下面语句endif set order to tag 账户 seek thisform.text1.value&&定位数据表中的用户名if (thisform.text2.value=账户密码.密码); and (ThisForm.Optiongroup1.value=账户密码.qx) &&检查密码和权限是否正确 thisform.release do form主界面 with账户密码.qx&&打开主界面,并传达权限值 else =messagebox("输入错误,请重新输入!&

12、quot;,48,"信息提示")thisform.text1.setfocus&&将光标移到用户名框N=N+1&&错误次数 N+1endif“取消" click事件:quit 表单init事件:public N N=1“查询” :if.not.empty(alltrim(bo2.value)select学生信息locate for 姓名=alltrim(bo2.value)if.not.found()messagebox("学生不存在",48,"提示")bo2.value="&quo

13、t;elsebo2.value=姓名thisform.text2.value=学号thisform.text3.value=姓名thisform.text4.value=性别thisform.text5.value=学院thisform.text6.value=出生日期endifendifselect学生信息locate for alltr(姓名)=alltr(bo2.value)sele all姓名,学号,性别,学院,出生日期from学生信息;where alltr(姓名)=alltr(bo2.value)into cursor tempwith thisform.grd 学生信息.reco

14、rdsourcetype=1.recordsource="temp".columncount=6.column1.header1.caption="姓名".column2.header1.caption="学号".column3.header1.caption="性另1J".column4.header1.caption="学院".column5.header1.caption="出生日期"endwiththisform.refreshthisform.grd 学生彳'

15、;言息.setfocus“清空" :bo2.setfocusbo2.value=""bo2.value=""thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=""thisform.text6.value=""“修改”:z=thisform.text2.valuea=thisform.text3.valueb=thisf

16、orm.text4.valuec=thisform.text5.valued=thisform.text6.valueupdate学生信息set姓名=awhere学号=zupdate学生信息set 性另1J =bwhere学号=zupdate学生信息set学院二cwhere学号=zupdate学生信息set出生日期=d where学号=zmessagebox("信息更新成功",48,"提木")“注销":select学生信息locate for 学号=alltrim(thisform.text2.value) if.not.found()mess

17、agebox("学生不存在",48,"提示")elsea=thisform.text2.valuedelete from学生彳言息 where学号=a messagebox("该生已成功注销",48,"提示") endif“添加”:iflen(thisform.text2.value)=0 or len(thisform.text3.value)=0 orlen(thisform.text4.value)=0 or len(thisform.text5.value)=0 or len(thisform.text6.

18、value)=0 messagebox("输入信息不完整,请重新输入”,48,"提示")elseselect学生信息locate for 学号=alltrim(thisform.text2.value) if found()messagebox("学号已存在",48,"提示")thisform.text2.value=""thisform.text2.setfocus elseinsert into 学生信息(姓名,学号,性别,学院,出生日期) values(thisform.text2.value,th

19、isform.text3.value,thisform.text4.value,thisform.text5.value,this form.text6.value)messagebox("添加成功!",48,"提示")endif endif2.5.3 课程信息查询表单程序:(Click事件)课程查询“确定” 1: if.not.empty(alltrim(bo1.value) select课程信息locate for 课程代码 =val(alltrim(bo1.value)if.not.found()messagebox("课程不存在&quo

20、t;,48,"提示")bo1.value=""elsebo2.value=课程名thisform.text2.value=课程代码thisform.text3.value=课程名thisform.text4.value=课时数thisform.text5.value=学分thisform.text6.value=课程类别thisform.text7.value=课程教师thisform.text8.value=教师工号endifendif“确定” 2: if.not.empty(alltrim(bo2.value) select课程信息locate fo

21、r 课程名=alltrim(bo2.value)if.not.found()messagebox("课程不存在",48,"提示")thisform.text1.value=""elsebo1.value=课程代码thisform.text2.value=课程代码thisform.text3.value=课程名thisform.text4.value=课时数thisform.text5.value=学分thisform.text6.value=课程类别thisform.text7.value=课程教师thisform.text8.val

22、ue=教师工号endifendif2.5.4 教师任课查询表单程序:(Click事件)“查询”:select课程信息locate for alltr(课程教师)=alltr(bo1.value)if found()sele all课程彳弋码,课程名,课时数,学分,课程类别,课程教师,教师工号from课程信 息;where alltr(课程教师)=alltr(bo1.value) into cursor tempwith thisform.grid1.recordsourcetype=1 .recordsource="temp" .columncount=10.column1

23、.header1.caption="课程代码".column2.header1.caption="课程名".column3.header1.caption="课时数".column4.header1.caption="学分".column5.header1.caption="课程类别" .column6.header1.caption="任课教师" .column7.header1.caption="教师工号" endwiththisform.refres

24、hthisform.grid1.setfocusendif空”:bo1.value=""bo1.setfocus2.5.6 成绩查询表单程序:(Click事件)“查询” :if.not.empty(alltrim(bo1.value)select学生信息locate for 姓名=(alltrim(bo1.value)if.not.found()messagebox("学生姓名不能为空",48,"提示")bo1.value=""elsebo1.value=姓名thisform.text1.value=学号thisf

25、orm.text2.value=性别thisform.text3.value=学院select学生成绩locate for 姓名=(alltrim(bo1.value)thisform.text4.value=高等数学thisform.text5.value=大学英语thisform.text6.value=大学物理thisform.text7.value=大学写作thisform.text8.value=计算机技术endifendifselect学生成绩locate for alltr(姓名)=alltr(bo1.value)sele all姓名,高等数学,大学英语,大学物理,大学写作,计算

26、机技术from学生成绩;where alltr(姓名)=alltr(bo1.value) into cursor tempwith thisform.grid2.recordsourcetype=1.recordsource="temp".columncount=6.column1.header1.caption="姓名".column2.header1.caption="高等数学".column3.header1.caption="大学英语".column4.header1.caption="大学物理&

27、quot;.column5.header1.caption="大学写作".column6.header1.caption="计算机技术”endwiththisform.refreshthisform.grid2.setfocus“清空”:bo1.value=""bo1.setfocus2.5.7 学生成绩管理表单程序:(Click事件)“查询” :if.not.empty(alltrim(bo1.value) select学生成绩locate for 姓名=(alltrim(bo1.value)if.not.found()messagebox(

28、"学生姓名不能为空",48,"提示")bo1.value=""elsebo1.value=姓名thisform.text3.value=姓名thisform.text4.value=高等数学thisform.text5.value=大学英语thisform.text6.value=大学物理thisform.text7.value=大学写作thisform.text8.value=计算机技术endifendifselect学生成绩locate for alltr(姓名)=alltr(bo1.value)sele all姓名,高等数学,大

29、学英语,大学物理,大学写作,计算机技术from学生成绩;where alltr(姓名)=alltr(bo1.value) into cursor tempwith thisform.grid2.recordsourcetype=1.recordsource="temp".columncount=6.column1.header1.caption="姓名".column2.header1.caption="高等数学".column3.header1.caption="大学英语".column4.header1.cap

30、tion="大学物理".column5.header1.caption="大学写作".column6.header1.caption="计算机技术endwiththisform.refreshthisform.grid2.setfocus“添力口” : if len(thisform.text3.value)=0 or len(thisform.text4.value)=0 or len(thisform.text5.value)=0 orlen(thisform.text6.value)=0 or len(thisform.text7.val

31、ue)=0 or len(thisform.text8.value)=0messagebox("输入信息不完整,请重新输入”,48,"提示")elseselect学生成绩locate for 姓名=alltrim(thisform.text3.value) if found()messagebox("成绩已存在",48,"提示")elseinsert into学生成绩(姓名,高等数学,大学英语,大学物理,大学写作,计算机技术) values(thisform.text3.value,thisform.text4.value,

32、thisform.text5.value,thisform.text6.value,thisform.text7. value,thisform.text8.value)messagebox("录入成功!",48,"提示")endif endif“修改" :z=thisform.text3.valuea=thisform.text4.valueb=thisform.text5.valuec=thisform.text6.valued=thisform.text7.valuee=thisform.text8.valueupdate学生成绩set图

33、等数学=awhere 姓名=zupdate学生成绩set大学央语=bwhere 姓名=zupdate学生成绩set大学物理=cwhere 姓名=zupdate学生成绩set大学与作=dwhere 姓名=zupdate学生成绩set计算机技术:=e where 姓名=zmessagebox("信息更新成功",48,"提示")“注销":select学生成绩locate for 姓名=alltrim(thisform.text3.value)if.not.found()messagebox("学生不存在",48,"提示&

34、quot;)elsea=thisform.text3.valuedelete from 学生成绩 where 姓名=apackmessagebox("该生已成功注销",48,"提示") endif“清空" :bo1.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=""thisform.text6.value=""thisform.text7.va

35、lue=""thisform.text8.value=""bo1.setfocus2.5.8 学生信息表单程序:(Click事件)查询与清空的代码同2.5.22.5.9 密码修改表单程序:(Click事件)“确认修改”:set exact onif empty(alltrim(thisform.text3.value).and.empty(alltrim(thisform.text4.value)messageboxC新密码不能为空",48,"提示")thisform.text3.setfocusreturnendifif

36、alltrim(thisform.text3.value)<>alltrim(thisform.text4.value)messageboxC新密码与确认密码不一致",48,"提示")thisform.text3.setfocusreturnendifselect账户密码locate for alltrim( 账 户 尸alltrim(thisform.text1.value).and.alltrim( 密alltrim(thisform.text2.value)if.not.found()messagebox("原密码错误,请重新输入&qu

37、ot;,48,"提示")thisform.text2.setfocusreturnendifa=thisform.text1.valueb=thisform.text3.valueupdate账户密码 set密码=b where账户=amessagebox("密码修改成功",64,"密码修改系统") set exact offendifa=thisform.text1.valueb=thisform.text3.valueupdate账户密码 set密码=b where账户=amessagebox("密码修改成功"

38、,64,"密码修改系统")set exact off“重新输入":thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text1.setfocus3、系统评价3.1 程序调试情况(1) .在表结构创建的过程中有个注意点一一NULL®, NULL无明确的值,它不等于零 或空格,一个NULL®不能认为比某个值(包括另一个

39、NULL®)大或小,相等或不同。(2) .常量和内存变量能够使用的数据类型只有 6种,分别是:字符型、数值型、货币 型、日期型、日期时间型以及逻辑型。(3) .在用双引号或单引号等定界符标识字符串时,不能使用汉字全角状态下的引号, 因为VF项令不能识别全角汉字下的符号。(4) .函数是用来实现某指定运算或操作的一种特殊程序,应熟练掌握几种常用的系统 函数。例如:数值型函数、字符处理函数、日期和时间函数、表与记录函数、类型转换函 数、系统测试函数。要注意的是字符型与日期型相互转换函数是CTO力DTOC字符型与日期时间型转换函数为CTOTW TTOC(5) .菜单中的命令执行某表单是,要

40、注意表单名称要完整,不能出现错别字,否则会 出现“无法定义*表单”的情况。(6) .数据库的表设计器是创建新表、修改表和定义索引的重要工具,应学会熟练的使 用数据库设计器,对字段选项卡、表选项卡和索引选项卡进行管理操作。(7) .掌握VFP多种运算符,明确各种运算符的运算优先级:数值运算符高于关系运 算符,关系运算符高于逻辑运算符。同一等级命令从左到右进行,括号内的运算优先执行, 嵌在最内层括号的运算首先进行,然后依次由内向外执行。3.2 总结通过这次实验,我觉得收获很多。不仅加深了我对教学系统的了解与深化以及数据库 原理的了解,熟悉了数据库设计的流程,还对软件工程有了初步认识,基本掌握了需求

41、分 析的方法。同时为我以后进入社会打下了基础。通过本次设计与制作,我的实际动手能力 和处理问题的能力有了明显提高。这次设计是我深刻了解到表是数据库中最基本的文件,数据库系统的大部分操作与命 令都离不开对表中数据的处理,我们应该熟练掌握表的创建与表中数据处理。还要熟练掌 握表记录的输入和定位、表结构的修改和表数据的追加与删除。这次设计锻炼了我编写数 据程序的能力,能熟练掌握不同功能程序的编写,以达到所设计程序的功能要求。熟练运用了 select、deleted、update 以及 locate 定位语句。3.3 心得体会踉踉跄跄地忙碌了这些天,我的课程设计课题也终将告一段落。点击运行,也基本达

42、到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系, 总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙、底层代码的不合理数不 胜数。可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可 贵的是过程中的收获。以此语言来安抚我尚没平复的心。这次课程的设计总体到功能完善 用了近两周天时间,由于之前对这门课不是很懂,所以课程设计遇到了不少的麻烦,还好 同学和老师给我讲了。前期主要是建立数据库,并输入数据。然后做了类,这里主要是写 代码,很多功能实现的代码在课堂上没有遇到过, 于是只能通过查询相关书籍来作参考。课程设计的时间比较充足,在基本要求之上做了很

43、多创新,所以自己还算满意。不过, 经过这一个多星期的课程设计,真的学到了很多。在课程设计过程中,我做了一次又一次, 改了一次又一次,可是,还是有很多不懂的地方。我问了同学,也上网查了,基本上弄懂 了,做完之后,一种满足感油然而生。这次的课程设计做的还不错,所以,总结就更应该 写好一点,以便让老师更加了解我所设计的系统。经过近两个星期的学习,我进一步掌握有关表、数据库、项目、类的基本概念及基本 操作,并在此基础上进行查询设计、菜单设计、表单设计,并掌握常用的属性、事件及方 法的使用。也许,有很多地方我做的不够好,但我已经尽了我最大的努力,同时也学会了 很多以前不懂的知识。参考文献1刘瑞新 汪远征 曹欢欢 等主编,Visual FoxPro程序设计教程(第2版),机械工业出版社2李雁翎 编,数据库原理与技术一一Visual FoxPro »,高等教育出版3求是科技编,Visual FoxPro系统开发,人民邮电出版社4黄明梁编,Visual Foxpro 课程设计,电子工业出版社5白永军,Visual Foxpro 程序开发项目案例,清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1