计算机网络精品课程网站的设计与实现C#.docx
《计算机网络精品课程网站的设计与实现C#.docx》由会员分享,可在线阅读,更多相关《计算机网络精品课程网站的设计与实现C#.docx(40页珍藏版)》请在冰豆网上搜索。
计算机网络精品课程网站的设计与实现C#
中原工学院软件学院
软件工程实践课题三设计任务书
姓名
****
软件技术专业编码101班
题目
网络课堂网站的设计与实现
设
计
任
务
网络课堂是基于互联网络的远程在线互动学习课堂。
一般系统采用音视频传输以及数据协同等网络传输技术,模拟真实课堂环境,通过网络给学生提供有效地学习环境。
我校已具有庞大的体系来开发网络课堂。
本次我负责开发的功能如下:
1.重点难点前台实现(独立完成)。
2.课件与教案前台实现(独立完成)。
3.主持人前台实现(独立实现)。
4.教学内容实现(独立完成)。
5.教学队伍实现(独立完成)。
6.课题申报完善(独立完成)。
时
间
进
度
1.第17周(12.19-12.24),和老师进一步沟通,完成需求的确认。
搭建了一些服务,如项目的首次配置。
给项目中的功能需求进一步挖掘。
2.第18周(12.26-12.31),完成了重点难点、科教与教案、教学内容、教学队伍等功能。
3.第19周(1.1-1.3),进行系统测试,书写课题报告。
原主
始要
资参
料考
与文
献
[1]陈海军、朱朝阳.VisualC#.NET案例开发集锦[M].北京:
电子工业出版社,2008.4
[2]李兰友杨晓光.VisualC#.NET程序设计[M]北京:
清华大学出版社,2004.5
[3]郭兴峰、陈建伟ASP.NET动态网站来发基础教程[M].北京:
清华大学出版社,2006.5
[4]史济民,软件工程-原理、方法与应用[M]。
高等教育出版社,2010.5
摘要
伴随着科技的不断发展,互联网络正以空前的速度,渗透到世界的每一个角落。
教育的网络化建设已成为我国信息化建设一个重中之重。
在传统的教学中,学习资料一般由教师选择,主要是通过书本、图片和录像等这些有限的媒体单向向学生传输信息,这样的信息显然是非常有限的,而且缺乏可选择性,学生一般只能全盘皆收。
当今社会,信息充满着每一个角落,学生每时每刻都受着各种信息的影响,如果学生不加选择地完全接受,对学生的成长是不利的。
如果学生光是接受信息,而不对信息进行重新建构,学生也不能完全掌握这些知识,这就要求培养学生筛选、重组信息的能力。
如何利用互联网络这一强大的信息资源,更好地服务于新世纪的学校教育事业,不仅成为当代教育专家的一道崭新研究课题,也成为教育行政部门和广大学校的一项紧迫任务。
网络学习收到广大学生的亲睐,网络中资源源丰富,学习时间灵活,还以可以互动交流的方式惊醒课堂学习,热互动交流时非常有用的网络学习手段,对于学生的创新能力和认知能力的发展有着不可低估额作用。
在网络课堂上丰富多彩的学习资源中,传统的文档和资料图片已不能满足学生对学习资源的要求,学生迫切需要通过视觉或听觉直观地对学习资源进行深刻的了解,从而长生对视频学习资料和语音学习资料。
网络课堂网站通过构建一个虚拟的网络学习社区环境,学生通过这个环境开发获取最新的资料和视频信息或语音教程相互学习交流。
在网络教学过程中,由于网络信息的容量非常大,这就要求学生有选择地从网上获取知识,通过协作学习,最终通过自主建构,形成知识体系。
这种自主获取知识的方法,对学生提出了更高的要求,学生从被动接受转换到主动探究的学习主体上来,从中培养了学生获取、分析、处理各种信息的能力。
关键词:
网络课程,公告管理,教师管理,附件管理,软件工程
第1章项目分析
网络课堂,是计算机时代和教育事业结合的产物,有很强的交互性,它为用户提供一个更加全方位的网络体验。
1.1问题描述
网络课堂系统是一个管理和展示一个学校精品课程信息的一个多用户,多任务的管理系统。
主要功能包括:
主讲人介绍、用户管理、教师队伍、课件信息、重点难点管理、附件管理、信息管理、教学视频、动画演示等功能。
1.2技术分析
本系统由于是一个多用户,用户人群广泛的实用性项目,为了便于大家可以很好使用本项目,采用b/s架构。
本系统用到的技术主要有:
、sqlserver、采用三层架构的思想,这样大大增加了项目的可使用性和可维护性。
1.3工程进度计划
第一周我们针对项目进行需求分析,设计数据库搭建各个只要功能以及所属的子功能,接着进行逻辑设计,检查各个方面的合理和可行性为界面设计做准备。
第二周时间内,由于系统为了尽早地投入使用所以我们在第二周时间内,我们努力完成界面的实现。
这样可以是项目尽早运行而且为下一步的测试打下基础。
第三周主要是实现,一些后台的管理功能、一些辅助功能、测试功能还有项目文档的书写。
第2章系统分析与设计
本系统是一个实用性项目,系统的好坏直接关系到项目使用人群的满意程度,因此为了更好地完成本次项目,交给大家一个满意地使用方便的项目,项目开始时我们做了长达一周的需求分析和项目分析。
再次期间制订了开发式的一些规定和分工,这些工作在后期开发过程中的重要作用都得到了很好地体现。
2.1系统分析
本项目大体上分为三类用户,每类用户有很严格的权限管理和分工。
这样保证了用户在操作过程中不会因为误操作,对项目的造成了致命性的损坏。
2.1.1参与者
本系统主要参与者有三类即:
学生、一般教师和讲师管理员。
他们各种角色在系统中有严格的权限限制。
欢迎访问
2.1.2用例及用例规约
在项目开发过程中,我用到的主要用例有:
登录用例、发布信息用例、管理重点难点用例、查看重点难点用例等。
着重介绍发布信息用例规约:
(用例图,如图2.1)
1.简要说明
本用例允许用户发布信息。
并允许用户选择某一个信息类型,进行添加。
2.事件流
1)基本事件流
(1)教师登陆成功。
2)信息添加
(1).点击进入信息添加界面。
(2).填写相关的信息点击提交。
(3).提示成功。
3)信息修改
(1).点击进入信息管理界面
(2).点信息标题进入修改界面修改。
3)信息删除
(1).进入管理界面。
(2).点击信息右边的删除,进行删除。
2.被选时间流
1)添加信息。
由于系统是多用户的系统。
在同一个时刻可能有多个人同时提交信息这是可能会存在添加不成功的现象。
这种情况下再次提交即可。
3.体术需求
欢迎访问
4.前置条件
无
5.后置条件
无
2.1.3用例图
图2.1用例图
2.2系统设计
在上一步完成了需求分析项目分析等过程后,接下来便是进行系统设计。
在设计过程中主要是按照软件工程的思想,确定了软件设计过程中的顺序图、类图和进行一些系统体系结构设计。
2.2.1顺序图
本系统,我负责模块主要涉及的时序图(顺序图)主要有。
登录,添加信息、修改信息、删除信息等。
这儿主要讲述下添加信息的时序图。
如图(2.2)
图2.2时序图
2.2.2系统体系结构设计
系统结构图如下图:
图2.3教师结构图
图2.4管理员结构图
2.3数据库设计
数据库是一个系统地核心,所以在设计过程中我们必须对数据的存储方式以及系统地业务有一个很好的全局把握。
这样才可以保证在后期的开发过程中不会遇到一些设计性的问题。
在对数据库进行的每一个操作我们小组都是进行了认真的研讨。
2.3.1E-R图
部分实体间的E—R图如下。
图2.5部分E—R图
2.3.2表的设计
在开始编码前我们对系统进行了再一次地,分析发现数据库中的数据表存在这一些不合理,因此下面列出,修改的表和新加的数据表:
如表2.1和表2.2
表2.1zdnd
列名
数据类型
长度
是否主键
允许空
默认值
备注
BulletinID
nvarchar
20
是
notnull
重点难点标号
BulletinTitle
nvarchar
8
否
notnull
重点难点标题
BulletinContent
text
8
否
null
重点难点内容
BulletinTime
datetime
50
否
notnull
发布时间
BulletinAuthor
nvarchar
20
否
null
发布教师
表2.2fujian_teacher
列名
数据类型
长度
是否主键
允许空
默认值
备注
fujianid
nvarchar
50
是
notnull
附件或者是信息编号
teachername
nvarchar
50
否
null
教师姓名
第4章详细设计
经过了伊桑软件舍命周期:
功能分析、项目分析、系统设计等环节之后接下来便进入了软件的下一个生命周期:
实现和测试。
在该部分中主要对自己独立实现的功能进行详细的分析讨论。
4.1课件与教案
由于对于学生上课的过程中,有可能在课堂上不能对老师所讲的知识进行全面的吸收掌握,因此本系统提供了重点难点这个模块。
就是老师将达本分学生由于课堂上时间关系不能掌握的知识或者是一些扩展知识上传到这个模块供学生再度参考。
4.1.1界面欢迎访问
图4.1课件与教案首页显示
4.1.2代码
课件与教案首页显示如图3.1所示。
具体代码实现如下:
publicpartialclassusercontrol_appendix:
System.Web.UI.UserControl
{
protectedvoidPage_Load(objectsender,EventArgse)
{
stringkj=ConfigurationManager.AppSettings["kj"].ToString();
stringja=ConfigurationManager.AppSettings["ja"].ToString();
Maticsoft.DBUtility.myDbdb=newMaticsoft.DBUtility.myDb();
DataTabledt=newDataTable();
stringstrSql="selecttop7*fromAppendixwhereAppendixClassify='"+kj+"'orAppendixClassify='"+ja+"'";
dt=db.GetDataSet(strSql).Tables[0];intnu=7-dt.Rows.Count;
for(inti=0;idt.Rows.Add(dt.NewRow());
rpt.DataSource=dt;
rpt.DataBind();
//
}
}
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
Maticsoft.DBUtility.myDbdb=newMaticsoft.DBUtility.myDb();
DataTabledt=db.GetDataSet("selecttop7*fromzdndorderbyBulletinTimedesc").Tables[0];
intnu=7-dt.Rows.Count;
for(inti=0;idt.Rows.Add(dt.NewRow());
Repeater1.DataSource=dt;
Repeater1.DataBind();
}
}
4.1.3测试用例
本节主要是对我所负责模块的测试做下介绍。
表4.1测试用例
序号
测试用例标题
期望结果
1
测试添加课件与教案
成功,操作人员可以将课件与教案添加到数据库中
2
修改课件与教案
成功,操作员可以修改课件与教案的内容并存入数据库
3
删除课件与教案
成功,操作人员可以成功删除一条指定的课件与教案
4
显示课件与教案
成功,系统可以根据操作人员的选择显示相应的课件与教案
对照3.1的测试用例得出相应的测试结果,如图3.2所示。
表4.2测试结果
序号
测试用例标题
测试结果
测试结果说明
1
测试添加课件与教案功能
通过
操作人员可以将课件与教案添加到数据库中
2
修改课件与教案
通过
操作员可以修改课件与教案的内容并存入数据库
3
删除课件与教案
通过
操作人员可以成功删除一条指定的课件与教案
4
显示课件与教案
通过
系统可以根据操作人员的选择显示相应的课件与教案
4.2重点与难点
由于对于每门课来说都有对应的大纲来概括该课程的重点与难点,因此本系统也具有此功能模块。
4.2.1界面
图4.2重点与难点界面
4.2.2代码
重点难点内容显示界面如图4.2所示。
对应的代码:
if(!
IsPostBack)
{
Maticsoft.DBUtility.myDbdb=newMaticsoft.DBUtility.myDb();
stringid=Request.QueryString[0].ToString();
stringsql="selectBulletinTitlebt,BulletinContentnr,BulletinTimetm,BulletinAuthorzzfromzdndwhereBulletinID='"+id+"'";
System.Data.DataTabledt=db.GetDataSet(sql).Tables[0];
//取出数据
if(dt.Rows.Count>0)
{
this.title.InnerHtml=dt.Rows[0]["bt"].ToString();
this.content.InnerHtml=dt.Rows[0]["nr"].ToString();
}
列表显示:
System.Web.UI.WebControls.PagedDataSourcepds;
intpagecount;
protectedvoidPage_Load(objectsender,EventArgse)
{
pds=newPagedDataSource();
if(!
IsPostBack)
{
databind();
}}}
publicvoiddatabind()
{
Maticsoft.DBUtility.myDbdb=newMaticsoft.DBUtility.myDb();
pds.DataSource=db.GetDataSet("select*fromzdnd").Tables[0].DefaultView;
pds.AllowPaging=true;
pds.PageSize=10;
pagecount=pds.PageCount;
if(int.Parse(TextBox1.Text)>pds.PageCount)
TextBox1.Text=pds.PageCount.ToString();
if(int.Parse(TextBox1.Text)<1)
TextBox1.Text="1";
pds.CurrentPageIndex=int.Parse(TextBox1.Text)-1;
Repeater1.DataSource=pds;
Repeater1.DataBind();
if(pds.CurrentPageIndex==0)
{
Button1.Enabled=false;
Button2.Enabled=false;
}
else
{
Button1.Enabled=true;
Button2.Enabled=true;
}
if(pds.CurrentPageIndex==pds.PageCount-1)
{
Button3.Enabled=false;
Button4.Enabled=false;
}
else
{
Button3.Enabled=true;
Button4.Enabled=true;
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
TextBox1.Text="1";
databind();
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
TextBox1.Text=(int.Parse(TextBox1.Text)-1).ToString();
databind();
}
protectedvoidButton3_Click(objectsender,EventArgse)
{
TextBox1.Text=(int.Parse(TextBox1.Text)+1).ToString();
databind();
}
protectedvoidButton4_Click(objectsender,EventArgse)
{
TextBox1.Text=pds.PageCount.ToString();
databind();
}
protectedvoidButton5_Click(objectsender,EventArgse)
{
databind();
}
4.2.3测试用例
本节主要是对我所负责模块的测试做下介绍。
表4.3测试用例
序号
测试用例标题
期望结果
1
测试添加重点难点功能
成功,操作人员可以将重点难点添加到数据库中
2
修改重点难点
成功,操作员可以修改重点难点的内容并存入数据库
3
删除重点难点
成功,操作人员可以成功删除一条指定的重点难点
4
显示重点难点
成功,系统可以根据操作人员的选择显示相应的重点难点
对照3.3的测试用例得出相应的测试结果,如图3.4所示。
表4.4测试结果
序号
测试用例标题
测试结果
测试结果说明
1
测试添加重点难点功能
通过
操作人员可以将重点难点添加到数据库中
2
修改重点难点
通过
操作员可以修改重点难点的内容并存入数据库
3
删除重点难点
通过
操作人员可以成功删除一条指定的重点难点
4
显示重点难点
通过
系统可以根据操作人员的选择显示相应的重点难点
4.3主持人
主持人是网络课堂必不可少的一部分,它是保证网站富有生机和内涵的保证,主持人可以让学生更规范更熟练的去学习,从而达到最好的效果。
4.3.1界面
图3.3教师基本信息界面
图3.4教学情况界面显示
3.3.2代码
主持人的前台列表界面如图3.3所示,对应的代码:
publicpartialclassusercontrol_tea_detail:
System.Web.UI.UserControl
{
stringid="";
protectedvoidPage_Load(objectsender,EventArgse)
{
id=Request.QueryString[0].ToString();
if(!
IsPostBack)
{
bind1();
BindRpArticle();
BindRpMaterial();
BindRpSchonor();
BindRpTask();
}
}
privatevoidbind1()
{
stringsql="select*fromTeacherwhereTeacherID='"+id+"'";
Maticsoft.DBUtility.myDbdb=newMaticsoft.DBUtility.myDb();
DataTabledt=db.GetDataSet(sql).Tables[0];
imgImage.ImageUrl="../admin_t/teacherimage/"+dt.Rows[0]["TeacherImage"].ToString();
lblAcademy.Text=dt.Rows[0]["TeacherAcademy"].ToString();
lblAdminDuty.Text=dt.Rows[0]["TeacherAdminDuty"].ToString();
lblBirthday.Text=dt.Rows[0]["TeacherBirthday"].ToString();
lblDegree.Text=dt.Rows[0]["TeacherDegree"].ToString();;
lblDuty.Text=dt.Rows[0]["TeacherDuty"].ToString();
lblEmail.Text=dt.Rows[0]["TeacherEmail"].ToString();
lblName.Text=dt.Rows[0]["TeacherName"].ToString();
lblProfession.Text=dt.Rows[0]["TeacherProfession"].ToString();
lblResearch.Text=dt.Rows[0]["TeacherResearch"].ToString();
lblSchool.Text=dt.Rows[0]["TeacherSchool"].ToString();
lblIntroduction.Text=dt.Rows[0]["TeacherIntroduction"].ToString();
if(dt.Rows[0]["TeacherSex"].ToString()=="1")
{
lblSex.Text="男";
}
if(dt.Rows[0]["TeacherSex"].ToString()=="0")
{
lblSex.Text="女";
}
}
privatevoidBindRpArticle()
{
stringsql="select*fromArticlewhereTeacherID='"+id+"'andArticleStatus=1";
Maticsoft.DBUtility.myDbdb=newM