教学管理系统的方案设计书与实现Word格式文档下载.docx
《教学管理系统的方案设计书与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《教学管理系统的方案设计书与实现Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。
(1)课程介绍
实现课程介绍和教案大纲的发布、浏览以及在线更新等功能
(2)课件浏览
学生可以根据章节浏览教案课件
(3)课件管理
教师能够自定义教案课件,对课件进行添加、修改和删除等操作
(4)专业管理
教师可以针对教案进度安排学生的上机实验,这些内容可以修改关系,教师可以添加、修改、删除每章节的同步练习,学生在做完练习后,系统会根据选择题和填空题的答题结果给出正误判断。
(5)模拟试卷
教师可以添加、修改、删除模拟试卷,学生可以浏览试卷、答题,答题完毕,给出参考答案。
(6)答疑管理
学生可以在线提问,学生留言后,教师可以留言内容进行管理,针对学生在网上提出的问题做出相应解答并对答疑的内容进行修改与补充,对内容不符合要求的留言进行更改和删除。
(7)系统登陆
系统用户分为学生、教师、管理员等用户,系统登陆时需要验证用户的合法性,合法用户可以转入相应页面。
第三章业务流程分析
本系统实现了管理员发布公告,管理教师的功能;
教师可以自由发布作业要求、发布查看公告,答疑,查看搜索公告,提出问题,布置作业信息等功能;
学生可查看公告、提出疑难问题、查看课件等功能。
总体流程如图3-1,具体流程如图3-2、图3-3、图3-4所示。
(1)总体业务流程图
图3-1总体业务流程图
(2)学生业务流程图
图3-2学生业务流程图
(3)学生业务流程图
图3-3教师业务流程图
(4)学生业务流程图
图3-4管理员业务流程图
第四章数据字典
4.1数据流程图
通过需求分析,得出教案系统的处理数据流程如图4-1所示。
图4-1数据流程图
4.2数据字典
(1)数据流的描述
数据流编号:
S001
数据流名称:
登录人员
简述:
登录人员信息单
数据流来源:
学生/管理员生/教师
数据流去向:
信息判断
数据流组成:
账号+密码+身份等
数据流量:
1000/天
高峰流量:
3000/天
S002
登录人员信息无效提示
管理员发现非法读者时的提示信息
登录人员信息判断
读者
数据流量:
100/天
500/天
(2)处理逻辑的描述
处理逻辑编号:
F001
处理逻辑名称:
登录的人员角色信息判断
判断信息的合法性
输入的数据流:
学生/管理员生/教师信息
处理描述:
根据登录者提供的登录信息,验证其信息,验证通过则继续下移处理查看库存中是否有验证不通过则返回给读者信息指明为非法。
输出的数据流:
D001无效提示信息
处理频率:
10次/天
D002
疑难问题查询
学生的问题是否有解决方法
D002疑难问题目录信息
根据读者提供的疑难信息,到仓库中查找是类似问题,有则进行提示处理,如没有则返回无信息。
问题与回复信息
800次/天
(3)数据存储的描述
数据存储编号:
数据存储名称:
管理员公告信息
公告基本信息
数据存储组成:
标题+内容+时间
关键字:
标题
(4)外部实体的描述
外部实体编号:
p001
外部实体名称:
学生
简述:
注册的人
第五章概念模型设计
根据系统数据流图和数据字典,得出系统的总体概念模型(E-R)如图5-1所示。
图5-1系统的总体概念模型
第六章逻辑模型设计和优化
根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型及其对应构造,如表1~表7所示。
表6-1学生信息表
编号
姓名
身份
性别
年龄
籍贯
政治
面貌
身份证号
出生日期
密码
照片
备注
系别
班级
星座
Char(10)
Char(20)
char(6)
Char
(2)
smallint
Char(90)
image
Char(1000)
Char(100)
表6-2教师信息表
表6-3管理员记录表
表6-4问题与回复信息表
问题
提问者
提问时间
回复
Char(200)
Char(20)
text
表6-5管理员公告息表
标题
内容
时间
表6-6成绩信息表
科目
总分
答案
表6-7公告信息表
第七章物理设计和实施
得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。
数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQLSERV2005
(1)创建数据库
/*===============================================================*/
/*DataBase:
教案系统数据库,创建数据库,数据库名称为:
教案管理系统*/
createdatabase报刊发行员管理系统
go
(2)创建数据库表
/*==============================================================*/
/*Table:
学生*/
Createtable学生
(编号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))
教师*/
Createtable教师
管理员*/
Createtable管理员
备注Char(100))
问题与回复*/
Createtable问题与回复
(问题char(200),
提问者char(20),
提问时间char(20),
回复text)
管理员公告*/
Createtable管理员公告
(标题char(100),
内容text,
时间char(20))
成绩*/
Cretetable成绩
(学号char(10),
姓名char(20),
科目char(10),
总分smallint
答案text)
公告*/
Createtable公告
第八章系统测试
(1)登录界面
图8-1登录界面
代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
if(textUserNo.Text.Trim()=="
"
)
MessageBox.Show("
用户账号不能为空!
"
提示:
)。
}
else
if(textPwd.Text.Trim()=="
)
密码不能为空!
"
if(comRole.Text.Trim()=="
请选择您的登录身份!
{//创建数据库连接
SqlConnectioncon=DBC_Class.createCon()。
con.Open()。
SqlCommandcmd1=newSqlCommand("
selectcount(*)from学生where编号='
+textUserNo.Text.Trim()+"
'
and密码='
+textPwd.Text.Trim()+"
and身份='
+comRole.Text.Trim()+"
con)。
inti=Convert.ToInt32(cmd1.ExecuteScalar())。
SqlCommandcmd2=newSqlCommand("
selectcount(*)from教师where编号='
+textUserNo.Text.Trim()+"
+textPwd.Text.Trim()+"
+comRole.Text.Trim()+"
intj=Convert.ToInt32(cmd2.ExecuteScalar())。
SqlCommandcmd3=newSqlCommand("
selectcount(*)from管理员where编号='
intk=Convert.ToInt32(cmd3.ExecuteScalar())。
SqlDataReaderre。
if((i>
0)||(j>
0)||(k>
0))
{
if(i>
0)
SqlCommandcmd11=newSqlCommand("
select*from学生where编号='
+textUserNo.Text+"
+textPwd.Text+"
+comRole.Text+"
re=cmd11.ExecuteReader()。
re.Read()。
TeacherStudentForm3ts=newTeacherStudentForm3(comRole.Text,textUserNo.Text,re[1].ToString(),re[14].ToString())。
ts.Show()。
this.Hide()。
if(j>
SqlCommandcmd22=newSqlCommand("
select*from教师where编号='
re=cmd22.ExecuteReader()。
TeacherStudentForm3ts=newTeacherStudentForm3(comRole.Text,textUserNo.Text,re[1].ToString(),re[14].ToString())。
if(k>
AdmisterForm2admi=newAdmisterForm2(textUserNo.Text)。
admi.Show()。
用户账号、密码或身份错误!
//弹出提示
catch(Exceptionex)
MessageBox.Show(ex.ToString())。
(2)有问有答界面
图8-2有问有答界面
privatevoidRefreshing()
listView1.Items.Clear()。
listView1.Columns.Clear()。
。
DataSetdst=newDataSet()。
SqlCommandcmd=newSqlCommand("
select*from问题与回复"
SqlDataAdapterdap=newSqlDataAdapter(cmd)。
dap.Fill(dst)。
con.Close()。
this.listView1.Columns.Add("
问题"
300,HorizontalAlignment.Center)。
提问者"
60,HorizontalAlignment.Center)。
//增加列标题
提问时间"
120,HorizontalAlignment.Center)。
listView1.View=View.Details。
listView1.GridLines=true。
//显示网格线。
。
string[]str=newstring[3]。
foreach(DataRowrowindst.Tables[0].Rows)
str[0]=row["
].ToString()。
str[1]=row["
str[2]=row["
ListViewItemitem=newListViewItem(str)。
listView1.Items.Add(item)。
listView1.FullRowSelect=true。
intquestionIndex=0。
privatevoidshow()
select*from问题与回复where问题='
+richTextBox3.Text+"
SqlDataReaderre=cmd.ExecuteReader()。
while(re.Read())
richTextBox3.Text=re[0].ToString()。
QueWenZhe.Text=re[1].ToString()。
QueTime.Text=re[2].ToString()。
richTextBox1.Text=re[3].ToString()。
re.Close()。
richTextBox1.ReadOnly=true。
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()。
privatevoidlistView1_SelectedIndexChanged(objectsender,EventArgse)
richTextBo