VB课程设计-学生综合管理系统.doc_第1页
VB课程设计-学生综合管理系统.doc_第2页
VB课程设计-学生综合管理系统.doc_第3页
VB课程设计-学生综合管理系统.doc_第4页
VB课程设计-学生综合管理系统.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

学生综合管理系统姓 名:学 号:指导老师: 设计时间:2006年12月26日-2007年1月7日目录第1章 设计的目的和意义1第2章 系统的功能流程图1第3章 数据库的设计3第4章 主要内容(设计过程、界面、代码)741登录窗体 742主控界面 943档案管理14431档案浏览 14432档案添加 16433档案查询 1944成绩管理22441成绩浏览与修改 22442成绩添加 24443考试类型设置 28 45、学费管理 33451学费设置浏览 33452学费设置添加 35453学生交费浏览 39454学生交费添加 41455学生交费查询 45 46、课程设定 48461基本课程设计 48462班级课程浏览 54462班级课程设置 56 47、系统维护 60471增加用户 60472密码修改 64第5章 设计的体会 66第6章 附录 67 61、实现主要功能的核心源程序 67 62、附录参考书 67第1章 设计的目的和意义 系统是对高校教师及管理人员提供的对在校学生有效管理的一个信息系统。系统设计的目的是实现纪录、查询和修改学生档案信息;对于学生缴费情况能有效的处理,以及设置课程信息及考试相关信息。本系统的开发具有很强的使用价值及实践意义。开发本系统不仅能很好的巩固我们在学习中的所掌握的知识,而且系统本身就是应用于实践,为学校教学管理提供了很大的方便性,提高了工作效率;同时方便了我们自己。第2章 系统功能流程图学生综合管理系统 用户登陆系统主控界面档案管理成绩管理学费管理课程设置用户管理管理添加查询浏览提交查询权限设定增加设置学费增加图2.1 系统功能流程图第3章 数据库的设计本系统的数据库是access数据库,在access环境下创建数据库stud.mdb文件。该数据库包括学生档案表、班级信息表、各专业学生学费表、管理人员表用于纪录学生的基本信息数据库表结构如下所示:字段名类型大小说明学号文本10学生学号姓名文本8学生姓名性别文本2学生性别班级文本10班级出生年月日期/时间家庭住址文本30入学时间日期/时间学生入学时间表3.1 学生档案表字段名类型大小说明年级文本16班级文本20年制文本8学习年限班主任文本8备注备注表3.2 班级信息表字段名类型大小说明课程名称文本20纪录课程名称教材文本30所使用教材表3.3 课程种类表字段名类型大小说明学号文本10学生学号学期文本50类型文本16期中/期末课程名称文本20分数数字单精度型考试成绩表3.4 学生成绩表字段名类型大小说明年级文本16专业文本12专业类型年制文本8学习年限学期文本50课程名称文本20开设课程表3.4 课程信息表字段名类型大小说明username文本20用户名uerpassword文本20密码admin文本2是否为管理员readonly文本2是否为只读用户qx1文本2是否有系统管理权限qx2文本2是否有档案管理权限qx3文本2是否有交费管理权限qx4文本2是否有成绩管理权限表3.4 管理人员表字段名类型大小说明年级文本16专业文本50年制文本20学习年限学期文本40学费货币应缴纳学费表3.4 学费表字段名类型大小说明学号文本10学期文本50缴费货币货币已交纳费用欠费货币货币欠费额日期日期日期/时间纪录时间操作员文本10添加纪录人员表3.4 学身缴费情况第4章 主要内容41登录窗体图4.1 登录窗体设计过程:用于输入用户名和密码登录,提示中写可以以用户名和密码都为guest进入系统,不过是只读用户。点击确定判断数据库中的用户是否为合法用户。设计代码:private sub cmdcancel_click()endend subprivate sub cmdok_click()dim sql as string使用sql语言进行数据库的查找sql = select userpassword from use where username= & txtusername & 使用find语句查找数据库;(不能刷新)adodc1.recordset.find username= & txtusername & , , adsearchforward, 1adodc1.recordsource = sqladodc1.refreshif not adodc1.recordset.eof then if adodc1.recordset!userpassword txtpassword then msgbox 密码错误! txtpassword.setfocus txtpassword = elseif adodc1.recordset!userpassword = txtpassword then msgbox 登陆成功,欢迎进入本系统!, vbokonly + vbinformation, 提示 mdiform1.show me.hide end ifelseif adodc1.recordset.eof then msgbox 无此用户 txtusername.setfocus txtusername = txtpassword = end ifend subprivate sub command1_click()msgbox 可以以用户名和密码均为guest进入, vbokonly + vbinformation, 提示txtusername.setfocusend subprivate sub form_load()opentable adodc1, useadodc1.refreshend sub42主控界面图4.2 主控界面设计过程:所有功能都在菜单中打开来实现,在最下面添加了工具栏,来显示时间,操作员,状态等信息。在代码中判断登陆时的用户权限,不同权限有不同的权限来浏览各个窗体。设计代码:private sub adddangan_click()if qx2 = true then form1.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub addjiaofei_click()if qx3 = true then form10.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub banjikechengliulan_click()form13.showend subprivate sub cengdie_click() mdiform1.arrange 0end subprivate sub chengji_click()end subprivate sub chengjiadd_click()if qx4 = true then flag = true form6.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub chongpai_click() mdiform1.arrange 3end subprivate sub chuizhi_click()mdiform1.arrange 2end subprivate sub classkechengset_click()if qx4 = true then form15.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub danganfind_click()form4.showend subprivate sub liulanbiao_click()form2.showend subprivate sub jiaofeifind_click()form12.showend subprivate sub jiaofeiliulan_click()form11.showend subprivate sub jibenkechengset_click()if qx4 = true then form14.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub kecheng_click()form13.showend subprivate sub liulanchengjibiao_click()form5.showend subprivate sub liulandanganbiao_click()form2.showend subprivate sub mdiform_load()statusbar1.panels(2) = nowopentable adodc1, useadodc1.refreshadodc1.recordsource = select * from use where username = & frmlogin.txtusername & adodc1.refresh if adodc1.recordset!admin = y then qxstr = admin elseif adodc1.recordset!userreadonly = y then qxstr = userreadonly end if if adodc1.recordset!qx1 = y then qx1 = true end if if adodc1.recordset!qx2 = y then qx2 = true end if if adodc1.recordset!qx3 = y then qx3 = true end if if adodc1.recordset!qx4 = y then qx4 = true end ifstatusbar1.panels(3) = 当前操作员: & frmlogin.txtusernameif qxstr = admin then zhuangtai = 超级管理员elseif qxstr = userreadonly then zhuangtai = 只读用户else zhuangtai = 普通用户end ifstatusbar1.panels(4) = 状态: & zhuangtaiend subprivate sub mdiform_mouseup(button as integer, shift as integer, x as single, y as single)弹出式菜单if button = 2 then popupmenu tanend ifend subprivate sub mdiform_unload(cancel as integer)call quit_clickend subprivate sub quit_click()if msgbox(确定要要退出本系统么?, vbokcancel + vbexclamation, 警告) = vbok thenendend ifend subprivate sub shuiping_click() mdiform1.arrange 1end subprivate sub textleixing_click()if qx4 = true then form7.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub timer1_timer()statusbar1.panels(2) = nowend subprivate sub useradd_click()if qx1 = true then form16.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub viewchengji_click()form5.showend subprivate sub viewdangan_click()form2.showend subprivate sub viewjiaofei_click()form11.showend subprivate sub xiugaimima_click()form17.showend subprivate sub xuefeiadd_click()if qx3 = true then form9.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub xuefeishezhi_click()form8.showend sub43档案管理431档案浏览图4.3.1 档案浏览设计过程:用控件可以实现档案的浏览,在此窗体所有上用户可以浏览,查找,有权限的用户可以进行修改和删除。此窗体与数据轮中的student表进行连接。设计代码:private sub command1_click()form4.showend subprivate sub command2_click()if qx2 = true then form3.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub command3_click()if qx2 = true then 删除语句 if msgbox(确定要删除学号为 & adodc1.recordset!学号 & 的记录么? & chr(10) + chr(13) & 会导致该学生的信息丢失! & chr(10) + chr(13) & 确定么?, vbyesno + vbexclamation, 警告) = vbyes then if msgbox(真的要删除么?, vbyesno + vbexclamation, 警告!) = vbyes then adodc1.recordset.delete adodc1.recordset.update msgbox 删除成功!, vbokonly + vbinformation, 提示! end if end ifelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub command4_click()unload meend subprivate sub form_load()打开数据库中的student表opentable adodc1, studentadodc1.refresh连接datagrid1表到数据库set datagrid1.datasource = adodc1datagrid1.refreshend sub432档案添加图4.3.2 档案登记设计过程:用于档案的登记,此窗体和档案浏览窗体中的数据表进行了连接,可以直接进行添加,前提是必须有权限,加入了text 和combo控件的keypress事件,让用户可以更轻松的进行添加。设计代码:private sub combo1_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub combo2_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub command1_click()定义变量dim msgdim f as booleandim g as booleandim j as integerf = trueg = true判断文本框是否为空for j = 0 to 4 if text1(j).text = then msgbox label2(j).caption & 不能为空 !, vbexclamation + vbokonly, 警告 f = false text1(j).setfocus exit sub end ifnext j判断出生年月是否为日期if not isdate(text1(2).text) then msgbox 应输入日期 yy-mm-dd, vbokonly + vbinformation, 提示 g = false反白错误的框 text1(2).setfocus text1(2).selstart = 0 text1(2).sellength = 10 exit subend if判断入学时间是否为日期if not isdate(text1(4).text) then msgbox 应输入日期 yy-mm-dd, vbokonly + vbinformation, 提示 g = false反白错误的框 text1(4).setfocus text1(4).selstart = 0 text1(4).sellength = 10end if判断是否要保存if f = true and g = true then msg = msgbox(确定要添加么?, vbyesno + vbinformation, 提示)end if确定后执行的语句if msg = vbyes thenmsgbox 添加成功!, vbokonly + vbinformation, 提示 adodc1.recordset.addnew数据传递到数据库 adodc1.recordset!学号 = text1(0).text adodc1.recordset!姓名 = text1(1).text adodc1.recordset!出生年月 = text1(2).text adodc1.recordset!家庭住址 = text1(3).text adodc1.recordset!入学时间 = text1(4).text adodc1.recordset!备注 = text1(5).text adodc1.recordset!性别 = combo1.text adodc1.recordset!班级 = combo2.text adodc1.recordset.update添加保存后清空文本for j = 0 to 5 text1(j).text = next jend ifform2.showend subprivate sub command2_click()退出该窗体unload meend subprivate sub form_load()打开数据库中的student表opentable adodc1, student初始化combo的初值combo1.text = combo1.list(listindex)combo2.text = combo2.list(listindex)end subprivate sub text1_keypress(index as integer, keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub form_activate()text1(0).setfocusend sub433档案查询图4.3.3 学生信息查找设计过程:用户可以根据自己的需要按学号,姓名,班级查找,查找的学生信息会显示在档案浏览的窗体上,用的是sql语言。在此窗体上必须输入至少一条记录,不然会提示。若没有找到一条符合的记录,则会提示无此记录。设计代码:private sub command1_click()定义sql语言dim sqlxuehao as stringdim sqlxingming as stringdim sqlbanji as stringsqlxuehao = select * from student where 学号= & text1.text & sqlxingming = select * from student where 姓名= & text2.text & sqlbanji = select * from student where 班级= & combo1.text & if combo1.text = and text1.text = and text2.text = then label1.caption = 至少一条记录不空 exit subend ifif text1.text then form2.adodc1.recordsource = sqlxuehao form2.adodc1.refresh form2.datagrid1.refreshend ifif text2.text then form2.adodc1.recordsource = sqlxingming form2.adodc1.refresh form2.datagrid1.refreshend ifif combo1.text then form2.adodc1.recordsource = sqlbanji form2.adodc1.refresh form2.datagrid1.refreshend ifif form2.adodc1.recordset.eof then msgbox 无此记录, vbokonly + vbinformation, 提示end ifunload meend subprivate sub command2_click()退出该窗体unload meend subprivate sub form_activate()text1.setfocusend subprivate sub combo1_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub text1_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub text2_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend sub44成绩管理441成绩浏览与修改图4.4.1 考试成绩浏览设计过程:通过一个combo数组(4个),来实现各个信息的选择,符合的信息会在下面显示出来,同时此窗体同样可以连接到其它的窗体上,例如修改。若是有权限的话还可以直接删除。此窗体是连接到数据库中的scorei表。设计代码:private sub command1_click()if qx4 = true then flag = false form6.showelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub command2_click()if qx4 = true then 删除语句 if msgbox(确定要删除学号为 & adodc1.recordset!学号 & 的记录么? & chr(10) + chr(13) & 会导致该学生的信息丢失! & chr(10) + chr(13) & 确定么?, vbyesno + vbexclamation, 警告) = vbyes then if msgbox(真的要删除么?, vbyesno + vbexclamation, 警告!) = vbyes then adodc1.recordset.delete adodc1.recordset.update msgbox 删除成功!, vbokonly + vbinformation, 提示! end if end ifelse msgbox 对不起,您没有权限!, vbokonly + vbexclamation, 警告!end ifend subprivate sub command3_click()定义sql语言dim sqlxuwqi as stringdim sqlleixing as stringsqlxuwqi = select * from score where 学期= & combo1(2).text & sqlleixing = select * from score where 类型= & combo1(3).text & adodc1.recordsource = sqlxuwqiadodc1.recordsource = sqlleixingadodc1.refreshdatagrid1.refreshif adodc1.recordset.eof then msgbox 无此记录, vbokonly + vbinformation, 提示end ifend subprivate sub command4_click()unload meend subprivate sub form_load()打开数据库中的score和leixing表opentable adodc1, scoreopentable adodc2, leixing初始化combo的初值for i = 0 to 2 combo1(i).text = combo1(i).list(listindex)next i连接datagrid1表到数据库set datagrid1.datasource = adodc1datagrid1.refresh初始化combo1(3)的值combo1(3).clearadodc2.recordset.movefirstdo until adodc2.recordset.eof combo1(3).additem adodc2.recordset!类型 adodc2.recordset.movenextloop combo1(3).listindex = 0end sub442成绩添加图4.4.2 成绩添加设计过程:有权限的用户可以进行成绩的添加或删除的操作,学期,专业,类型都可以从combo框中选择,学号,姓名是用户自己输入的,且不能为空,还有考试成绩,使用了keypress事件,只能键入数字,而且限定长度为3位数。设计代码:private sub combo1_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub combo2_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub combo3_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub command1_click()判断文本框是否为空if text1.text = then msgbox label3.caption & 不能为空 !, vbexclamation + vbokonly, 警告 text1.setfocus exit subend ifif text2.text = then msgbox label2(2).caption & 不能为空 !, vbexclamation + vbokonly, 警告 text2.setfocus exit subend ifif text3.text = then msgbox label2(4).caption & 不能为空 !, vbexclamation + vbokonly, 警告 text3.setfocus exit subend ifif flag = true then 确定后执行的语句 if msgbox(确定要添加么?, vbyesno + vbinformation, 提示) = vbyes then msgbox 添加成功!, vbokonly + vbinformation, 提示 form5.adodc1.recordset.addnew 数据传递到数据库 form5.adodc1.recordset!学期 = combo1.text form5.adodc1.recordset!班级 = combo2.text form5.adodc1.recordset!学号 = text2.text form5.adodc1.recordset!姓名 = text3.text form5.adodc1.recordset!课程名称 = visual basic form5.adodc1.recordset!类型 = combo3.text form5.adodc1.recordset!分数 = text1.text form5.adodc1.recordset!年级 = 2005级 form5.adodc1.recordset.update end ifelse 确定后执行的语句 if msgbox(确定要修改么?, vbyesno + vbinformation, 提示) = vbyes then msgbox 修改成功!, vbokonly + vbinformation, 提示 数据传递到数据库 form5.adodc1.recordset!学期 = combo1.text form5.adodc1.recordset!班级 = combo2.text form5.adodc1.recordset!学号 = text2.text form5.adodc1.recordset!姓名 = text3.text form5.adodc1.recordset!课程名称 = visual basic form5.adodc1.recordset!类型 = combo3.text form5.adodc1.recordset!分数 = text1.text form5.adodc1.recordset!年级 = 2005级 form5.adodc1.recordset.update end ifend ifunload meend subprivate sub form_load()combo1.text = combo1.list(listindex)combo2.text = combo2.list(listindex)初始化combo3的值combo3.clearform5.adodc2.recordset.movefirstdo until form5.adodc2.recordset.eof combo3.additem form5.adodc2.recordset!类型 form5.adodc2.recordset.movenextloop combo3.listindex = 0判断是否是修改的窗体if flag = false then label1.caption = 成绩修改 command1.caption = 修改 数据库数据传递到文本里 combo1.text = form5.adodc1.recordset!学期 combo2.text = form5.adodc1.recordset!班级 text2.text = form5.adodc1.recordset!学号 text3.text = form5.adodc1.recordset!姓名 combo3.text = form5.adodc1.recordset!类型 text1.text = form5.adodc1.recordset!分数end ifend subprivate sub form_activate()combo1.setfocusend subprivate sub command2_click()退出该窗体unload meend subprivate sub text1_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend subprivate sub text2_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifif keyascii = 8 then text2 = end ifend subprivate sub text3_keypress(keyascii as integer)回车换下一个输入项目if keyascii = 13 then sendkeys tabend ifend sub443考试类型设置图4.4.3 考试类型设置设计过程: 有权限的用户盒超级管理员可以进行考试类型的增加,修改,删除等操作。在此窗体修改过的东西会在其它具有选择类型的combo控件的窗体中作出相应的修改。最大特点是在点击增加或修改按钮时,其他按钮的enable属性会变成false,以免造成不正确的操作。设计代码:private sub command1_click()增加考试类型的代码if command1.caption = 加入列表 then adodc1.recordsource = select * from leixing where 类型= & text1.text & adodc1.refresh 判断是否重复 if adodc1.recordset.eof = false then msgbox 已经存

温馨提示

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

评论

0/150

提交评论