数据库教务管理系统课程设计.doc_第1页
数据库教务管理系统课程设计.doc_第2页
数据库教务管理系统课程设计.doc_第3页
数据库教务管理系统课程设计.doc_第4页
数据库教务管理系统课程设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计课程设计名称: 数据库应用课程设计 专 业 班 级 : 计算机应用技术0801 学 生 姓 名 : 付 权 学 号 : 200838940127 指 导 教 师 : 程 凤 娟 课程设计时间:2011.12.20-2010.12.24 计算机应用技术专业课程设计任务书学生姓名付权专业班级0801学号200838940127题 目教务管理系统课题性质a工程设计课题来源d自拟课题指导教师程凤娟同组姓名无主要内容1、登录管理模块:为了系统的安全性,根据不同权限给出不同服务。2、用户管理模块:仅系统管理员可用,对这个系统的所有用户进行管理。3、教务基本信息管理模块:对以下模块进行增加、修改和删除管理。a、课程管理子模块b、学籍管理子模块 c、班级管理子模块d、系别管理子模块e、课程管理子模块f、成绩管理子模块4、 教务信息查询模块:在各基本表的基础上进行信息的查询。a、成绩查询子模块任务要求以visual basic。net为前台开发工具,以sql2000为数据库创建教务管理系统,实现增加、修改和删除功能参考文献1 萨师煊,王珊.数据库系统概论(第三版). 北京高等教育出版社.20002 齐治昌,谭庆平,宁洪,软件工程(第二版).北京:高等教育出版社.20043 david i.schneider,visual basic.net编程导论. 电子工业出版社.20034 张智毅.visual basic.net+sql server 数据库开发从基础到实践.电子工业出版社.2006审查意见指导教师签字:教研室主任签字: 2010年 12月 24 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页目 录第1章 应用背景与需求分析21.1 背景21.2 数据需求21.3 事务需求3第2章 概要设计42.1 设计系统模块42.1.1系统功能42.1.2 系统功能模块划分42.2 设计数据库42.2.1 创建数据库42.2.2 创建数据表52.2.3 连接数据库52.3公共模块52.3.1 添加全局变量52.3.2 定义公共函数6第3章 详细设计63.1主窗体设计63.2用户管理113.3系别管理133.4 班级管理163.5 课程管理173.6 学籍管理18 3.7 成绩管理20 3.8 成绩查询23第4章 测试26第5章 结论26参考文献 28第一章 应用背景与需求分析1.1 教务管理系统简介(背景)随着办公自动化水平的不断提高,现在学校管理教务也逐渐从手工转到计算机自动化信息处理阶段。设计一个功能完整、操作简便、界面友好的学生信息管理系统已经势在必行。本系统开发的目的是提高教务管理工作的效率,保证信息的准确和规范,减少相关人员的工作量,使学校的教务管理工作真正做到科学、合理的规划,系统、高效的实施。 该系统主要通过以sqlserver2000为数据库和visual basic.net, ado.net 为前台开发界面来实现课程管理、学生信息管理、成绩管理和系统管理功能,基本上满足了用户在教务管理方面的需求,并具有良好的可扩充性。1.2 数据需求根据系统的需求,首先将要记录的信息分类,要记录的信息如下。1userinfo:包括用户编码、用户密码、用户类别2departmentinfo:包括系编号、系名、系主任3classinfo:班级编号、系编号、班级年份、班级名4courseinfo:课程编号、课程名、任课老师、课程学分、课程简介5studentinfo:学生编号、学生姓名、学生性别、所属班号、生日、身份证号、本人照片6result:学生编号、课程编号、分数、任课老师、录入时间1.3 事务需求经过实际考察、咨询和分析,教务管理系统主要应该具有以下功能模块,如1.1图。在用户管理部分, 具体功能包括增加用户、修改用户和删除用户在系别管理部分, 具体功能包括增加系别、修改系别和删除系别在班级管理部分, 具体功能包括增加班级、修改班级和删除班级在课程管理部分, 具体功能包括增加课程、修改课程和删除课程在学籍管理部分, 具体功能包括增加学生信息、修改学生信息和删除学生信息6在成绩管理部分, 具体功能包括增加成绩信息、修改成绩信息和删除成绩信息教务管理系统登陆管理用户管理教务信息管理教务信息查询系别管理班级管理课程管理学籍管理成绩管理成绩查询图1.1 教务管理系统模块图1.4 系统开发平台前台:1、 硬件要求:cpu: pentium 4 2.0ghz以上ibm兼容机内存:512mb以上容量显卡:32mb或以上显存之agp接口显卡2、软件要求:操作系统:microsoft windows 2000/xp开发工具:microsoft visual studio.net2005数据库服务器:1、 硬件要求:cpu: pentium4 2.8ghz以上ibm兼容机内存:1024mb以上容量显卡:32mb或以上显存之agp接口显卡2、 软件要求:操作系统:microsoft windows xp数据库服务器:microsoft sql server 2000第二章 总体设计2.1 设计系统模块2.1.1系统功能 根据需求,系统要实现如下功能: (1)登录管理 (2)用户管理(3)教务基本信息管理(4)教务信息管理2.1.2 系统功能模块划分 系统功能模块划分如下所示: 登录管理模块:为了系统的安全性,根据不同权限给出不同服务。 用户管理模块:仅系统管理员可用,对这个系统的所有用户进行管理。 教务基本信息管理模块:对各基本表进行管理。 1、课程管理子模块 2、学籍管理子模块 3、班级管理子模块 4、系别管理子模块 5、课程管理子模块 6、成绩管理子模块 教务信息查询模块:在各基本表的基础上进行信息的查询。 成绩查询子模块2.2 设计数据库2.2.1创建数据库(1)在服务器资源管理器中的任一节点右击。(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名student,选中“使用windowsnt集成安全性”单选按钮。(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。2.2.2创建数据表创建数据库后,为student数据库添加数据表,步骤如下。(1)在服务器资源管理器中右击数据库student下的“表”文件夹。在弹出的快捷菜单中执行“新建表”命令,出现表设计器。(2)添加表的字段和其他详细资料。各表数据结构如下表所示。表 名列 名数据类型含义userinfouseridnvarchar用户编号(主键)userpwdnvarchar用户密码usertypeint用户类别departmentinfodepartmentidint系编号departmentnvarchar系名depmanagernvarchar系主任classinfoclassidint班级编号departmentidint系编号classyearint班级年份classnumbernvarchar班级名courseinfocourseidint课程编号coursenamenvarchar课程名courseteachernvarchar任课老师coursepointint课程学分courseabouttext课程简介nnstudentinfostudetidint学生编号studetnnamenvarchar学生姓名sexnvarchar学生性别classidint所属班号birthdaydatetime生日personcardidnvarchar身份证号studentphotoimage本人照片resultstudentidint学生编号courseidint课程编号resultint分数teachernvarchar任课老师indatedatetime录入时间表2.1 教务管理系统各表数据结构2.3 公共模块2.3.1 添加全局变量在此系统中,总共有五个全局变量:1、userflag变量的类型为boolean,记录了是否有用户记录被添加或者修改。 public userflag as boolean 2、user变量的类型为string,记录了用户管理中的主键信息。 public user as string 3、userid变量的类型为string,记录了登录用户的id信息。 public userid as string 4、userright变量的类型为int16,记录了登录用户的权限信息。 5、sqlcon变量的类型为sqlconnection,是全局的数据库连接变量。 public sqlcon as new sqlconnection (“data source=20100908-0956;database=student;user id =sa;pwd=sa”)2.3.2定义公共函数1、judgeint函数:判断输入文本是否为整数。2、judgekeyexist函数:判断某数据表中某主键值是否存在。3、重写judgekeyexist函数:判断某数据表中某主键取值是否是字符串。4、重写judgekeyexist函数:判断某数据表中某主键是否是双主键,并且主键值均为整型。第三章 详细设计3.1主窗体设计本系统集成了“登录”模块,因此在系统加载时,需要先启动“登录”模块的“登录”窗体,只有用户输入了正确的用户名和密码后才能进入到系统。主窗体首先启动“登录”窗体,“登录”窗体运行界面如图1所示:图1代码如下:public class login inherits system.windows.forms.form public flag = false private sub btok_click(byval sender as system.object, byval e as system.eventargs) handles btok.click if me.tbname.text.trim() = string.empty then messagebox.show(姓名不能为空) me.tbname.focus() elseif me.tbpwd.text.trim() = string.empty then messagebox.show(密码不能为空) me.tbpwd.focus() else dim sql as string = select * from userinfo where userid = + me.tbname.text.trim() + and userpwd = + me.tbpwd.text.trim() + dim dt as datatable = getdatatable(sql) if dt.rows.count = 0 then messagebox.show(用户名不存在或密码不正确) me.tbpwd.focus() else userright = dt.rows(0)(usertype) userid = me.tbname.text.trim() flag = true me.close() end if end if end sub private sub btcancel_click(byval sender as system.object, byval e as system.eventargs) handles btcancel.click application.exit() end sub登陆成功后,并不是所有的菜单对所有用户来说都是可见的,在本系统中,共有三个角色,按不同角色登录后,运行的主窗体是不同的。登录成功后显示主窗体,“系统管理员登陆后”界面如图2所示:图2代码如下:public class frmmain inherits system.windows.forms.form#region windows 窗体设计器生成的代码#end region private sub frmmain_load(byval sender as object, byval e as system.eventargs) handles mybase.load dim check as boolean = true try do dim login as new login login.showdialog() if login.dialogresult = dialogresult.ok and login.flag then check = false elseif login.dialogresult = dialogresult.cancel then me.close() check = false end if loop while check if userright = 1 then me.user.visible = false elseif userright = 2 then me.user.visible = false mmanager.visible = false end if catch ex as exception writeerr(ex) end try end sub private sub user_click(byval sender as system.object, byval e as system.eventargs) handles user.click dim frmuser as new frmuser frmuser.mdiparent = me frmuser.show() end sub private sub courseman_click(byval sender as system.object, byval e as system.eventargs) handles courseman.click dim frmcourse as new frmcourse frmcourse.mdiparent = me frmcourse.show() end sub private sub studentman_click(byval sender as system.object, byval e as system.eventargs) handles studentman.click dim frmstudent as new frmstudent frmstudent.mdiparent = me frmstudent.show() end sub private sub classman_click(byval sender as system.object, byval e as system.eventargs) handles classman.click dim frmclass as new frmclass frmclass.mdiparent = me frmclass.show() end sub private sub departmentman_click(byval sender as system.object, byval e as system.eventargs) handles departmentman.click dim frmdep as new frmdepartment frmdep.mdiparent = me frmdep.show() end sub private sub resultman_click(byval sender as system.object, byval e as system.eventargs) handles resultman.click dim frmresult as new frmresult frmresult.mdiparent = me frmresult.show() end sub private sub resultquery_click(byval sender as system.object, byval e as system.eventargs) handles resultquery.click dim frmquery as new frmquery frmquery.mdiparent = me frmquery.show() end sub private sub changemypwd_click(byval sender as system.object, byval e as system.eventargs) handles changemypwd.click dim changepwd as new changepwd changepwd.showdialog() end sub private sub exitme_click(byval sender as system.object, byval e as system.eventargs) handles exitme.click exitme.visible = false user.visible = false infomanager.visible = false infoquery.visible = false end sub private sub relogin_click(byval sender as system.object, byval e as system.eventargs) handles relogin.click dim check as boolean = true try do dim login as new login login.showdialog() if login.dialogresult = dialogresult.ok and login.flag then check = false elseif login.dialogresult = dialogresult.cancel then me.close() check = false end if loop while check if userright = 0 then me.user.visible = true mmanager.visible = true mquery.visible = true elseif userright = 1 then mmanager.visible = true mquery.visible = true elseif userright = 2 then mquery.visible = true end if catch ex as exception writeerr(ex) end try end subend class“信息管理员登录后”界面如图3所示:图3“信息查询员登陆后”界面如图4所示:图43.2用户管理窗体运行后。将在“用户管理”窗体中显示所有的用户信息。“用户管理”窗体在运行中的界面如图5所示代码如下:imports system.data.sqlclientimports system.iopublic class frmuser inherits system.windows.forms.form dim usertype as int16 dim userpwd as string#region windows 窗体设计器生成的代码 #end region private sub frmuser_load(byval sender as object, byval e as system.eventargs) handles mybase.load binddata() end sub public sub binddata() try dim sql as string = select userid as 用户名,userpwd as 用户密码,usertype as 用户权限 from userinfo dim dt as datatable = getdatatable(sql) listbox1.datasource = dt listbox1.displaymember = 用户名 catch ex as exception writeerr(ex) end try end sub private sub deletedata() dim sql as string = delete from userinfo where userid= + user + dim sqlcmd as new sqlcommand sqlcmd.connection = sqlcon sqlcmd.commandtext = sql try sqlcon.open() sqlcmd.executenonquery() messagebox.show(删除记录成功) catch ex as exception messagebox.show(删除记录失败) writeerr(ex) finally sqlcon.close() end try binddata() end sub private sub menuitem1_click(byval sender as system.object, byval e as system.eventargs) handles menuitem1.click dim frminsert as new frmuserinsert frminsert.text = 用户添加 user = frminsert.showdialog() if frminsert.dialogresult = dialogresult.ok and userflag then binddata() end if end sub private sub menuitem2_click(byval sender as system.object, byval e as system.eventargs) handles menuitem2.click dim frminsert as new frmuserinsert frminsert.text = 用户修改 if listbox1.selectedindex = -1 then messagebox.show(请选择用户) else user = listbox1.text frminsert.showdialog() if frminsert.dialogresult = dialogresult.ok and userflag then binddata() end if end if end sub private sub menuitem3_click(byval sender as system.object, byval e as system.eventargs) handles menuitem3.click if listbox1.selectedindex = -1 then messagebox.show(请选择用户) else user = listbox1.text if messagebox.show(确定要删除?, 删除确认, messageboxbuttons.okcancel, messageboxicon.warning, messageboxdefaultbutton.button2) = dialogresult.ok then me.deletedata() end if end if end subend class3.3系别管理“系别管理”窗体界面运行如图5所示:图5该窗体是用windows窗体设计器生成的代码,因此在此不作说明。只简单说明添加系别的代码如下:imports system.data.sqlclientimports system.iopublic class frmdepartmentinherits system.windows.forms.formprivate sub datagrid1_currentcellchanged(byval sender as object, byval e as system.eventargs) handles datagrid1.currentcellchanged bindtextbox(me.datagrid1.currentcell.rownumber) end sub private sub btnadd_click(byval sender as system.object, byval e as system.eventargs) handles btnadd.click if me.txtdepid.text.trim() = string.empty then messagebox.show(系编号不能为空) me.txtdepid.focus() elseif not judgeint(txtdepid.text.trim) then messagebox.show(系编号必须为整数) me.txtdepid.focus() elseif judgekeyexist(departmentinfo, departmentid, txtdepid.text.trim) then messagebox.show(系编号已经存在) me.txtdepid.focus() elseif me.txtdepname.text.trim() = string.empty then messagebox.show(系名不能为空) me.txtdepname.focus() elseif me.txtdepman.text.trim() = string.empty then messagebox.show(系主任不能为空) me.txtdepman.focus() else me.insertdata() end if end sub private sub btnedit_click(byval sender as system.object, byval e as system.eventargs) handles btnedit.click if me.txtdepid.text.trim() = string.empty then messagebox.show(系编号不能为空) me.txtdepid.focus() elseif not judgeint(txtdepid.text.trim) then messagebox.show(系编号必须为整数) me.txtdepid.focus() elseif not judgekeyexist(departmentinfo, departmentid, txtdepid.text.trim) then messagebox.show(要更新的记录集不存在) me.txtdepid.focus() elseif me.txtdepname.text.trim() = string.empty then messagebox.show(系名不能为空) me.txtdepname.focus() elseif me.txtdepman.text.trim() = string.empty then messagebox.show(系主任不能为空) me.txtdepman.focus() else me.updatedata() end if end subprivate sub insertdata() dim depid as int16 = int16.parse(txtdepid.text.trim) dim depname as string = txtdepname.text.trim dim depman as string = txtdepman.text.trim dim value as string = depid.tostring + , + depname + , + depman + dim sql as string = insert into departmentinfo (departmentid, department,depmanager) values( + value + ) dim sqlcmd as new sqlcommand sqlcmd.connection = sqlcon sqlcmd.commandtext = sql try sqlcon.open() sqlcmd.executenonquery() messagebox.show(添加记录成功) catch ex as exception messagebox.show(添加记录失败) writeerr(ex) finally sqlcon.close() end try binddata() end sub3.4 班级管理“班级管理”窗体界面运行如图6所示:图6该窗体是用windows窗体设计器生成的代码,因此在此不作说明。只简单说明修改班级的代码如下:imports system.data.sqlclientimports system.iopublic class frmdepartmentinherits system.windows.forms.formprivate sub updatedata() dim classid as int16 = int16.parse(txtclassid.text.trim) dim classyear as string = cmbclassyear.text.trim dim classdep as string = depnametoid(cmbclassdep.text.trim) dim classnum as string = txtclassnum.text.trim dim sql as string = update classinfo set classyear= + classyear + ,departmentid= + classdep + ,classnumber= + classnum + where classid= + classid.tostring dim sqlcmd as new sqlcommand sqlcmd.connection = sqlcon sqlcmd.commandtext = sql try sqlcon.open() sqlcmd.executenonquery() messagebox.show(修改记录成功) catch ex as exception messagebox.show(修改记录失败) writeerr(ex) finally sqlcon.close() end try bindtree() end sub3.5 课程管理“课程管理”窗体界面运行如图7所示:图7该窗体是用windows窗体设计器生成的代码,因此在此不作说明。只简单说明删除班级的代码如下: private sub deletedata() dim courseid as int16 = int16.parse(txtcourseid.text.trim) dim sql as string = delete from courseinfo where courseid= + courseid.tostring() dim sqlcmd as new sqlcommand sqlcmd.connection = sqlcon sqlcmd.commandtext = sql try sqlcon.open() sqlcmd.executenonquery() messagebox.show(删除记录成功) catch ex as exception messagebox.show(删除记录失败) writeerr(ex

温馨提示

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

评论

0/150

提交评论