毕业设计(论文)VB6.0学生信息管理系统_第1页
毕业设计(论文)VB6.0学生信息管理系统_第2页
毕业设计(论文)VB6.0学生信息管理系统_第3页
毕业设计(论文)VB6.0学生信息管理系统_第4页
毕业设计(论文)VB6.0学生信息管理系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 问题定义及可行性分析1.1 问题定义随着目前高校招生人数的日益扩大,高校的学生管理工作变得繁重起来。因此,自动化、智能化的高校学生管理系统的开发和应用就显得十分重要了,就此我们制作了一个高校学生信息管理系统。学生信息管理系统,针对高校现在学生信息管理的弊端,根据学生信息管理的基本流程,实现学生信息管理的电子化,减轻管理人员的负担,借助计算机管理人员能够很好对现有的学生进行管理,同时可以避免以前由于误操作而引起的错误。此系统实现对高校学生基本信息,成绩管理,选课信息等方面的综合管理,并实现了管理的统一化、智能化、快捷化。1.2 可行性分析1.2.1 技术可行性随着计算机技术及网络通讯技术

2、的飞速发展,许多学校已经有了较好的计算机应用甚至网络硬件的建设基础,本系统采用sql语言,依靠visual basic开发平台进行信息系统开发的方法和过程。1.2.2 经济可行性学生信息管理,需要大量的学生数据、报表,手工处理方式既费人,又费财,本系统费用较低,省人力、财力,经济效益可观。1.2.3 操作可行性本系统的任务提出者是学生信息管理系统软件开发小组,用户是教学办公室。第二章 需求分析2.1 数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典。针对一般学生管

3、理系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构。2.1.1学生基本信息包括的数据项有:学号、姓名、性别、出生日期、班号、联系电话、入校日期、家庭住址、备注等。2.1.2课程基本信息包括的数据项有:课程号、课程名称、课程类别、课程描述、系信息和所学课程等。2.1.3学生成绩信息包括的数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程和考试分数等。2.1.4教务管理员信息包括的数据项有:编号、姓名、登陆日期和id等。2.2 系统功能需求分析系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成的。

4、本系统中的学生管理系统需要完成的功能上主要有:l 学籍等信息的输入,包括输入学生基本信息、所在系和班级、所学课程和成绩等。l 学生信息的查询,包括查询学生基本信息,所在系和班级、已学课程和成绩。l 学生信息的修改。l 学校基本课程信息的输入。l 基本课程信息的修改。l 学生课程的设置和修改。l 学生成绩信息的输入。l 学生成绩信息的修改。l 学生成绩信息的查询。l 学生成绩信息的统计。2.3 硬件环境需求本系统适用于服务器的配置是:intel pentium iv 1.7kmhz40gb硬盘(sega,ide接口)3.5英寸高密软盘驱动器48倍速索尼光驱256mb内存d-link de-528

5、 pci ethernet 10m网卡asus v3800pro 64mb显存显卡双飞燕兼容鼠标2.4 软件环境需求本系统的设计采用的是microsoft公司 的ms sql server2000、powerdesigner,以及采用visual basic来处理图像数据。ms sql server2000是当今社会的主流数据库管理系统,它的稳定性和易用性是为世人所称道的,最重要的一点它是当今世界最大的软件设计厂商microsoft数据的产品。因此,他同windows nt,windows2000等操作系统的结合是最完美的。所以,在数据管理系统上,我们采用了ms sql server2000。

6、powerdesigner 是sybase 公司的case 工具集,使用它可以方便的对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用powerdesigner可以制作数据流程图、概念数据模型、物理数据模型可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。第三章 系统功能模块设计3.1 系统总体功能模块图学籍信息管理教务员权限管理系统管理系统登录密码管理学生信息管理系统图3.1.1系统总体功能模块图3.2系统数据流程图学生信息管理系统学生教务管理员教师图3.2.1系统数据流程图3.3 细化后所示数据流程图:教务管理员学生基本信息处理

7、教师、学生信息维护教师登录 处理1登录处理2登录处理3学生信息维护班级信息课程信息系 信 息成绩信息学生信息教务管理员信息图3.3.1 细化后所示数据流程图3.4 数据字典数据字典是系统中各类数据描述的集合,使进行详细的数据收集和数据分析所获得的主要成果。数据字典是在需求分析时建立,在数据库设计过程中不断修改、充实、完善的。数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程五部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。3.4.1数据项字典l 学生基本信息:数据项名 类型 长度 说明学 号

8、 int 12 学生唯一标示符姓 名 char 10 =4个汉字性 别 char 2 默认值为男出生日期 datetime 8 形式:01-1月-2003班 号 int 4 仅限数字联系电话 char 11 仅限数字入校时间 datetime 8 形式:01-1月-2003照 片 ole对象l 系统用户管理:用户编码 char 10 仅限数字和英文字母 用户密码 char 10 仅限数字和英文字母姓 名 char 10 =4个汉字登录日期 datetime 8 系统默认l 教师信息:教师编号 char 10 仅限数字姓 名 char 10 =4个汉字性 别 char 2 默认值为男职 称 ch

9、ar 20联系电话 char 11 仅限数字l 课程基本信息:课程编号 int 4 仅限数字课程名称 char 10 汉字课程类型 char 10 考试、考查、重修课程描述 char 50 课时,任课教师l 学生成绩信息:考试编号 char 10 仅限数字学生学号 int 12 仅限数字学生姓名 char 10 =4个汉字学生班号 int 4 仅限数字课程名称 char 10 仅限汉字成 绩 float 8 0-100l 班级信息:班 号 int 4 仅限汉字系 char 10 仅限汉字班 主 任 char 10 = 3 then msgbox 您无权操作本系统!再见!, vbcritical

10、, 无权限 unload me end if else 登陆成功 显示mdi窗体, 并将用户类型和用户名传到mdi窗体中 gnusertype = cbousertype.listindex gsusername = txtpwd 注意调用顺序 unload me mdimain.show end ifend subprivate sub form_load() cbousertype.listindex = 0end sub4.2成绩查询(1)该程序模块用于对学生成绩的查询,用户可以通过录入课程类型、课程号、课程名,分别对学生成绩的查询。option explicit表示用户是否点击“确定”

11、,来添加一个课程信息public mbadded as booleanprivate sub cbotype_click() 点击课程类型时,动态的改变对应的课程类型号 dim strsql if cbotype.listindex 0 then strsql = select * from course where typeid = & cbotype.itemdata(cbotype.listindex) else strsql = select * from course end if if dataenv.rsaddcourse.state adstateclosed then dat

12、aenv.rsaddcourse.close dataenv.rsaddcourse.open strsql刷新dcbserial所列的课程类型号 dcbserial.rowmember = dcbserial.refresh dcbserial.refill dcbserial.rowmember = addcourse dcbserial.refresh dcbserial.refill dcbserial = 刷新dcbname所列的课程类型名 dcbname.rowmember = dcbname.refresh dcbserial.refill dcbname.rowmember =

13、 addcourse dcbname.refresh dcbname.refill dcbname.text = call dcbname_click(0) call dcbserial_click(0) cmdok.enabled = (dcbserial.text )end subprivate sub cmdcancel_click() mbadded = false me.hideend subprivate sub cmdok_click() mbadded = true me.hideend subprivate sub dcbname_click(area as integer)

14、 动态改变dcbserial中的课程号 dcbserial.text = dcbname.boundtext cmdok.enabled = (dcbserial.text )end subprivate sub dcbserial_click(area as integer) 动态改变dcbname中的课程名 dcbname.text = dcbserial.boundtext cmdok.enabled = (dcbserial.text )end sub4.3成绩查询(2) 该程序模块可用于用户同过对学生所在系、所在班、学生学号、姓名,分别对学生的成绩进行查询。option explic

15、it表示用户是否点击“确定”,来添加一个课程信息public mbadded as booleanprivate sub cboclass_click() 针对所选的班级,列出班级中所有的学籍信息 dim strsql if cboclass.text = 全部 then strsql = from student order by serial else strsql = from student where class= & cboclass & order by serial end if dataenv.rsaddstudent.closedataenv.rsaddstudent.op

16、en select * & strsql 刷新dcbserial所列的学号 dcbserial.rowmember = dcbserial.refill dcbserial.refresh dcbserial.rowmember = addstudent dcbserial.refill dcbserial.refresh dcbserial.text = 刷新dcbname所列的学生姓名 dcbname.rowmember = dcbname.refresh dcbserial.refill dcbname.rowmember = addstudent dcbname.refresh dcb

17、name.refill dcbname.text = end subprivate sub cmdcancel_click() mbadded = false me.hideend subprivate sub cmdok_click() mbadded = true me.hideend subprivate sub dcbname_click(area as integer) 动态改变dcbserial中的学号 dcbserial.text = dcbname.boundtext cmdok.enabled = (dcbserial.text )end subprivate sub dcb

18、serial_click(area as integer) dcbname.text = dcbserial.boundtext cmdok.enabled = (dcbserial.text )end subprivate sub framain_dragdrop(source as control, x as single, y as single)end subprivate sub txtscore_change() cmdok.enabled = len(dcbserial.text) 0 and len(txtscore.text) 0end subprivate sub txts

19、core_keypress(keyascii as integer) 如果输入的字符不属于数字或者顿号,则取消输入的字符 if (keyascii asc(9) or keyascii asc(0) and keyascii asc(.) and keyascii vbkeyback then keyascii = 0end sub4.4按课程进行成绩管理该程序模块用于用户对相应课程的管理,包括对成绩的添加、编辑、删除、报表等内容,同时用户可以查询该门课程学生的平均成绩。option explicit当改变记录集时,需要刷新整个网格控件sub refreshgrid() grdscan.dat

20、amember = grdscan.refresh if dataenv.rssqlcourse.state adstateclosed then dataenv.rssqlcourse.close dataenv.rssqlcourse.open grdscan.datamember = sqlcourse grdscan.refresh 刷新各个绑定控件 call grdscan_changeend sub用以在浏览时,根据当前记录所出的位置不同,来改变个浏览按钮的状态sub changebrowsestate() with dataenv.rssqlcourse 如果没有任何记录,则清空

21、显示目录;并且使浏览部分和管理部分的按钮无效 if .state = adstateclosed then .open 假如处于记录的头部 if .bof then if not .eof then dataenv.rssqlcourse.movefirst cmdprevious.enabled = false cmdfirst.enabled = false else cmdprevious.enabled = true cmdfirst.enabled = true end if 假如处于记录的尾部 if .eof then if not .bof then dataenv.rssqlc

22、ourse.movelast cmdnext.enabled = false cmdlast.enabled = false else cmdnext.enabled = true cmdlast.enabled = true end if end withend sub 计算该课程的总成绩和平均成绩 call calculate(grdscan.columns(0).celltext(grdscan.bookmark)end subprivate sub cmdclose_click() unload meend subprivate sub cmdedit_click() 修改当前所选的成

23、绩信息 on error goto errhandler with frmaddstudent load frmaddstudent .caption = 修改成绩信息 将当前所定位的学号和姓名信息写入到frmaddstudent的dcbserial和dcbname中 .dcbserial.text = grdscore.columns(0).celltext(grdscore.bookmark) .dcbname.text = .dcbserial.boundtext 将当前所定位的课程的成绩写入到frmscore.txtscore中 .txtscore.text = grdscore.co

24、lumns(grdscore.columns.count - 1).celltext(grdscore.bookmark) .cmdok.enabled = true .show vbmodal 如果用户没有点击确认按钮,则退出处理过程 if not .mbadded then unload frmaddstudent exit sub end if 添加成绩记录 dim str str = update score set score= & .txtscore.text str = str & where courseid= & grdscan.columns(0).celltext(grd

25、scan.bookmark) & str = str & and studentid= & .dcbserial.text & dataenv.con.execute str unload frmaddstudent end with unload frmaddstudent 刷新整个网格控件 call refreshscore(grdscan.columns(0).celltext(grdscan.bookmark) exit sub errhandler: msgbox err.description, vbcritical, 错误end subprivate sub cmdfirst_c

26、lick() dataenv.rssqlcourse.movefirst dataenv.rssqlcourse.moveprevious call changebrowsestateend subprivate sub cmdlast_click() dataenv.rssqlcourse.movelast call changebrowsestateend subprivate sub cmdlist_click() 针对所选的课程类型,列出中所有所属的课程信息 dim strsql if cbotype.listindex = 0 then strsql = select course.

27、serial, , course.period, as typename & _ from course, coursetype where course.typeid=coursetype.id order by serial else strsql = select course.serial, , course.period, as typename & _ from course, coursetype where course.typeid=coursetype.id and

28、course.typeid= & _ cbotype.itemdata(cbotype.listindex) & order by serial end if with dataenv.rssqlcourse if .state = adstateopen then .close .open strsql, dataenv.con, adopenstatic, adlockoptimistic end with 刷新网格控件 call refreshgrid call changebrowsestate call grdscan_changeend subprivate sub cmdnext

29、_click() dataenv.rssqlcourse.movenext call changebrowsestateend subprivate sub cmdprevious_click() dataenv.rssqlcourse.moveprevious call changebrowsestateend subprivate sub grdscan_rowcolchange(lastrow as variant, byval lastcol as integer) 当前行改变,则动态改变所要显示的记录 if lastrow grdscan.bookmark then if grdsc

30、an.approxcount 0 then call refreshscore(grdscan.columns(0).celltext(grdscan.bookmark) end if end ifend sub4.5按学生进行成绩管理该程序模块用于用户同过学生所在班、所在系查询学生的具体相应信息。option explicit当改变记录集时,需要刷新整个网格控件sub refreshgrid() grdscan.datamember = grdscan.refresh if dataenv.rssqlstudent.state adstateclosed then dataenv.rssql

31、student.close dataenv.rssqlstudent.open grdscan.datamember = sqlstudent grdscan.refresh 刷新各个绑定控件 call grdscan_changeend subprivate sub cmdadd_click() on error goto errhandler with frmaddcourse load frmaddcourse .caption = 添加成绩信息 .show vbmodal 如果用户没有点击确认按钮,则退出处理过程 if not .mbadded then unload frmaddco

32、urse exit sub end if 添加成绩记录 dim str str = insert into score(studentid, courseid, score) values( str = str & grdscan.columns(0).celltext(grdscan.bookmark) & , & .dcbserial.text & , & .txtscore.text str = str & ) dataenv.con.execute str unload frmaddcourse end with unload frmaddcourse 刷新整个网格控件 call re

33、freshscore(grdscan.columns(0).celltext(grdscan.bookmark) exit sub errhandler: msgbox err.description, vbcritical, 错误end subprivate sub cmdnext_click() dataenv.rssqlstudent.movenext call changebrowsestateend subprivate sub cmdprevious_click() dataenv.rssqlstudent.moveprevious call changebrowsestateen

34、d subprivate sub cmdreport_click() on error resume next dim rpt as new rptstudentscore load rpt rpt.caption = 学生 & grdscan.columns(1).celltext(grdscan.bookmark) & 的成绩信息 rpt.show 1end subprivate sub grdscan_dblclick() sstmain.tab = 1end subprivate sub grdscan_rowcolchange(lastrow as variant, byval lastcol as integer) 当前行改变,则动态改变所要显示的记录 if lastrow grdscan.bookmark then if grdscan.approxcount 0 then call refreshscore(grdscan.columns(0).celltext(grdscan.bookmark) end if end ifend sub第五章 数据库表5.1学生表:表5.1学生表5.2班级表:表5.2班级表5.3课程表:表5.3课程表5.4分数表:表5.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论