《在线答疑系统毕业论文.doc》由会员分享,可在线阅读,更多相关《在线答疑系统毕业论文.doc(28页珍藏版)》请在三一办公上搜索。
1、本科毕业论文(设计)计算机实验课在线答疑系统的分析与设计此毕业设计有:1. 开题报告.doc2. 任务书.doc3. 源程序物有所值,下载后联系QQ1246188598拿其它文档和程序诚 信 声 明我声明,所呈交的毕业论文(设计)是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,论文(设计)中的所有内容均真实、可信。毕业论文(设计)作者(签名): 年 月 日计算机实验课在线答疑系统的分析与设计摘要:网上答疑系统为基于ASP.NET与C
2、#技术的WEB应用程序,并以互联网为传播媒介来实现远程教育的一个教学平台。系统主要论述了其设计开发的基本过程,设计开发中主要运用了ASP.NET技术与C#语言、 SQL等相关技术,根据面向对象开发原理,采用了基于B/W/S三层体系结构的开发模式系统。以IIS为服务器,SQL server 2005为数据库平台,提供一个师生之间相互交流、相互探讨的网络空间,使学生在获取知识时更具有主动性。本系统包括即时答疑的管理与控制,文件资源的共享管理,问题及疑问留言解答的管理,后台数据库信息的管理维护等这些基本模块。关键词:ASP.NET;在线答疑;实验室信息化;B/W/S结构注:本论文(设计)题目来源于教
3、师的国家级(或省部级、厅级、市级、校级、企业)科研项目,项目编号为: 。Experimental computer courses o nline Q & A System Analysis and DesignAbstract: Online Q & A system based on ASP.NET and C # technologies WEB applications, and Internet media to achieve a long-distance education teaching platform. Focuses on system design and deve
4、lopment of its basic processes, design and development of the main use of ASP.NET technology and C # language, SQL and related technologies, in accordance with the principle of object-oriented development, based on the use of B / W / S three-tier architecture system development model. To IIS server,
5、 SQL server 2005 database platform to provide a mutual exchange between teachers and students, to explore each other in cyberspace, so that when students acquire knowledge in a more proactive. The system includes real-time Q & A management and control, file-sharing management resources, problems and
6、 answer questions about the management of message, the background database information such as the management of the maintenance of the basic module.Keywords: ASP.NET online Q & A of laboratory information B / W / S Structure目 录1 前言62 设计前分析72.1 需求分析72.2 系统开发工具及思路72.3 实现可行性分析83 系统总体设计94 系统详细设计114.1 数
7、据库设计114.1.1 数据表的设计114.1.2 数据库表间的逻辑关系图134.2 系统主要功能模块详细设计与实现134.2.1 前台主要功能模块介绍134.2.2 后台主要功能模块介绍21参考文献26致谢271 前言计算机实验课在线答疑系统采用sql2005+为设计开发平台,主要为计算机机房提供一个利用现有设备进行课程教学,师生互动问答讨论的系统。通过相应功能模块实现问题的实时或留言问答,实验内容等文件资源的共享上传与下载,以及相关知识拓展,师生在电脑前就能完成全程教学,使学生摆脱了以前的羞涩心理,主动参与到网络学习活动中来,有效地调动了学生学习的积极性。同学与同学之间、教师与同学之间的讨
8、论既活跃了思维,也拉近了彼此的距离,促进了教学活动的开展。本系统基于网络教学支撑平台的教学模式具备人机互动、师生互动的优势,体现出以人为本,自主学习的特点,突破时空界限,延伸课堂空间,拓展思维方法,有利于培养善思考、高素质的综合人才,适应信息时代教育发展的要求。源码网,2 设计前分析2.1 需求分析首先,针对计算机实验室的特点,在线答疑功能模块可以利用现有的局域网拓扑结构,在网络环境中进行信息的输入与传输显示,并存储在主机数据库服务器里。通过对交谈方式的控制,在群聊和一对一私谈交流两者之间切换交谈方式。其次,在教学过程中,必然有跟实验课程相关的实验指导、实验内容等相关的文档。为免去安装ftp服
9、务器实现文件共享的麻烦,在该答疑系统中还应包括文件资源的上传、下载功能模块,实现相关资料的相互传递。再次,在线答疑模块中,主要是实现类似qq群聊天的即时通讯功能,里面的发言呈现出多人发言,交叉发言,讨论内容多且比较凌乱的现象,不利于对某一疑问的深层次探讨。因此,在系统中,应设置类似我们平时所用的论坛留言的功能模块,并包含了发表疑问,回复疑问,管理疑问信息等功能。另外,在教学过程中,为加深学生对实验内容的理解,拓宽知识的应用,有必要设置知识扩展模块,包含相关知识门户网站链接,应用实例展示,技术文章等内容。为更方便处理班级事务,通知学生们班中相关信息,系统中也应包括班级公告功能,显示近期的班级安排
10、等。为了保证数据库的安全,以及教学的顺利进行,系统还需要对学生们的身份进行管理,最简单的一点就是对访问该系统的学生要求登录操作,进行身份的验证,以及把该身份在系统中其它功能的使用情况存储在系统的数据库中,方便以后需要确认某学生身份的调用操作。最后,该系统提供的后台数据管理,应让具有管理权限的人员对数据库进行操作,包括学生信息的管理,上传文件管理,疑问管理,链接管理,通知管理等功能,具体功能呈现为对数据源的数据进行访问、添加、编辑、删除等操作。极大方便地对系统进行统一管理控制与显示。2.2 系统开发工具及思路本系统以ASP.NET2.0技术为蓝本、C#为开发语言、Microsoft Visual
11、 Web Developer 2005 速成版为开发环境、Microsoft SQL Server 2005 Express为数据存储。运行环境的配置包括Microsoft .NET Framework 2.0,Internet 信息服务版本IIS5.1, Internet Explorer 6.0。本系统开发设计采用B/W/S三层结构实现,即数据层、业务层、表示层。能很好地实现数据存储、运行业务逻辑、界面显示。以本身为.NET Framework而设计的C#语言开发系统,是真正面向组件的开发,无需考虑语言的兼容性,并且开发过程也比较简单易懂。利用.NET 自带的SQL 2005 EXPRES
12、S作为数据库服务器,可以方便地实现系统与数据库的连接,并且性能稳定、管理方便。2.3 实现可行性分析需求上可行性:在线答疑系统让同学们在计算机课室方便地进行课程学习与交流讨论,还可以管理班级的事务、通知。使得师生之间的教学互动省时,省力。极大得提高同学们学习的主动性,促进了信息化教学的发展。技术上可行性:目前,IT网络技术已经发展成熟并得到普遍应用,硬件方面,cpu双核芯片成为流行配置,开发运行.NET系统所需的系统要求,内存要求完全能够满足。实现该系统在技术上是可行的。经济上可行性:该系统开发所需的工具主要是一台我们常用的个人主机,再加上一套常用软件VS2005+SQL2005,以现有的计算
13、机课室的局域网络作为运行传输环境即可。实现该系统花费少,是可行的。源码网,3 系统总体设计3.1 项目规划总体规划:在线答疑系统是一个典型的ASP.NET数据库开发应用程序,由系统前台展示模块、后台数据管理模块两大部分组成。前台展示模块:该模块主要提供即时发言的输入与显示,文件资源的上传下载,发表疑问与回答,相关网站访问,查看班级通知,以及身份登录验证等功能模块。后台管理:该模块主要是对前台数据库进行管理,主要包括学生管理、文件管理、疑问管理、链接管理、通知管理。3.2 系统总体功能结构图系统前台即时发言文件管理身份登录疑问管理知识扩展班级公告图3.2.1 前台功能结构图系统后台学生管理疑问管
14、理文件管理链接管理通知管理图3.2.2后台功能结构图源码网,3.3系统总体流程用户成功登录后,如果验证是管理员身份,则可选择进入前台显示还是后台管理,如果是普通用户,则定向到系统前台首页。在首页里,默认是即时发言页面,也可通过页面链接到文件共享或者查看疑问页面。在即时发言页面,可以选择发言字体的颜色,切换群聊和密谈模式。在文件共享页面,显示现有的文件列表,右击文件名即可选择下载,点击上传文件按钮,进入文件上传页面。在查看疑问页面,可以发表疑问或者点击相应疑问,进入详细回答页面。各页面中,都包含返回主页面的链接按钮。是否否登录界面成功系统首页即时发言群聊/密谈回复/发表查看疑问文件共享下载/上传
15、返回首页知识扩展班级公告查看访问查看通知进入后台管理者是图3.3.1系统总体流程图4 系统详细设计4.1数据库设计本系统数据库采用SQL Server 2005 EXPRESS数据库设计,其中包括5张表。4.1.1数据表的设计用户信息表 用户信息表记录用户的基本信息。其主要字段包括:用户ID、用户名称、用户密码、用户职位。见表所示:表4.1.1用户信息表名称字段名称数据类型长度非空用户编号idint4yes用户名称usernamevarchar50yes用户密码passwordvarchar50yes用户职位positionvarchar50No即时发言信息表 即时发言信息表的主要字段包括:I
16、D号、发言者、接收者、发言内容、发言字体颜色、是否密谈、发言时间。见表所示:表4.1.2 即时发言信息表名称字段名称数据类型长度非空ID号idint4yes发言者user_fromvarchar50yes接收者user_tovarchar50yes发言内容contentvarchar255yes字体颜色colorvarchar50yes是否公开ispublicbit4yes发言时间sendtimedatetime8yes文件信息表 药文件信息表的字段主要包括上传者、文件名称、上传时间、存储路径等。见表所示:表4.1.3 文件信息表名称字段名称数据类型长度非空id号idint4yes上传者Sen
17、d_UserNamevarchar50yes文件名称Send_FileNamevarchar100yes上传时间Send_Timevarchar50yes存储路径Send_Filevarchar100yes疑问信息表 该表主要是记录发表疑问信息,以及访问次数和回答次数。包括标题,具体内容,提问者等字段。见表所示:表4.1.4 疑问信息表名称字段名称数据类型长度非空默认值id号idint4yes提问者Authornvarchar50yes标题Subjectnvarchar50yes内容Contentntext16no提问时间PostTimedatetime8yesgetdate()访问次数Tot
18、alViewint4yes回答次数Replyint4yes回复信息表 回复信息表主要字段包括:回答编号id、对应的问题id、回答者、标题、详细回答内容、回答时间。见表所示:表4.1.5回复信息表名称字段名称数据类型长度非空默认值回答编号MessageIDint4yes对应问题idint4yes回答者Authornvarchar50yes标题Subjectnvarchar50yes详细内容Contentntext16no回答时间PostTimedatetime8yesgetdate() 链接类别表名称字段名称数据类型长度非空默认值编号idint4yes类别名称classchar10yes网站信息
19、表名称字段名称数据类型长度非空默认值编号idint4yes类别编号cidint4yes网站名称namechar10yes网址linkchar50yes网站简介showchar50no班级公告表名称字段名称数据类型长度非空默认值编号idint4yes标题titlechar50yes内容contentchar50no时间timedatetime8yesgetdate()4.1.2 数据库表间的逻辑关系图数据库的表与表之间各字段的关系如图所示:图4.1.2数据库表间关系图4.2系统主要功能模块详细设计与实现4.2.1 前台主要功能模块介绍即时发言模块:该模块首页面为default.aspx,页眉为自
20、定义控件WebUserControl.ascx,里面包括各功能模块的链接,和显示系统时间等信息。中间为即时发言界面,主要是显示信息和发送信息,页脚为后台登录链接,当登录者为admin时,该链接控件由灰色不可用变为可用链接,点击即进入后台登录页面。登录页面default.aspx时,载入处理函数Page_Load(),控制代码为:protected void Page_Load(object sender, EventArgs e) if (Sessionusername.ToString() = admin) HyperLink1.Visible = true; 普通用户登录 admin登录即
21、时发言的界面为:处理发送信息的函数为send();代码为function send() var txtContent = document.all(content).value; /文本框输入内容 if (txtContent = ) return; var user_to = document.all(userlist).value; /聊天对象 var textcolor = document.all(textcolor).value; /颜色 var isPublic = !(document.all(isSecret).checked); /是否密谈 显示发言信息的函数为refresh
22、_chatcontent();代码为 function refresh_chatcontent() /调用服务器方法获取最新消息的HTML字符串 var div = document.all(chatcontent); var strNewMsg = ChatRoom.GetNewMsgString().value; 控制上线名单的函数为refresh_onlineusers();代码为 function refresh_onlineusers() /发送对象列表 var userlist = document.all(userlist); /调用服务器端方法获取用户列表字符串(用逗号分隔)
23、var strUserlist = ChatRoom.GetOnlineUserString().value; /获取客户端显示的用户列表字符串 var strUserlistClient = ; for (var i = 1;i userlist.options.length;i+) if (i != userlist.options.length - 1) strUserlistClient += userlist.optionsi.value + ,; else strUserlistClient += userlist.optionsi.value; if (strUserlistCl
24、ient != strUserlist) /在线用户列表发生变化 var userArr = strUserlist.split(,); /在线用户数 var usercount = document.all(usercount); usercount.innerHTML = 在线名单:( + userArr.length + 人); 文件共享模块:该功能模块包括文件显示下载页面SaveFile.aspx 和文件上传页面Chuanshu.aspx两页面,以及保存资源的文件夹file。通过该模块,可以方便地上传下载实验内容等资料文件。在web.config中设置连接数据库的语句为: 使用SqlD
25、ataSource控件操作数据库的语句为: asp:SqlDataSource ID=SqlDataSource1 runat=server ConnectionString= SelectCommand=SELECT * FROM SendFile ORDER BY id desc 使用GridView控件显示数据的代码为: 处理上传文件的函数为SaveBtn_Click(),主要代码为:protected void SaveBtn_Click(object sender, EventArgs e) String Send_user1 = Send_User.Text; String Tim
26、eNow = DateTime.Now.Year.ToString() + - + DateTime.Now.Month.ToString() + - + DateTime.Now.Day.ToString()+-+DateTime.Now.Hour.ToString()+:+DateTime.Now.Minute.ToString()+:+DateTime.Now.Second.ToString(); /获得时间 MyUpload MyUpload = new MyUpload(); string Pic1 = File/; /保存路径 MyUpload.Path = File; MyUpl
27、oad.Sizes = 2048; /文件大小 MyUpload.FileType = jpg|gif|bmp|JPG|GIF|BMP|doc|DOC|txt|TXT|xls|XLS|FLV|flv|SWF|swf; /文件类型 string a = MyUpload.PostedFile.FileName.Split(); /分离出文件名 string b = aa.Length - 1; FileTitle1 = b; MyUpload.PostedFile = FileUpload1.PostedFile; String Pic2 = MyUpload.Upload(); if (Pic
28、2 = null) Page.RegisterStartupScript(, alert(上传失败!); Response.AddHeader(Refresh, 0.0001); else Pic2 = Pic1 + Pic2; String Sql = insert into SendFile(Accept_UserName,Send_UserName,Send_File,Send_Time,Send_FileName) values( + username + , + Send_user1 + , + Pic2 + , + TimeNow + , + FileTitle1 + ); if
29、(db.insert(Sql) /插入数据 Page.RegisterStartupScript(, alert(上传成功!); Accept_User.Text = ; Send_User.Text = ; 发表疑问模块:该模块主要页面包括显示疑问列表页面showthread.aspx,某疑问及相应回复列表页面showmessages.aspx,发表新疑问页面editthread.aspx。该模块主要实现疑问的发表和回复。删除功能包含在后台管理页面中。发表疑问利用一个AddThread方法,代码为:public void AddThread(System.Int32 threadID,Sys
30、tem.String author,System.String subject,System.String content,System.Int32 reply,System.Int32 totalView)/ 下面为创建数据库实例和命令对象SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettingsconnectionString);SqlCommand myCommand = new SqlCommand(AddThread, myConnection);/ 下面为把命令对象类型设置为数据库
31、已经创建好的存储过程,能把一大段sql语句存储为一个过程,便于调用myCommand.CommandType = CommandType.StoredProcedure;/ 向存储过程中传递参数SqlParameter parameterAuthor = new SqlParameter(author, SqlDbType.NVarChar,50);parameterAuthor.Value = author;myCommand.Parameters.Add(parameterAuthor);SqlParameter parameterSubject = new SqlParameter(su
32、bject, SqlDbType.NVarChar,50);parameterSubject.Value = subject;myCommand.Parameters.Add(parameterSubject);SqlParameter parameterContent = new SqlParameter(content, SqlDbType.NText,16);parameterContent.Value = content;myCommand.Parameters.Add(parameterContent);SqlParameter parameterTotalView = new Sq
33、lParameter(totalView, SqlDbType.Int,4);parameterTotalView.Value = totalView;myCommand.Parameters.Add(parameterTotalView);SqlParameter parameterReply = new SqlParameter(reply, SqlDbType.Int,4);parameterReply.Value = reply;myCommand.Parameters.Add(parameterReply);/ 打开数据库并执行myConnection.Open();myComman
34、d.ExecuteNonQuery();myConnection.Close();显示疑问列表采用GetThreads()方法,代码为private DataSet GetThreads()/创建数据库实例和命令对象SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettingsconnectionString);SqlDataAdapter myCommand = new SqlDataAdapter(GetThreads, myConnection);/下面为把命令对象类型设置为数据库已经创建好
35、的存储过程,能把一大段sql语句存储为一个过程,便于调用myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;/ 建立并且填充一个dataset数据集DataSet myDataSet = new DataSet();myCommand.Fill(myDataSet);/ 返回一个dataset数据集return myDataSet;显示疑问详细内容的方法为AddThread(),代码为public void AddThread(System.Int32 threadID,System.String author,S
36、ystem.String subject,System.String content,System.Int32 reply,System.Int32 totalView)/创建数据库实例和命令对象SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettingsconnectionString);SqlCommand myCommand = new SqlCommand(AddThread, myConnection);/下面为把命令对象类型设置为数据库已经创建好的存储过程,能把一大段sql语句存储为
37、一个过程,便于调用myCommand.CommandType = CommandType.StoredProcedure;/向存储过程中传递参数SqlParameter parameterAuthor = new SqlParameter(author, SqlDbType.NVarChar,50);parameterAuthor.Value = author;myCommand.Parameters.Add(parameterAuthor);SqlParameter parameterSubject = new SqlParameter(subject, SqlDbType.NVarChar,50);parameterSubject.Value = subject;myCommand.Parameters.Add(parameterSubject);SqlParameter parameterContent = new SqlParameter(content, SqlDbType.NText,16);parameterContent.Value = content;myCommand.Parameters.Add(parameterContent);SqlParameter parameterTotalVie