教学管理系统的设计与实现_第1页
教学管理系统的设计与实现_第2页
教学管理系统的设计与实现_第3页
教学管理系统的设计与实现_第4页
教学管理系统的设计与实现_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、教学管理系统的设计与实现课程设计报告教学管理系统的设计与实现课 程 数据库原理及应用 班 级 姓 名 学 号 指导教师 时间:2012 年 5 月 18 日 至 2012 年 6 月 6 日指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等)。成绩 指导教师签字 年 月 日目 录第一章 开发背景4第二章 功能描述5第三章 业务流程分析6第四章 数据流程分析84.1 数据流程图84.2数据字典.8第五章 概念模型设计10第六章 逻辑模型设计和优化11第七章 物理设计和实施14第八章 系统测试17第九章 课程设计心得体会28参考文献2927第一

2、章 开发背景随着计算机技术的飞速发展,教育信息化的进程不断深入,利用计算机技术已成为现代教育的一个重要发展方向,教学软件由于在现代教育中可以最大限度地利用教育资源,因而得到迅速的发展。我们所处的时代是一个信息增长和知识爆炸的时代,这一客观现实对传统教育方式提出了全新的要求,需要我们站在信息化社会的高度用全新的视野积极参与和促进教育改革。信息技术的迅速发展、电脑化教学与远程的网络化教学的普及,给传统的教学方式带来了重大的革命,也给教学改革的实施者们提出了很多新的课题。如何有效进行作业管理就是一个让很多老师头痛的问题。本系统实现了老师可以自由发布作业要求、发布查看公告,答疑,查看搜索公告,提出问题

3、,查询作业信息等功能;界面友好,使用方便。通过此系统使学校教学更方便、高效,实现资源的共享以及自动化的管理,帮助学校有效的开展全面的信息化教学,尤其适合于高校进行作业管理。第二章 功能描述学校需要一个教学系统,使教学不受地域限制,拓展教学工作的灵活性,实现课件发布,学生在线提问、教师在线答疑、作业发布等操作。系统主要功能如下:(1)课程介绍实现课程介绍和教学大纲的发布、浏览以及在线更新等功能(2)课件浏览学生可以根据章节浏览教学课件(3)课件管理教师能够自定义教学课件,对课件进行添加、修改和删除等操作(4)专业管理教师可以针对教学进度安排学生的上机实验,这些内容可以修改关系,教师可以添加、修改

4、、删除每章节的同步练习,学生在做完练习后,系统会根据选择题和填空题的答题结果给出正误判断。(5)模拟试题教师可以添加、修改、删除模拟试题,学生可以浏览试题、答题,答题完毕,给出参考答案。(6)答疑管理学生可以在线提问,学生留言后,教师可以留言内容进行管理,针对学生在网上提出的问题做出相应解答并对答疑的内容进行修改与补充,对内容不符合要求的留言进行更改和删除。(7)系统登陆系统用户分为学生、教师、管理员等用户,系统登陆时需要验证用户的合法性,合法用户可以转入相应页面。第三章 业务流程分析本系统实现了管理员发布公告,管理教师的功能;教师可以自由发布作业要求、发布查看公告,答疑,查看搜索公告,提出问

5、题,布置作业信息等功能;学生可查看公告、提出疑难问题、查看课件等功能。总体流程如图3-1,具体流程如图3-2、图3-3、图3-4所示。(1)总体业务流程图管理员图3-1总体业务流程图 (2)学生业务流程图学生登录显示结果用户信息正确显示结果1.1检查用户名、密码d1 学生信息1.2查询信息1.2.1查询公告信息1.2.2查询答疑信息1.2.3查询作业信息显示结果教师登录1.1检查用户名、 密码d1 教师信息1.2查询信息1.2.1查询作业上交信息1.2.2查询学生名单1.2.3查询学生疑问信息1.3在线答疑图3-2学生业务流程图(3)学生业务流程图 图3-3教师业务流程图(4)学生业务流程图管

6、理员登录1.1检查用户名和密码1.2添加、删除公告写入数据库d2 公告信息1.3发布公告显示结果果1.5个人资料修改写入数据库d1 管理员信息 图3-4管理员业务流程图第四章 数据字典4.1 数据流程图 通过需求分析,得出教学系统的处理数据流程如图4-1所示。学生注册p001教师公告解疑管理管理员公告管理员教师学生个人信息管理错误提示d登录验证信息s002s001f001d001d002图4-1数据流程图4.2数据字典 (1)数据流的描述数据流编号:s001数据流名称: 登录人员 简述:登录人员信息单数据流来源:学生/管理员生/教师数据流去向:信息判断数据流组成:账号+密码+身份等数据流量:1

7、000/天高峰流量:3000/天数据流编号:s002数据流名称: 登录人员信息无效提示 简述:管理员发现非法读者时的提示信息数据流来源:登录人员信息判断数据流去向:读者数据流组成:学生/管理员生/教师 数据流量:100/天 高峰流量:500/天(2)处理逻辑的描述 处理逻辑编号:f001处理逻辑名称:登录的人员角色信息判断 简述:判断信息的合法性输入的数据流:学生/管理员生/教师信息处理描述: 根据登录者提供的登录信息,验证其信息,验证通过则继续下移处理查看库存中是否有验证不通过则返回给读者信息指明为非法。输出的数据流: d001无效提示信息处理频率: 10次/天处理逻辑编号:d002处理逻辑

8、名称:疑难问题查询 简述:学生的问题是否有解决方法 输入的数据流:d002疑难问题目录信息 处理描述:根据读者提供的疑难信息,到仓库中查找是类似问题,有则进行提示处理,如没有则返回无信息。输出的数据流: 问题与回复信息处理频率: 800次/天(3)数据存储的描述数据存储编号:f001数据存储名称:管理员公告信息 简述:公告基本信息数据存储组成:标题+内容+时间关键字:标题 (4)外部实体的描述外部实体编号:p001外部实体名称:学生简 述:注册的人输入的数据流:s001输出的数据流:s001第五章 概念模型设计根据系统数据流图和数据字典,得出系统的总体概念模型(e-r)如图5-1所示。个人信息

9、管理/应用登录信息登录人员修改个人信息解疑公告发布图5-1系统的总体概念模型第六章 逻辑模型设计和优化根据系统的总体概念设计模型、e-r图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型及其对应构造,如表1表7所示。表6-1学生信息表编号姓名身份性别年龄籍贯政治面貌身份证号出生日期密码照片备注系别班级星座char(10)char(20)char(6)char(2)smallintchar(90)char(10)char(20)char(20)char(10)imagechar(1000)char(10)char(100)char(20)表6-2教师信息表编号姓名身份性别年龄籍贯

10、政治面貌身份证号出生日期密码照片备注系别班级星座char(10)char(20)char(6)char(2)smallintchar(90)char(10)char(20)char(20)char(10)imagechar(1000)char(10)char(100)char(20)表6-3管理员记录表编号姓名身份性别年龄籍贯政治面貌身份证号出生日期密码照片备注char(10)char(20)char(6)char(2)smallintchar(90)char(10)char(20)char(20)char(10)imagechar(1000)表6-4问题与回复信息表问题提问者提问时间回复 c

11、har(200) char(20)char(20)text表6-5管理员公告息表标题内容时间char(100)textchar(20)表6-6成绩信息表学号姓名科目总分答案char(10)char(20)char(10)smallinttext表6-7公告信息表标题内容时间char(100)textchar(20)第七章 物理设计和实施 得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。数据库实施主要包括在具体的dbms中创建数据库和表的过程,本设计所选用的dbms为sql serv2005(1

12、)创建数据库/*=*/* database: 教学系统数据库, 创建数据库,数据库名称为:教学管理系统 */*=*/create database 报刊发行员管理系统go(2)创建数据库表/*=*/* table: 学生 */*=*/create table 学生( 编号 char(10), 姓名 char(20), 身份char(6), 性别char(2), 年龄smallint 籍贯char(9),政治面貌char(10),身份证号char(20),出生日期char(20),密码char(10),照片image备注char(100),系别char(10),班级char(100),星座cha

13、r(20)/*=*/*=*/* table: 教师 */*=*/create table 教师( 编号 char(10), 姓名 char(20), 身份char(6), 性别char(2), 年龄smallint 籍贯char(9),政治面貌char(10),身份证号char(20),出生日期char(20),密码char(10),照片image备注char(100),系别char(10),班级char(100),星座char(20)/*=*/*=*/* table: 管理员*/*=*/create table 管理员( 编号 char(10), 姓名 char(20), 身份char(6)

14、, 性别char(2), 年龄smallint 籍贯char(9),政治面貌char(10),身份证号char(20),出生日期char(20),密码char(10),照片image备注char(100))/*=*/* table: 问题与回复 */*=*/create table问题与回复( 问题 char(200), 提问者 char(20),提问时间 char(20),回复 text) /*=*/* table: 管理员公告 */*=*/create table 管理员公告(标题 char(100), 内容 text, 时间 char(20)/*=*/* table: 成绩*/*=*/c

15、rete table 成绩( 学号 char(10), 姓名 char(20), 科目 char(10), 总分 smallint 答案 text)/*=*/* table: 公告 */*=*/create table 公告(标题 char(100), 内容 text, 时间 char(20)第八章 系统测试(1)登录界面 图8-1登录界面代码如下:private void button1_click(object sender, eventargs e) try if (textuserno.text.trim () = ) messagebox.show(用户账号不能为空!,提示:); e

16、lse if (textpwd.text.trim () = ) messagebox.show(密码不能为空!, 提示:); else if (comrole.text.trim () = ) messagebox.show(请选择您的登录身份!, 提示:); else /创建数据库连接 sqlconnection con = dbc_class.createcon(); con.open(); sqlcommand cmd1 = new sqlcommand(select count(*)from 学生 where 编号= + textuserno.text.trim () + and 密

17、码= + textpwd.text.trim () + and 身份= + comrole.text.trim () + , con); int i = convert.toint32(cmd1.executescalar(); sqlcommand cmd2 = new sqlcommand(select count(*)from 教师 where 编号= + textuserno.text.trim() + and 密码= + textpwd.text.trim() + and 身份= + comrole.text.trim() + , con); int j = convert.toin

18、t32(cmd2.executescalar(); sqlcommand cmd3 = new sqlcommand(select count(*)from 管理员 where 编号= + textuserno.text.trim() + and 密码= + textpwd.text.trim() + and 身份= + comrole.text.trim() + , con); int k = convert.toint32(cmd3.executescalar(); sqldatareader re; if (i 0) | (j 0) | (k 0) if (i 0) sqlcommand

19、 cmd11 = new sqlcommand(select * from 学生 where 编号= + textuserno.text + and 密码= + textpwd.text + and 身份= + comrole.text + , con); re=cmd11 .executereader (); re.read(); teacherstudentform3 ts = new teacherstudentform3(comrole.text,textuserno .text ,re1.tostring (),re14.tostring (); ts.show(); this.hi

20、de(); if (j 0) sqlcommand cmd22 = new sqlcommand(select * from 教师 where 编号= + textuserno.text + and 密码= + textpwd.text + and 身份= + comrole.text + , con); re = cmd22.executereader(); re.read(); teacherstudentform3 ts = new teacherstudentform3(comrole.text, textuserno.text, re1.tostring(), re14.tostri

21、ng(); ts.show(); this.hide(); if (k 0) admisterform2 admi = new admisterform2(textuserno .text ); admi.show(); this.hide(); else messagebox.show(用户账号、密码或身份错误!, 提示:); /弹出提示 catch (exception ex) messagebox.show(ex.tostring(); (2)有问有答界面 图8-2有问有答界面代码如下: private void refreshing() listview1.items.clear();

22、 listview1.columns.clear(); sqlconnection con = dbc_class.createcon(); ; con.open(); dataset dst = new dataset(); sqlcommand cmd = new sqlcommand(select * from 问题与回复, con); sqldataadapter dap = new sqldataadapter(cmd); dap.fill(dst); con.close(); this.listview1.columns.add(问题, 300, horizontalalignme

23、nt.center); this.listview1.columns.add(提问者, 60, horizontalalignment.center);/增加列标题 this.listview1.columns.add(提问时间, 120, horizontalalignment.center); listview1.view = view.details; listview1.gridlines = true;/显示网格线。 string str = new string3; foreach (datarow row in dst.tables0.rows) str0 = row问题.tos

24、tring(); str1 = row提问者.tostring(); str2 = row提问时间.tostring(); listviewitem item = new listviewitem(str); listview1.items.add(item); listview1.fullrowselect = true; int questionindex = 0; private void show() sqlconnection con = dbc_class.createcon(); ; con.open(); sqlcommand cmd = new sqlcommand(sele

25、ct * from 问题与回复 where 问题= + richtextbox3.text + , con); sqldatareader re = cmd.executereader(); while (re.read() richtextbox3.text = re0.tostring(); quewenzhe.text = re1.tostring(); quetime.text = re2.tostring(); richtextbox1.text = re3.tostring(); re.close(); con.close(); richtextbox1.readonly = tr

26、ue; richtextbox3.readonly = true; panel4.visible = true; panel5.visible = true; panel3.visible = true; panel6.visible = true; panel7.visible = false; panel10.visible = false; buttonquestion.visible = false; button1.enabled = true; button3.visible = true; button4.visible = true; richtextbox2.clear();

27、 private void listview1_selectedindexchanged(object sender, eventargs e) richtextbox3.clear(); /获取当前选定行的行数 for (int i = 0; i listview1.selecteditems.count; i+) questionindex = listview1.selecteditemsi.index; quetime.text = questionindex.tostring(); /获取当前行的某一列值 richtextbox3.text = listview1.itemsques

28、tionindex.subitems0.text; show(); button2.visible = true; if (role = 学生) button3.visible = false; button4.visible = false; private void buttonquestion_click(object sender, eventargs e) if (richtextbox1.text != ) sqlconnection con = dbc_class.createcon(); ; con.open(); sqlcommand cmd = new sqlcommand

29、(insert into 问题与回复 values(a0,a1,a2,), con); cmd.parameters.addwithvalue(a0, richtextbox1.text); cmd.parameters.addwithvalue(a1, rolename); cmd.parameters.addwithvalue(a2, datetime.now.tostring(); cmd.executenonquery(); con.close(); richtextbox3.text = richtextbox1.text; richtextbox1.readonly = true;

30、 richtextbox1.clear(); button1.enabled = true; buttonquestion.visible = false; refreshing(); show(); button2.visible = true; if (role = 学生) button3.visible = false; button4.visible = false; private void buttonanswer_click(object sender, eventargs e) if (richtextbox2.text != ) sqlconnection con = dbc

31、_class.createcon(); ; con.open(); sqlcommand cmd = new sqlcommand(update 问题与回复 set 回复=a3 where 问题= + richtextbox3.text + , con); if (richtextbox1.text != ) cmd.parameters.addwithvalue(a3, (richtextbox1.text.trimend() + nnn回复者: + rolename + n回复时间: + anstime.text + n回复内容:n + richtextbox2.text.trimend(

32、).trimend(); else cmd.parameters.addwithvalue(a3, (回复者: + rolename + n回复时间: + anstime.text + n回复内容:n + richtextbox2.text.trimend().trimend(); cmd.executenonquery(); con.close(); richtextbox2.readonly = true; buttonanswer.visible = false; show(); if (role = 学生) button3.visible = false; button4.visibl

33、e = false; (3)管理员公告界面 图8-3管理员公告界面代码如下: private void tabcontrol1_selected(object sender, tabcontroleventargs e) sqlconnection con = dbc_class.createcon(); con.open(); sqlcommand com = new sqlcommand(select*from 管理员 where 编号= + no + , con); sqldatareader dr = com.executereader(); while (dr.read() text

34、boxadmino.text = dr0.tostring(); textboxadminame.text = dr1.tostring(); textboxadmisex.text = dr3.tostring(); textboxadmiage.text = dr4.tostring(); textboxadmiprovince.text = dr5.tostring(); textboxadmipolitical.text = dr6.tostring(); textboxadmibirth.text = dr8.tostring(); textboxadmiid.text = dr7.

35、tostring(); richtextbox2.text = dr11.tostring(); byte imagebytes = null; if (dr10.tostring() != ) imagebytes = (byte)dr.getvalue(10); memorystream ms = new memorystream(imagebytes); bitmap bmpt = new bitmap(ms); picturebox2.image = bmpt; else picturebox1.image = null; dr.close(); com.clone(); con.close(); private void button1_click(object sender, eventargs e) richtextbox2.readonly = false; but

温馨提示

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

评论

0/150

提交评论