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

上传人:时光煮雨 文档编号:14871171 上传时间:2022-02-22 格式:DOCX 页数:20 大小:856.58KB
返回 下载 相关 举报
VFP课程设计学生信息管理系统.docx_第1页
第1页 / 共20页
VFP课程设计学生信息管理系统.docx_第2页
第2页 / 共20页
VFP课程设计学生信息管理系统.docx_第3页
第3页 / 共20页
VFP课程设计学生信息管理系统.docx_第4页
第4页 / 共20页
VFP课程设计学生信息管理系统.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

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

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

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

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

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

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

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

7、ws 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 NULL

9、2.3.3课程信息表:字段名数据类型可否为空说明课程代码Char(2)NOT NULL主索引课程名Char(10)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(

10、2)NOT NULL2.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 (N2) =messagebox(登录信息三次输入错误,不能使用本系统,16,信息提示) thisform.release return &退出 ,不执行下面语句endifset order to tag 账户seek thi

11、sform.text1.value &定位数据表中的用户名if (thisform.text2.value=账户密码.密码); and (ThisForm.Optiongroup1.value=账户密码.qx) &检查密码和权限是否正确 thisform.release do form 主界面 with 账户密码.qx&打开主界面,并传达权限值 else =messagebox(输入错误,请重新输入!,48,信息提示) thisform.text1.setfocus &将光标移到用户名框 N=N+1 &错误次数N+1endif “取消”click事件: quit表单init事件:public

12、NN=12.5.2 学生信息管理表单程序:(Click事件) “查询”:if.not.empty(alltrim(bo2.value)select 学生信息 locate for 姓名=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=出生日期en

13、difendifselect 学生信息 locate for alltr(姓名)=alltr(bo2.value) sele all 姓名,学号,性别,学院,出生日期 from 学生信息; where alltr(姓名)=alltr(bo2.value) into cursor temp with thisform.grd学生信息 .recordsourcetype=1 .recordsource=temp .columncount=6 .column1.header1.caption=姓名 .column2.header1.caption=学号 .column3.header1.captio

14、n=性别 .column4.header1.caption=学院 .column5.header1.caption=出生日期 endwith thisform.refresh thisform.grd学生信息.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.

15、valueb=thisform.text4.valuec=thisform.text5.valued=thisform.text6.valueupdate 学生信息 set 姓名=a where 学号=zupdate 学生信息 set 性别=b where 学号=zupdate 学生信息 set 学院=c where 学号=zupdate 学生信息 set 出生日期=d where 学号=zmessagebox(信息更新成功,48,提示)“注销”:select 学生信息locate for 学号=alltrim(thisform.text2.value)if.not.found()messag

16、ebox(学生不存在,48,提示) elsea=thisform.text2.valuedelete from 学生信息 where 学号=amessagebox(该生已成功注销,48,提示)endif“添加”:if len(thisform.text2.value)=0 or len(thisform.text3.value)=0 or len(thisform.text4.value)=0 or len(thisform.text5.value)=0 or len(thisform.text6.value)=0 messagebox(输入信息不完整,请重新输入,48,提示)elsesele

17、ct 学生信息 locate for 学号=alltrim(thisform.text2.value)if found()messagebox(学号已存在,48,提示) thisform.text2.value=thisform.text2.setfocuselseinsert into 学生信息(姓名,学号,性别,学院,出生日期) values(thisform.text2.value,thisform.text3.value,thisform.text4.value,thisform.text5.value,thisform.text6.value)messagebox(添加成功!,48,

18、提示)endifendif2.5.3 课程信息查询表单程序:(Click事件)课程查询 “确定”1:if.not.empty(alltrim(bo1.value)select 课程信息locate for 课程代码=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=学分 thi

19、sform.text6.value=课程类别 thisform.text7.value=课程教师 thisform.text8.value=教师工号endifendif“确定”2:if.not.empty(alltrim(bo2.value)select 课程信息locate for 课程名=alltrim(bo2.value)if.not.found()messagebox(课程不存在,48,提示) thisform.text1.value=else bo1.value=课程代码 thisform.text2.value=课程代码 thisform.text3.value=课程名 thisf

20、orm.text4.value=课时数 thisform.text5.value=学分 thisform.text6.value=课程类别 thisform.text7.value=课程教师 thisform.text8.value=教师工号endifendif2.5.4 教师任课查询表单程序:(Click事件) “查询”:select 课程信息 locate for alltr(课程教师)=alltr(bo1.value) if found() sele all 课程代码,课程名,课时数,学分,课程类别,课程教师,教师工号 from 课程信息 ; where alltr(课程教师)=allt

21、r(bo1.value) into cursor temp with thisform.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.ca

22、ption=教师工号 endwith thisform.refresh thisform.grid1.setfocus endif“清空”: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=else bo1.value=姓名 thisform.text1.value=学号 thisform.

23、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 姓名,高等数学,大学英语,大学物

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

25、umn6.header1.caption=计算机技术 endwith thisform.refresh thisform.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(学生姓名不能为空,48,提示) bo1.value=else bo1.value=姓名 thisform.text3.value=姓

26、名 thisform.text4.value=高等数学 thisform.text5.value=大学英语 thisform.text6.value=大学物理 thisform.text7.value=大学写作 thisform.text8.value=计算机技术endifendifselect 学生成绩 locate for alltr(姓名)=alltr(bo1.value) sele all 姓名,高等数学,大学英语,大学物理,大学写作,计算机技术 from 学生成绩; where alltr(姓名)=alltr(bo1.value) into cursor temp with this

27、form.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“添加”:if

28、len(thisform.text3.value)=0 or len(thisform.text4.value)=0 or len(thisform.text5.value)=0 or len(thisform.text6.value)=0 or len(thisform.text7.value)=0 or len(thisform.text8.value)=0 messagebox(输入信息不完整,请重新输入,48,提示)elseselect 学生成绩 locate for 姓名=alltrim(thisform.text3.value)if found()messagebox(成绩已存在,

29、48,提示) elseinsert into 学生成绩(姓名,高等数学,大学英语,大学物理,大学写作,计算机技术) values(thisform.text3.value,thisform.text4.value,thisform.text5.value,thisform.text6.value,thisform.text7.value,thisform.text8.value)messagebox(录入成功!,48,提示)endifendif“修改”:z=thisform.text3.valuea=thisform.text4.valueb=thisform.text5.valuec=thi

30、sform.text6.valued=thisform.text7.valuee=thisform.text8.valueupdate 学生成绩 set 高等数学=a where 姓名=zupdate 学生成绩 set 大学英语=b where 姓名=zupdate 学生成绩 set 大学物理=c where 姓名=zupdate 学生成绩 set 大学写作=d where 姓名=zupdate 学生成绩 set 计算机技术=e where 姓名=zmessagebox(信息更新成功,48,提示)“注销”:select 学生成绩locate for 姓名=alltrim(thisform.te

31、xt3.value)if.not.found()messagebox(学生不存在,48,提示) 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.value= thisform.text8.value=bo1.setfocus2.5.8 学生

32、信息表单程序:(Click事件)查询与清空的代码同 2.5.22.5.9 密码修改表单程序:(Click事件) “确认修改”:set exact onif empty(alltrim(thisform.text3.value).and.empty(alltrim(thisform.text4.value)messagebox(新密码不能为空,48,提示) thisform.text3.setfocusreturnendifif alltrim(thisform.text3.value)alltrim(thisform.text4.value)messagebox(新密码与确认密码不一致,48,

33、提示) thisform.text3.setfocusreturnendifselect 账户密码locate for alltrim(账户)=alltrim(thisform.text1.value).and.alltrim(密码)= alltrim(thisform.text2.value)if.not.found()messagebox(原密码错误,请重新输入,48,提示) thisform.text2.setfocusreturnendifa=thisform.text1.valueb=thisform.text3.valueupdate 账户密码 set 密码=b where 账户=

34、amessagebox(密码修改成功,64,密码修改系统) set exact offendifa=thisform.text1.valueb=thisform.text3.valueupdate 账户密码 set 密码=b where 账户=amessagebox(密码修改成功,64,密码修改系统) set exact off“重新输入”:thisform.text1.value=thisform.text2.value=thisform.text3.value=thisform.text4.value=thisform.text1.setfocus3、系统评价3.1程序调试情况(1).在表

35、结构创建的过程中有个注意点NULL值,NULL无明确的值,它不等于零或空格,一个NULL值不能认为比某个值(包括另一个NULL值)大或小,相等或不同。 (2).常量和内存变量能够使用的数据类型只有6种,分别是:字符型、数值型、货币型、日期型、日期时间型以及逻辑型。 (3).在用双引号或单引号等定界符标识字符串时,不能使用汉字全角状态下的引号,因为VFP命令不能识别全角汉字下的符号。 (4).函数是用来实现某指定运算或操作的一种特殊程序,应熟练掌握几种常用的系统函数。例如:数值型函数、字符处理函数、日期和时间函数、表与记录函数、类型转换函数、系统测试函数。要注意的是字符型与日期型相互转换函数是C

36、TOD与DTOC,字符型与日期时间型转换函数为CTOT与TTOC。(5).菜单中的命令执行某表单是,要注意表单名称要完整,不能出现错别字,否则会出现“无法定义*表单”的情况。 (6).数据库的表设计器是创建新表、修改表和定义索引的重要工具,应学会熟练的使用数据库设计器,对字段选项卡、表选项卡和索引选项卡进行管理操作。 (7). 掌握VFP多种运算符,明确各种运算符的运算优先级:数值运算符高于关系运算符,关系运算符高于逻辑运算符。同一等级命令从左到右进行,括号内的运算优先执行,嵌在最内层括号的运算首先进行,然后依次由内向外执行。3.2总结通过这次实验,我觉得收获很多。不仅加深了我对教学系统的了解

37、与深化以及数据库原理的了解,熟悉了数据库设计的流程,还对软件工程有了初步认识,基本掌握了需求分析的方法。同时为我以后进入社会打下了基础。通过本次设计与制作,我的实际动手能力和处理问题的能力有了明显提高。这次设计是我深刻了解到表是数据库中最基本的文件,数据库系统的大部分操作与命令都离不开对表中数据的处理,我们应该熟练掌握表的创建与表中数据处理。还要熟练掌握表记录的输入和定位、表结构的修改和表数据的追加与删除。这次设计锻炼了我编写数据程序的能力,能熟练掌握不同功能程序的编写,以达到所设计程序的功能要求。熟练运用了select、deleted、update 以及 locate定位语句。3.3心得体会

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

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

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


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