网络编程大作业.docx
《网络编程大作业.docx》由会员分享,可在线阅读,更多相关《网络编程大作业.docx(18页珍藏版)》请在冰豆网上搜索。
网络编程大作业
华北科技学院
《网络编程B》
大作业
班级:
计科B08-1姓名:
________
作业题目:
网上答疑系统
评阅成绩:
____教师:
_____
年月日
1引言
1.1课程设计选题
《网上答疑系统》
1.2课程设计的目的
通过这次设计的程序,可以帮助我们更进一步掌握ASP.NET的相关编程知识。
更数量掌握ASP.NET的各控件的用法。
网上答疑系统方便学生老师在课下进行交流沟通,从而摆脱地点时间的限制,更有利于学生的学习。
2系统分析与设计
2.1功能及性能分析
2.1.1功能需求
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。
Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。
因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
为了更好的办学,提高学校知名度。
网上答疑系统,是一种运用计算机网络为工具来帮助教师与学生教学的方式,在这个过程中它利用多媒体技术,人工智能技术,网络技术等多种技术手段。
通过教学软件,学习平台的开发和应用,使学生和计算机之间相互作用达到教学目的,这是一种现代化教学手段。
网上答疑系统是一种教育观念与教育方式的结合,它的引入,丰富了教育教学手段,向教育现代化迈出了一大步。
2.1.2性能需求
这个网上答疑系统需要设计成用户和管理员两部分。
管理员子系统管理员通过登录进入后台管理界面,可以对有关信息进行编辑,删除。
而用户通过注册登陆答疑系统,进行相关操作。
其中为了便于管理,用户包括教师和学生。
下面进行详细的功能描述:
1)管理员功能:
管理员登录输入用户名和密码,通过系统判断是否为管理员正确的用户名和密码,确认正确之后即可进入后台管理界面。
管理员可以对用户信息进行删除,修改,查询等功能,比如有的学生或老师密码忘记了,那么管理员帮他们查询密码,也可以帮他们修改密码,当然如果存在多次违反规矩的用户,管理员可以将其删除,也可以重新编辑一下用户的信息。
另外,管理员也可以修改自己的密码,可以设置多个管理员密码。
2)用户功能:
用户分为学生和老师。
身为学生,登陆后,可以根据老师的资料,向指定老师留言,也可以查询注册用户的信息,如qq电话等信息,方便线下交流,当然也可以查询以往在留言板留的言,查询老师给的答复。
当老师登陆后,可以查看学生给自己的留言,可以将恶意留言删除,也可以针对学生问题进行解答,并自动标记已读,当然也可以修改以前
2.2系统的开发运行环境
本系统开发平台:
+Access数据库
本系统运行环境:
windows7
2.3系统总体设计
根据用户及相关用途的的划分,可以很清晰的将该系统分为三个功能模块,首先是登陆和注册功能模块,分为普通用户登陆和管理员登陆模块。
第二个模块为学留言模块,分为学生留言模块和老师留言模块。
第三个模块为管理员管理用户及用户自管理的模块
。
整个系统的功能模块图如下所示:
2.3.1系统结构图设计
3数据库设计
3.1数据库概念设计
数据库中主要有五个数据表,分别是用户信息表,留言信息表,管理员信息表。
数据库的具体实现见下列界面显示。
3.2数据库的实现
用户表
其中用户名为主键,用户名、职位、密码、姓名、性别、电话、电子邮箱、QQ号码、工作单位,自我介绍的数据类型为文本类型,注册时间数据类型为日期/时间。
留言信息表(Info)
其中id为主键并且自动编号,其中除了sendtime,answertime数据类型为日期/时间类型外,其它数据类型为文本类型。
管理员表(admin)
其中id为主键,其它类型都为文本类型
4详细设计与实现
4.1管理员登录模块
管理员登录管理员登录界面和用户登录界面在一起,通过对数据库中用户角色的判断来确定是否为管理员,如果是管理员则进入后台管理界面
登录界面
4.2用户信息管理模块
该模块为管理员对师生信息,及管理员信息进行编辑
4.2.1全部师生信息管理界面
通过编辑选项,管理员可以重新编辑或局部修改注册用户的个人基本信息,也可以通过删除选项,删除恶意留言的注册会员。
当然也能查询相关会员信息,帮助个别忘记自己密码的用户找到他们的密码
4.2.2管理员信息管理
通过这个功能,管理员可以更改自己的个人信息,也可以添加或删除其它管理员账号。
在本实验中,所有管理员的权限是一样的。
4.2.3添加师生信息
通过这个页面可以注册信息,在注册的时候,加了一些相关验证,比如QQ号码必须全为数字,邮箱格式必须符合正常标准等等。
完成填写后,点击提交,无需登录就可以直接进入相关页面进行操作了。
4.2.4添加管理员界面
4.3学生留言模块
通过这个模块学生可以向老师留言咨询,主界面如下:
4.4老师留言模块
这个模块老师可以答复学生咨询,通过点击会员信息可以查询所有注册师生的信息,通过回答按钮,可以对学生问题进行答复,也可以对一些恶意问题进行删除,还可对以前答复进行补充更新。
4.5其余辅助模块
通过这个模块,操作更人性化,辅助主要功能
老师和学生都可随时点击会员信息,老师可以了解学生的基本信息,方便沟通,也可了解老师的联系方式,方便课下咨询。
点击结果如下
4.6用户注册登录模块
程序主界面如下:
通过它可以选择登陆或注册,登陆方式有两中,一种是普通用户登陆,一种是管理员登陆,登陆后分别进入各自页面。
用户可以通过注册进入答疑系统,注册页面如下
当退出系统界面如下:
5功能代码详解
5.1有关于用户的操作实现代码
关于确定用户是老师,管理员还是学生的代码如下,如果选择管理员登陆按钮,则调用Login2(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs),判断用户名与数据库admin表中的数据是否相同,存在,则登陆成功。
通过调用login(ByValsenderAsObject,ByValeAsSystem.EventArgs)
来确定用户是否存在,如果存在,则通过判定roleid属性,来判定是学生还是老师。
ImportsSystem.Data
ImportsSystem.Data.OleDb
PartialClassindex
InheritsSystem.Web.UI.Page
SubPage_Load(ByValSenderAsObject,ByValEAsEventArgs)
EndSub
SubLogin2(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
Dimmyname1AsString=TextBox1.Text
Dimmypass1AsString=TextBox2.Text
IfNotmyname1=""AndNotmypass1=""Then
message.Text=checkadmin(myname1,mypass1)
Ifmessage.Text="ok"Then
Session("UserName")=myname1
Response.Redirect("admin.aspx")
EndIf
Else
message.Text="请填写完整的信息"
EndIf
EndSub
Functioncheckadmin(ByValnAsString,ByValpAsString)AsString
DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("dy.mdb"))
DimstrSqlAsString="select*fromadminwhereusername='"+n+"'anduserpwd='"+p+"'"
conn.Open()
DimcmdAsNewOleDbCommand(strSql,conn)
DimdrAsOleDbDataReader=cmd.ExecuteReader
Ifdr.Read()Then
Return"ok"
Else
Return"信息出错,请确认"
EndIf
conn.Close()
EndFunction
ProtectedSublogin(ByValsenderAsObject,ByValeAsSystem.EventArgs)
DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("dy.mdb"))
DimcmdAsNewOleDbCommand("select*fromusers",conn)
conn.Open()
DimdrAsOleDbDataReader=cmd.ExecuteReader
DoWhiledr.Read
Ifdr("username")=TextBox1.TextThen
Ifdr("userpwd")=TextBox2.TextThen
Session("username")=TextBox1.Text
Session("userpwd")=TextBox2.Text
Session("roleid")=dr("roleid")
IfSession("roleid")="教师"Then
Response.Redirect("teachers.aspx")
Else
Response.Redirect("students.aspx")
EndIf
EndIf
EndIf
Loop
DimerrAsString
err="用户名或密码错误"
Label2.Text=err
conn.Close()
EndSub
ProtectedSubsignup(ByValsenderAsObject,ByValeAsSystem.EventArgs)
Response.Redirect("signup.aspx")
EndSub
EndClass
5.2有关显示注册师生信息的代码
.<%@PageLanguage="VB"AutoEventWireup="true"CodeFile="userlist.aspx.vb"Inherits="userlist"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.OleDb"%>
SubPage_Load(SenderAsObject,EAsEventArgs)
'建立Connection对象
DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\Users\ruoshui\Documents\VisualStudio2005\WebSites\WebSite2\dy.mdb")
'建立Command对象
DimcmdAsNewOleDbCommand("select*fromusers",conn)
'----------------------------------------------------------------------------------------------------------
'打开数据库连接
conn.Open()
'建立DataReader对象
DimdrAsOleDbDataReader=cmd.ExecuteReader()
'下面开始显示数据,先显示标题
message.Text="ID | 姓名 | 职位 | 性别 | qq号码 | 电话号码 | 工作单位 | 邮箱地址 | "
'再利用循环显示每一条记录
DoWhiledr.Read()
message.Text&="
"message.Text&="
"&dr.Item("id")&" | "message.Text&="
"&dr.Item("username")&" | "message.Text&="
"&dr.Item("roleid")&" | "message.Text&="
"&dr.Item("sex")&" | "message.Text&="
"&dr.Item("qq")&" | "message.Text&="
"&dr.Item("tel")&" | "message.Text&="
"&dr.Item("units")&" | "message.Text&="
"&dr.Item("email")&" | "message.Text&="
"
Loop
message.text&=""
'关闭数据库
conn.Close()
EndSub
返回
注册师生信息总汇
Labelid="message"runat="server"/>
5.3有关注册的代码
ImportsSystem.Data
ImportsSystem.Data.OleDb
PartialClasssignup
InheritsSystem.Web.UI.Page
SubButton1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)
DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("dy.mdb"))
DimstrsqlAsString
DimerrorsAsString
DimconttAsInteger
contt=0
errors="用户名已存在"
strsql="insertintousers(username,userpwd,submitdate,roleid,sex,tel,email,qq,intro,units)values('"&TextBox2.Text&"','"&TextBox3.Text&"',#"&Now()&"#,'"&DropDownList1.SelectedItem.Value&"','"&DropDownList2.SelectedItem.Value&"','"&TextBox5.Text&"','"&TextBox6.Text&"','"&txtQQ.Text&"','"&txtIntro.Text&"','"&TextBox7.Text&"')"
Dimcmd1AsNewOleDbCommand(strsql,conn)
Dimcmd2AsNewOleDbCommand("select*fromusers",conn)
conn.Open()
DimdrAsOleDbDataReader=cmd2.ExecuteReader
DoWhiledr.Read
Ifdr("username")=TextBox2.TextThen
conn.Close()
contt=1
GoToll
'Response.End()
EndIf
Loop
ll:
Ifcontt=0Then
cmd1.ExecuteNonQuery()
conn.Close()
Session("username")=TextBox2.Text
Session("userpwd")=TextBox3.Text
Session("roleid")=DropDownList1.SelectedItem.Value
IfDropDownList1.SelectedItem.Value="教师"Then
Response.Redirect("teachers.aspx")
Else
Response.Redirect("student.aspx")
EndIf
Else
Response.Write("window.parent.location.href='err.aspx';")
EndIf
EndSub
EndClass
结 论
由于平常对网络编程这门不够重视,导致动手能力很差,这个答疑系统做的虽然非常简单,功能不是很全面,也不是非常好用,但还是费了我一番力气。
做完这个大程序,首先感觉功能太缺乏,虽然想法很多,但由于自己水平有限,不能一一实现,留下了不少遗憾。
比如,可以设置多个栏目,如计算机天地,专门探讨关于计算机方面的问题,文学典故,讨论关于文学方面的问题等等,如果可能还可以加上聊天室的私聊功能,这样在线用户可以相互沟通无障碍,无顾忌了。
还有打分系统,对老师的回复进行评分测评等等,由于时间及水平不足的原因,暂时先放弃,希望以后能够弥补。
这次实验遇到的最大的困难便是关于数据库的操作问题,由于以前没有学过数据库,对数据库数据存取的原理理解的不是很深,也基本很少用过数据库,导致做这次大作业时,只要遇到关于数据库读取或写入时,只能转向课本,寻找数据库连接绑定等相关代码,以便从中的到启发。