




免费预览已结束,剩余20页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.NET软件开发课程设计报告(2012-2013学年第二学期)题 目: 网络聊天室 院(系): 计算机科学与技术学院 专业年级: 10级物联网工程方向 姓 名: 学 号: 指导教师: 2013年06月21日目 录1 课程设计选题意义12 相关技术及工具介绍22.1 相关技术介绍22.2 相关工具介绍23 系统需求分析34 系统总体设计44.1 系统设计的目标44.2 系统总体功能设计44.3 数据库设计64.3.1 数据库概念结构设计64.3.2 数据库逻辑设计74.3.3 数据库物理结构设计75 系统实现与测试95.1 系统开发平台及工具选择95.2 系统功能实现95.2.1 用户登录页面95.2.2 用户注册页面95.2.3用户取回密码页面105.2.4用户聊天页面105.2.5查看聊天记录页面105.2.6管理员登陆页面105.2.7管理员管理页面105.3 测试116 课程设计总结14附 录16参考文献22.NET软件开发课程设计报告1 课程设计选题意义互联网技术的广泛应用,对整个世界政治、经济、文化等各方面产生了十分广泛和深远的影响。它奇迹般的崛起、爆炸般地扩容,令全世界瞩目。如今,大大小小的网络已遍布全球,并通过Internet实现了互联。据估计,Internet的规模大约每年要翻一番,网络的应用领域也从原来的科技和教育领域进入到文化、产业、政治、经济、新闻、体育、娱乐、商业以及服务等行业。随着网络的普及,人类生活越来越依赖网络,人与人之间的交流也越多的在网络上进行。由于交流的实时性,即时通讯系统也被越来越多的人所使用。即时通讯系统除了普通的生活上的交流,也在商业交流中越来越受到重视,它可以是个很好的与客户之间即时交流的平台,在时间上它要比电子邮件更加具有实时性,而费用相对电话交流也要经济的多。在这种环境下,聊天软件作为一种即时通讯工具,得到了很好的发展。因此,设计开发一个可以灵活用于网站,论坛,公司或企业内部交流的聊天工具很有必要。2 相关技术及工具介绍2.1 应用的相关技术B/S结构(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。2.2 开发工具介绍Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。3 系统需求分析编写一个网站来实现网络聊天室的功能,具体要求如下:(1)具有较好的可视化界面,做到美观、大方。(2)含有站点地图,用Menu控件实现站点导航功能。(3)能实现用户的登录、注册、取密码等功能。(4)用户登录后可进行聊天,可查看在线人数和聊天记录。(5)聊天时实现对消息中敏感词汇的提示和替换。(6)具有管理员功能,管理员登录后可查看用户信息和用户聊天记录。(7)管理员能够根据查询条件和查询值查询到所要查找的聊天记录(删除时有提示框)。4 系统总体设计本章首先分析系统设计的目标,系统设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。对系统总体功能设计进行了详细的说明。然后结合实际,根据系统相应的需求设计系统的功能,对数据库的概念结构设计,逻辑结构设计和物理结构设计等进行了详细的说明。最后经过这一阶段的设计工作,应该得出对目标系统的精确描述,为系统的实现打下基础。4.1 系统设计的目标本系统是基于B/S模式的网络聊天室。主要由用户登录页面、管理员登陆页面、注册页面、取回密码页面、聊天页面、查看聊天记录页面、管理员管理信息页面(两个页面)、Web.Config配置页面以及全局应用程序类组成。要求实现用户登录、注册、取回密码、聊天等功能。具有管理员功能,管理员登录后可查看用户注册信息和用户聊天记录管理员的登录、管理用户信息等功能。管理员能够根据查询条件和查询值查询到所要查找的聊天记录(删除时有提示框),用户聊天页面能看到在线人数,用户可看到消息的详细信息并可随时查看聊天记录。实现对聊天消息中敏感信息的屏蔽功能。4.2 系统总体功能设计本系统由用户登录页面、管理员登陆页面、注册页面、取回密码页面、聊天页面、查看聊天记录页面、管理员管理信息页面(两个页面)、Web.Config配置页面以及全局应用程序类。其中数据源为Sql server,数据库连接字符串UserConnectionString存放在Web.Config中。Session对象用来存储登录用户的用户名,以便多个页面之间的调用。Application对象用来存储和读取全局变量,实现在线人数的统计功能。站点地图Web.sitemap,用于站点导航。普通用户只能实现查看聊天记录功能。管理员登录后可实现对用户信息和聊天记录的管理。系统的总体流程图如图4-1所示。站点导航管理员登录用户注册取回密码验证验证用户登录聊天页面关闭聊天查看聊天记录聊天记录页面注册成功验证得到密码验证管理用户信息管理聊天记录注销登录管理页面YNYNNNYY图4-1 系统总体流程图4.3 数据库设计数据库设计是建立数据库及其应用系统的基础,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。按照数据库的设计步骤主要分为以下三步,即数据库概念结构设计、数据库逻辑结构设计以及数据库物理结构设计。下面将从这三部分进行详细的分析设计。4.3.1 数据库概念结构设计概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。数据库概念模型是现实世界到机器世界的一个中间层次。概念模型首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,主要有层次模型、网状模型和关系模型,其中最常用的方法之一是关系,即使用E-R图来描述某一组织的概念模型。E-R模型是指直接从现实世界中抽象出实体类型及实体间联系,是一种描述静态数据结构的概念模型。它的主要成分是实体、联系和属性。可用E-R模型进行数据库概念设计。E-R图是直观表示概念模型的工具。系统包括的实体有3个,分别是:管理员、用户、消息,管理员实体图如图4-2所示、用户实体图如图4-3所示、信息实体图如图4-4所示。管理员密码用户名密保问题图4-2管理员实体图用户密码邮箱密保问题用户名图4-3用户实体图消息编号发送者时间内容图4-4消息实体图4.3.2 数据库逻辑设计逻辑结构是独立于任何一种数据模型的,由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。将E-R图转换为关系数据库的数据模型,其关系模式为:管理员信息表:User_admin(username,passwprd,question)用户信息表:User_usertable(username,passwprd,email,question)聊天记录表:User_message(username,time,message,id)其中带下划线表示主键。4.3.3 数据库物理结构设计数据库物理结构设计是指根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构。表4.5管理员信息表字段名称字段类型Null含义示例数据usernamevarchar(50)否用户名管理员1passwordvarchar(50)否密码654321questionvarchar(50)是密保问题111111表4.6用户信息表字段名称字段类型Null含义示例数据usernamevarchar(50)否用户名主键列小王passwordvarchar(50)否密码123456emailvarchar(50)否邮箱123456questionvarchar(50)是密保问题000000表4.7消息记录表字段名称字段类型Null含义示例数据usernamevarchar(50)否发送者张三timedatetime否时间2013-6-20messagevarchar(50)是消息内容你好!idint否编号主键列15 系统实现与测试经过对系统的需求分析和设计,介绍了系统开发平台和工具的选择,并对其主要的功能如用户登录模块、用户注册模块、取回密码模块、管理员登录模块、聊天模块、聊天记录模块、管理员管理信息模块进行详细的设计与实现。5.1 系统开发平台及工具选择系统开发平台和工具为项目的实现提供了必不可少的支撑平台和环境,选择恰当的开发平台和工具,不仅可以加快开发的进度,提高开发的质量,而且还对用户的使用有极大的影响。本节针对基于Web的毕业设计资料管理系统的需求和实际应用条件,选择应用广泛,用户熟悉和习惯的微软公司的产品,具体如下:硬件:PC机一台。客户端要求:IE5.0及以上。软件:1.数据库:SQL 2005。2.开发工具:Microsoft Visual Studio 2005。 运行环境:Win 7/Windows XP。5.2 系统功能实现5.2.1 用户登录页面该页面包含Menu控件,数据源为SiteMapDataSource1。实现站点导航功能。包含一个取消按钮,点击取消按钮后将两个TextBox按钮文本置空。包含一个登录按钮,点击登录按钮后先判断用户名和密码是否为空,为空提示输入用户名和密码,不为空的话从数据库中查找用户名和输入用户名相同的数据项,若不存在提示用户名不存在,若存在则将比对密码是否与输入密码相同,若不同提示密码错误,若相同则登录成功跳转到聊天页面。5.2.2 用户注册页面该页面包含Menu控件,数据源为SiteMapDataSource1。实现站点导航功能。页面包含四个数据验证控件用于实现用户名、密码是否为空的判断、比较两次输入的密码是否一致的判断、输入的邮箱是否为正确的邮箱格式的判断。若均无误后,进行数据库查询操作。如若查询到输入的注册名与数据库中的用户名相同则提示用户名已存在,否则则注册成功。5.2.3用户取回密码页面该页面包含Menu控件,数据源为SiteMapDataSource1。实现站点导航功能。页面包含一个数据验证控件用于实现用户名是否为空的判断。若不为空则进行数据查询操作,若查不到与数据库中用户名相同的项则提示用户名不存在,若存在将输入的密保问题与数据库中的密保问题作比较,若不同,提示密保问题错误。若相同将密码显示到页面,用户取得密码。5.2.4用户聊天页面该页面包含两个Lable控件,分别用于显示当前在线人数和发言人。两个TextBox控件,用来实现显示消息和输入消息。三个按钮,一个查看聊天记录按钮,用于跳转到查看聊天记录页面。一个关闭按钮,用于跳转到用户登录页面。一个发送按钮,点击之后将消息输入框的内容与数组中的词汇作比较,若包含则提示含有敏感字汇(消息未存入数据库),若不包含则将消息显示到消息框并存入数据库。5.2.5查看聊天记录页面该页面包含一个GridView控件,用来显示聊天记录表,绑定数据源为SqlDataSource1,并启用分页,SqlDataSource1绑定字符串为UserConnectionString。其中数据库连接字符串UserConnectionString存放在Web.Config中。5.2.6管理员登录页面该页面包含Menu控件,数据源为SiteMapDataSource1。实现站点导航功能。页面包含一个取消按钮,点击取消按钮后将两个TextBox按钮文本置空。包含一个登录按钮,点击登录按钮后先判断用户名和密码是否为空,为空提示输入用户名和密码,不为空的话从数据库中查找用户名和输入用户名相同的数据项,若不存在提示用户名不存在,若存在则将比对密码是否与输入密码相同,若不同提示密码错误,若相同则登录成功跳转到管理员管理页面。5.2.7管理员管理页面该页面包括两个页面:用户信息管理页面:包含一个注销按钮,用于退出登录。一个消息管理按钮,用于跳转到消息管理页面。一个GridView控件,用来显示用户表,绑定数据源为SqlDataSource1,并启用分页、编辑和删除,SqlDataSource1绑定字符串为UserConnectionString。 聊天信息管理页面:该页面包含一个注销按钮,用于退出登录。一个用户管理按钮,用于跳转到用户管理页面。一个GridView控件用来显示聊天记录表,数据绑定由后台代码实现(根据查询条件不同绑定不同的数据),启用分页,添加删除列。5.3 测试经过测试,设计的网站能较好的实现需求分析中的功能,满足给出的要求。运行图如下:图5-1用户登录该页面用于实现对用户名、密码的验证。核心代码为:command.CommandText = SELECT username,password FROM usertable WHERE username=+username.Text.Trim()+and password=+password.Text.Trim()+ ;图5-2用户聊天该页面用来实现用户聊天功能。核心代码为:Application.Lock();Applicationmessage += Sessionusername + 说: + message + DateTime.Now.ToString()+n;Application.UnLock();TextBox1.Text = Applicationmessage.ToString();图5-3用户取回密码该页面用来实现用户取回密码功能。核心代码为:command.CommandText = SELECT password FROM usertable WHERE username= + username.Text + ;Response.Write(您的密码为: + command.ExecuteScalar().ToString();图5-4用户注册该页面用来实现用户注册功能。核心代码为:command.CommandText = insert into usertable values( + username.Text + , + password.Text + , + email.Text + , + question.Text + );command.ExecuteNonQuery();Response.Write(注册成功!);图5-5管理员登录该页面用来实现管理员登录功能。核心代码为:command.CommandText = SELECT password FROM admin WHERE username= + username.Text + ;图5-6管理员管理用户信息该页面用来实现管理员管理用户信息功能,通过GridView控件实现。图5-7管理员管理消息记录该页面用来实现管理员登录功能。核心代码为:GridView2.DataSource = show(select * from message);GridView2.DataBind();string sql = SELECT * FROM message WHERE username= + TextBox1.Text + ;GridView2.DataSource = show(sql);GridView2.DataBind();6 课程设计总结从这次系统设计中,我发现了自己还存在很多不足,还有许多知识都没掌握。通过这次程序设计,我懂得了怎么根据现有资料开发一些自己想要实现的一些功能的系统,懂得了只要肯努力就会有收获。课程设计期间,我得到了经验丰富的聪厚同学的耐心指导,正是这些使得本次设计能够比较成功的完成。这次的课程设计不仅是对过去一段时间所学知识的一次检验,同时还让我学会如何去提出问题,思考问题和解决问题。总之,通过本次设计让自己有了新的认识,新的体会,希望在今后的实践过程中能做的更好。最后,感谢老师和同学们的帮助,谢谢!附 录登录代码: protected void Button1_Click(object sender, EventArgs e) if (username.Text = | password.Text = ) Response.Write(alert(请输入用户名和密码!);); else String ConnectionString = WebConfigurationManager.ConnectionStringsUserConnectionString.ConnectionString; SqlConnection conn = new SqlConnection(ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandType = CommandType.Text; command.CommandText = SELECT username,password FROM usertable WHERE username=+username.Text.Trim()+and password=+password.Text.Trim()+ ; conn.Open(); if (command.ExecuteScalar()!= null) Sessionusername = username.Text; Applicationmeessage = ; Response.Redirect(ChatRom.aspx); else Response.Write(alert(登录失败!);); conn.Close(); 注册页代码:protected void Button1_Click(object sender, EventArgs e) String ConnectionString = WebConfigurationManager.ConnectionStringsUserConnectionString.ConnectionString; SqlConnection connection = new SqlConnection(ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; connection.Open(); command.CommandText = SELECT username FROM usertable WHERE username= + username.Text.Trim()+; if (command.ExecuteScalar() = null) command.CommandText = insert into usertable values( + username.Text + , + password.Text + , + email.Text + , + question.Text + ); command.ExecuteNonQuery(); Response.Write(注册成功!); else Response.Write(alert(用户名已存在,请重新注册!);); connection.Close();聊天页面代码:protected void Button1_Click(object sender, EventArgs e) string let = new string 金钱, 转账, 付款,毒品 ; int k=0; int i = 0; for (i=0; i -1) break; if (k -1) string message = TextBox2.Text.ToString(); string w = leti; message = message.Replace(w,*); Application.Lock(); Applicationmessage += Sessionusername + 说: + message + DateTime.Now.ToString()+n; Application.UnLock(); TextBox1.Text = Applicationmessage.ToString(); TextBox2.Focus(); Response.Write(alert(含有敏感词汇!);); else String ConnectionString = WebConfigurationManager.ConnectionStringsUserConnectionString.ConnectionString; SqlConnection connection = new SqlConnection(ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; connection.Open(); command.CommandText = insert into message values( + Sessionusername + , + DateTime.Now.ToString() + , + TextBox2.Text.Trim().ToString() + ); command.ExecuteNonQuery(); connection.Close(); Application.Lock(); Applicationmessage += Sessionusername + 说: + TextBox2.Text + DateTime.Now.ToString() + n; Application.UnLock(); TextBox1.Text =Applicationmessage.ToString(); 取回密码页代码:protected void Button2_Click(object sender, EventArgs e) string b; String ConnectionString = WebConfigurationManager.ConnectionStringsUserConnectionString.ConnectionString; SqlConnection conn = new SqlConnection(ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandType = CommandType.Text; command.CommandText = SELECT question FROM usertable WHERE username= + username.Text + ; conn.Open(); if (command.ExecuteScalar() = null) Response.Write(alert(您输入的用户名不存在!);); else b = command.ExecuteScalar().ToString(); if (b = question.Text) command.CommandText = SELECT password FROM usertable WHERE username= + username.Text + ; Response.Write(您的密码为: + command.ExecuteScalar().ToString(); else Response.Write(alert(密保问题错误!);); 管理聊天信息页代码:protected void Page_Load(object sender, EventArgs e) GridView2.DataSource = show(select * from message); GridView2.DataBind(); protected void Button2_Click(object sender, EventArgs e) String ConnectionString = WebConfigurationManager.ConnectionStringsUserConnectionString.ConnectionString; if (DropDownList1.SelectedValue = username) string sql = SELECT * FROM message WHERE username= + TextBox1.Text + ; GridView2.DataSource = show(sql); GridView2.DataBind(); if (DropDownList1.SelectedValue = time) string sql = SELECT * FROM message WHERE time like% + TextBox1.Text + %; GridView2.DataSource = show(sql); GridView2.DataBind(); if (DropDownList1.SelectedValue = message) string sql = SELECT * FROM message WHERE message like% + TextBox1.Text + %; GridView2.DataSource = show(sql); GridView2.DataBind(); public DataSet show(string sqlstr) String ConnectionString = WebConfigurationManager.ConnectionStringsUserConnectionString.ConnectionString; string sql = sqlstr; using (SqlConnection coon = new SqlConnection(ConnectionString) SqlCommand com = new SqlCommand(); com.Connection = coon; com.CommandType = CommandType.Text; com.CommandText = sql; coon.Open(); SqlDataAdapter ad = new SqlDataAdapter(sql, coon); DataSet ds = new DataSet(); ad.Fill(ds); return ds; protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e) GridView2.PageIndex = e.NewPageIndex; if (TextBox1.Text =) string sql = SELECT * FROM message ; GridView2.DataSource = show(sql);/调用绑定的具体方法 else if (DropDownList1.SelectedValue = username) string sql = SELECT * FROM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论