吉林工程技术师范学院
WEB 课程设计报告
名 称:网上留言中心设计报告 专 业:计算机科学与技术 班 级:0842 指导教师:段珺玮 董启明 姓 名:付大伟 学 号:21 完成时间:2011年7月8日
目录
第一章 绪论 ............................................................................................................................ 2
1.1 系统概述 ..................................................................................................................... 2 1.2 系统开发的目的和意义 ............................................................................................. 2 第二章 系统分析 ...................................................................................................................... 3
2.1需求分析 ...................................................................................................................... 3 2.2 技术分析 ..................................................................................................................... 4
2.2.2 SQL Sever 2008简介 ........................................................................................ 4 2.3可行性分析 .................................................................................................................. 5
2.3.1技术可行性 ....................................................................................................... 5 2.3.2操作可行性 ....................................................................................................... 5
第三章 系统的概要设计 .......................................................................................................... 6
3.1系统的总体设计 .......................................................................................................... 6
3.1.1运行环境 ........................................................................................................... 6 3.1.2系统流程 ........................................................................................................... 6 3.1.3系统结构 ......................................................................................................... 10 3.2 数据库逻辑结构设计 ............................................................................................... 10 3.3 物理结构设计 ........................................................................................................... 12 第四章 系统详细设计 ............................................................................................................ 13
4.1 界面详细设计 ........................................................................................................... 13 4.2数据库详细设计 ........................................................................................................ 17
4.2.1管理员登陆的详细设计 .................................................................................. 17 4.2.2用户的详细设计.............................................................................................. 17 4.2.3回复用户的详细设计 ...................................................................................... 18 4.2.4登陆界面的详细设计 ...................................................................................... 18
第五章 系统的运行和测试 .................................................................................................... 19
5.1 系统的开发环境 ....................................................................................................... 19 5.2在登陆页面输入账号和密码 ..................................................................................... 19 5.3进入留言板呢,查看留言信息 ................................................................................. 20 5.4发布留言信息并查看是否成功 ................................................................................. 21 5.5管理员登陆 ................................................................................................................ 22 第六章 系统实例的选择和分析............................................................................................. 24 第七章 总结 ............................................................................................................................ 26 附录:源代码 .......................................................................................................................... 27
参考文献: ...................................................................................................................... 32
1
第一章 绪论
1.1 系统概述
在网络网络技术迅速发展以信息交流频繁的今天,网络应用已经渗透
到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车;企业利用网站宣传自己的形象,进而挖掘无限商机;个人利用网站展示个性风采,创建彼此沟通的桥梁。越来越多的网站建立了自己的WWW网站。 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车;企业利用网站宣传自己的形象,进而挖掘无限商机;个人利用网站展示个性风采,创建彼此沟通的桥梁。越来越多的企业和个人希望拥有自己的网站,开辟网络世界里的一片天地。
1.2 系统开发的目的和意义
BBS 系统是最常见的一类网上社区,是 Internet 上最重要的应用之一。随着Internet 的普及,许多原本只提供 Telnet 方式登录的 BBS 系统也提供了允许用户使用 HTTP 协议方式进行网上交流的功能,Telnet 与 HTTP 的应用界限开始交融。当用户在网上冲浪访问到一个制作精美、内容丰富的网站时,会想到将自己的喜爱之情告诉网站的制作人。同样,当用户看到一个不能令人满意的网站时,也会想到将自己的高见留给网站的维护者,希望他们能有所改进。这时就要用到互动式网络一个重要的功能——留言板系统。留言板是网站上用户交流信息、相互沟通的乐园。留言板是一种最为简单的 BBS 应用。借助留言板,浏览者可以张贴留言给站长或其他浏览者。在企业或单位内部的局域网中,留言板提供了员工之间交流的绝好的场所。 留言板可以说是网上最常见的,网站留言管理方式是基于ASP.NET和脚本语言,将动态网页和数据库结合,通过应用程序来处理留言。
2
第二章 系统分析
2.1需求分析
留言板就是利用计算机硬件,软件设备和网络基础设施用来记录,展示文字信息的载体,有比较强的时效性。例如:如果你想要解决你不知道的一些问题,你可以在上面进行留言,知道的人会对你的问题进行针对性的回答,你还可以继对他的回答进行留言,大家可以很方便的进行交流和沟通,总的来说。该系统具有5个功能模块:
(1) 登录界面:
做出登录界面,然后通过输入用户或者管理员用户名和密码来登录。
(2) 留言版面:
做出留言版面,留言者能看到自己的留言,用户名和地址
(3) 用户的权利与义务:
用户是普通用户口令登录只可留言,如果用户用管理员口令登录
则可以实现对用户留言的回复、删除等功能
(4)留言
留言者在留言时不能为空,若为空时将提醒留言者“留言失败”;
成功提交留言时 “留言成功”。
(5)后台数据库
采用ADP.NET动态网页技术实现网页与数据库之间的连接,WEB中当一个文件将变量传送到另一个文件后,自动产生一个变量,并通过SQL语句进行数据库操作,从数据库中读出数据,并显示出来。 1.数据库架构
留言板数据库中数据表的字段类型。包括:ID(自动递增,不可重复)、标题、内容、姓名、电话、IP、日期、回复内容。 2.过滤垃圾信息
判断用户是否不停输入相同字符的信息,如果相同 字符信息重复连
3
续出现4次,将自动视为垃圾留言信息,系统不给予留言或者回复功能。 3.添加、删除、修改数据表项
根据实际应用,可自行添加、删除或者修改数据表中的字段类型,实现灵活化数据库管理功能。对实用价值不高的字段进行删除,有利于数据从数据库中的读取和存储速度。 4.留言板数据库维护及备份
为管理员提供数据备份功能。后台管理员可以自定义在某一定时间后,对留言板进行数据备份,便于数据出错后,可以即时恢复正常,保障用户信息不丢失。
2.2 技术分析
2.2.1 ASP.NET简介
ASP.NET是一个Web开发平台,提供可构建企业级应用所需的服务,编程模型和团建基础结构。虽然ASP.NET的语法基本上与前辈ASP兼容,但是ASP.NET是一个全新的编程框架,旨在用于快速开发Web应用程序。作为微软平台的一部分,ASP.NET提供了一种基于构件的,可扩展的且易于使用的方法,用于构件、部署和运行供所有在浏览器活移动设备中使用的Web应用。
2.2.2 SQL Sever 2008简介
SQL Sever是一种高性能的关系数据库系统(RDBMS),其主要特点有: ·与Windows 9x和Windows NT集成 ·提供企业级的数据库复制 ·提供并行的体系结构 ·支持超大型数据库 ·与OLE对象紧密集成
对客户/服务器用户的一个主要挑战就是管理跨整个企业范围内的对个服务器。SQL Sever用一个称为分布式管理框架(DMF)的企业级系统管理框架来实现。DMF有对象、服务器和用户管理Miccrosoft SQL Sever的其他组件组成。
SQL Sever Enterprise Manage位安排和管理多喝服务器提供了一个图
4
形化用户界面(GUI),Sever提供的分布式管理对象(DMO)的能力给SQL Sever引擎和服务器提供可一个对行啊接口。该层包括用户接口组件使用的OLE SQL Sever对象及任何遵循OLE Sever引擎和服务的途径。该层包含数据库引擎的后端,并提供有SQL Executive所管理的核心管理服务。
2.3可行性分析
2.3.1技术可行性
留言板网站是为了满足人们的需求而产生的,采用B/S三层体系结构,表示层用ASP.NET开发平台,业务层用C#编程语言,数据层用ADO.NET。后台数据存储用SQL Sever2008数据库。三层结构体系能够负责客户机与服务器、服务器和服务器之间的连接和通信,实现应用与数据库的高效连接:提供一个三层结构的应用开发、运行、部署和管理的平台。这三种层结构在曾与曾之间相互,任何一层的改变不会影响其他曾的功能。上述技术使用与本网站的开发。因此,本网站的开发在技术上是可行的。
2.3.2操作可行性
网站运行于Windows环境,其用户操作页面友好设计“网站导航”便于用户操作。
网站的基本操作如下:
·普通用户
自己留言,也可以观看别人的留言 ·管理员
可以对不文明的留言进行删除等操作
5
第三章 系统的概要设计
3.1系统的总体设计
3.1.1运行环境
·操作系统:windowsNT/2000/2003/2007
·安装IIS
·安装SQL Sever2008
·安装Visual Studio.NET2010
3.1.2系统流程
后台的业务流程(管理员用户执行操作的流程)如图3.1.1所示 3.1.1后台管理系统业务流程图
6
开始 7 前台业务流程(普通用户和管理员用户操作的流程)如图3.1.2 图3.1.2 前台业务流程图
8
开始 9
3.1.3系统结构
本课题的功能模块设计如图3.1.3所示
留言信息 查看留言 普通用户 回复留言 留言 网站 删除本人留言 留言管理 管理员用户 删除任意留言 用户管理 3.2 数据库逻辑结构设计
10
本课题设计规划的实体有管理员,用户,留言和留言回复板块,本实体的联系如图
1.用户的实体属性
邮箱 联系方式 账号 出生日期 用户 性别 登录密码 姓名 2.管理员的实体属性
管理员密码 管理员账号 管理员密码 管理员姓名
11
3.留言板的实体属性
留言内容 留言时间 留言主题 留言 留言用户账号 留言用户名 留言回复的条数
4..回复留言的实体属性
回复的时间 回复的主题 留言回复 留言时间 回复的内容 回复留言的账号
3.3 物理结构设计
12
本课题目前为数据库建立的4张表。
·管理员的表admin,包括登录密码和登录名
·登录表login,主要记录登录信息,包括ID,name,sex,truename,phone,email,address等基本信息。
·回复用户表guest,主要记录回复用户的信息,包括ID,UserName,sex,url,qq,email,content,reply,posttime。
·留言用户表 guesttest,只要记录用户的信息,包括ID,UserName,qq,content,posttime。
第四章 系统详细设计
本课题总体设计的核心思想主要有以下两点:页面是一个容器,是由不同的模块组成的,Web页面和用户空间属于表示层,他们用来处理交互,具体功能由业务对象来完成。
4.1 界面详细设计
1.学生登陆页面的login.asp的设计
页面采用表单设计,用来让用户输入账号和密码的并检查用户名和密码与数据库里面用户信息表的信息是否一致,如果正确则跳转到留言板的主页normal.asp,否则转到返回到login.asp,继续输入用户名的账号和密码。若用
13
户还未注册,可以点下面的注册链接,会链接到注册页面Default2.asp。若要进入管理员登录系统,对留言板系统进行管理,则可以使用admin作为登陆账号和密码。由于使用Visual studio2010作为开发工具,用户登录模块可以很简单的完成,添加显示当前时间的代码。添加了一个服务器行为—用户登录,用来判断用户输入的账号和密码与数据库中的是否一致。
其实现的页面和核心代码如下
if (Convert.ToInt32(cmd.ExecuteScalar()) > 0) {
if (this.txtUserName.Text == \"admin\") {
Session[\"admin\"] = \"admin\";
Response.Write(\"\"); } else {
Session[\"username\"]=this.txtUserName.Text;
Response.Write(\"\"); } } else {
Response.Write(\"\"); }
14
2.用户注册页面Default2.asp:
页面采用表单,插入表格的设计。注册时需要输入账号、密码、用户名性别等。提交时,若输入的用户账号存在则要转到login.asp。可添加服务器行为—用户身份验证—检查新用户名。如下图所示:
其核心控件代码为为
3.留言板页面 datalist.asp:
该页面做了一个重复区域,来实现显示该版块所有留言信息。通过阶段变量显示登录的用户的用户名。建了两个记录集,发布留言的信息利用服务器行为——插入记录来实现写入数据库的guest.aspx的表。该页面还添加了一服务器行为——用户身份验证——对页的访问。若未登录访
15
问该地址,则自动跳转到用户登录页面login.asp。
其核心代码为
public void dataGridBind() {
SqlConnection conn = DB.createCon(); SqlCommand cmd = new SqlCommand();
cmd.CommandText = \"select * from GS_TB_works\"; cmd.Connection = conn;
SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; DataSet ds = new DataSet(); sda.Fill(ds, \"GS_TB_works\");
PagedDataSource pds = new PagedDataSource(); pds.AllowPaging = true; pds.PageSize = 5;
pds.DataSource = ds.Tables[\"GS_TB_works\"].DefaultView; this.DataList1.DataSource = pds; this.DataList1.DataBind();
cmd.CommandText = \"select count(*) from GS_TB_works\";
4.管理员登录页面login.asp:
页面采用表单设计,用来让管理员输入账号和密码的并检查账号和密码与数据库里面管理员信息表admin的信息是否一致,如果正确则跳转到留言板管理页面adminlyb.aspx,否则转到返回到login.asp,继续输入用户名的账号和密码。
其主要核心代码为
protected void lbtnDelete_Command(object sender, CommandEventArgs e) {
int userID = Int32.Parse(e.CommandArgument.ToString()); SqlCommand cmd = new SqlCommand(); cmd.Connection = DB.createCon();
cmd.CommandText = \"delete from guesttest where ID=\" + userID; if (cmd.ExecuteNonQuery() > 0) {
16
Response.Write(\"\"); } else {
Response.Write(\"\"); }
4.2数据库详细设计
本课程设计共设计了5张表
4.2.1管理员登陆的详细设计
表4.2.1为管理员登录表的详细设计
4.2.2用户的详细设计
表4.2.2为用户登录和留言表的详细设计
!
!
17
4.2.3回复用户的详细设计
表4.2.3为用户回复表的详细设计
4.2.4登陆界面的详细设计
表4.2.4为登陆用户表的详细设计
18
第五章 系统的运行和测试
5.1 系统的开发环境
·系统:Microsoft Windows7
·编程环境:Microsoft Visual Studio 2010 ·ASP.NET版本 :ASP.NET 2.0 ·开发语言:C#
·数据库:SQL Sever2008
5.2在登陆页面输入账号和密码
19
5.3进入留言板呢,查看留言信息
20
5.4发布留言信息并查看是否成功
21
5.5管理员登陆
22
5.6管理员删除留言
23
第六章 系统实例的选择和分析
测试是为了发现程序中的错误而执行那个程序的过程。好的测试方案是尽可能发现尚未发现的错误的测试方案。
本节将要介绍各个功能的测试用例及预期结果。 身份验证与角色判断功能
·用例内容如下,普通用户信息见表6.1,管理员用户信息见表6.2
表6.1普通用户信息测试用例
用户名 密码 普通用户 付大伟 fudawei 表6.2普通用户信息测试用例
用户名 密码
·测试步骤
1.以这些实例信息注册各个角色的用户。
2.以不同身份登录系统进行操作,如用户留言,回复留言,删除留言,管理员后台管理等操作。 3.观察系统运行状态。 ·预期结果
系统向不同角色的用户实现不同的操作选项,并且不同角色只能访问权限范围内的页面。
管理员 admin admin 24
·系统的安全性分析
本课题采用了ASP.NET2.0中新增功能身份认证系统,利用此功能可以快色建立用户管理子系统,功能十分完善,保证的系统的安全性能。 本课题利用ASP.NET2.0提供的控件以及后台强大功能类,完成了成员管理。角色管理等功能。 ·系统稳定性能分析
由于系统在设计时采取现设用户错误输入原则(包括对输入的完整性和合法性的检查等),因此这在很大程度上保证可系统的稳定性。在经过大量,多类型复杂组合反复测试后,系统始终运行稳定,说明系统的稳定性具有一定的可信度。
25
第七章 总结
在本次课程设计和论文写作中,最感谢的是我的同学和老师。因为有了他们的支持,我才能坚持写完。尤其是董启明老师和段珺玮老师(给了我许多技术指导,多次提出一些建设性的建议和创想,并提出我编程中常犯的错误,这让我进步神速)还有我们宿舍的兄弟,在课程设计期间对我的支持和写论文时对我的帮助!
这一段时间的努力,最后的结果固重要,但更重要的是它让自己了解了设计的一般过程。在做一个项目的时候,首先是进行需求分析,既各种功能需求以及系统结构都要在需求分析中做出来。接下来做的就是逻辑结构设计,通过逻辑结构设计出数据库。然后就是详细设计,通过需求分析中对各种功能的描述,利用自己所学的ASP.NET知识编写出相应的功能模块界面,这是个比较繁琐的阶段,需要大量的编写和修改各部分代码,以确保系统整体的可运行性。最后就到了验收成果的阶段,通过系统的运行测试,了解系统的一些问题和不足,并做出一定的修改,最终得到了现在的成果。
最后,还要感谢所有帮助过我的人,谢谢你们!
26
附录:
源代码
public partial class Default4 : System.Web.UI.Page {
string curPage;
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
this.lblPageCur.Text = \"1\"; dataGridBind(); } }
public void dataGridBind() {
curPage = this.lblPageCur.Text;
SqlConnection conn = DB.createCon(); SqlCommand cmd = new SqlCommand();
cmd.CommandText = \"select * from guesttest order postTime desc\";
cmd.Connection = conn;
SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; DataSet ds = new DataSet(); sda.Fill(ds, \"guesttest\");
PagedDataSource pds = new PagedDataSource(); pds.AllowPaging = true; pds.PageSize = 5;
pds.DataSource = ds.Tables[\"guesttest\"].DefaultView; pds.CurrentPageIndex = Convert.ToInt32(curPage) - 1; this.lblPageTotal.Text = pds.PageCount.ToString(); this.Button1.Enabled = true; this.Button2.Enabled = true; if (curPage == \"1\")
by
27
{
this.Button1.Enabled = false; }
if (curPage == pds.PageCount.ToString()) {
this.Button2.Enabled = false; }
this.DataList1.DataSource = pds; this.DataList1.DataBind();
cmd.CommandText = \"select count(*) from guesttest\"; this.lblMesTotal.Text =
Convert.ToString(cmd.ExecuteScalar());
if (!IsPostBack) {
int a = pds.PageCount;
for (int i = 1; i <= a; i++) {
this.DropDownList1.Items.Add(i.ToString());
}
} }
protected void Button1_Click(object sender, EventArgs e) {
this.lblPageCur.Text =
Convert.ToString(Convert.ToInt32(this.lblPageCur.Text) - 1); dataGridBind(); }
protected void Button2_Click(object sender, EventArgs e) {
this.lblPageCur.Text = Convert.ToString(Convert.ToInt32(this.lblPageCur.Text) + 1); dataGridBind(); }
protected void Button3_Click(object sender, EventArgs e) {
this.lblPageCur.Text = \"1\"; dataGridBind();
28
}
protected void Button4_Click(object sender, EventArgs e) {
this.lblPageCur.Text = this.lblPageTotal.Text; dataGridBind(); }
protected void Button5_Click(object sender, EventArgs e) {
this.lblPageCur.Text = this.DropDownList1.SelectedValue; dataGridBind(); }
protected void Button6_Click(object sender, EventArgs e) {
string username = Session[\"admin\"].ToString(); string content = this.txtContent.Text; string posttime = DateTime.Now.ToString(); SqlConnection conn = DB.createCon(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = \"insert into guesttest(username,content,postTime) values('\" + username + \"','\" + content + \"','\" + posttime + \"')\"; if (cmd.ExecuteNonQuery() > 0) {
Response.Write(\"\"); } else {
Response.Write(\"\"); } }
Protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) {
if (e.CommandName == \"Reply\") {
int id = e.Item.ItemIndex;
29
Stringname=((Label)DataList1.Items[id].FindControl(\"Label1\")).Text.Trim();
string replyContent = “回复”+name+“:”; txtContent.Text = replyContent; txtContent.Focus(); } }
protected void Button7_Click(object sender, EventArgs e) {
this.txtContent.Text = \"\"; txtContent.Focus(); }
protected void lbtnDelete_Command(object sender, CommandEventArgs e) {
int userID = Int32.Parse(e.CommandArgument.ToString()); SqlCommand cmd = new SqlCommand(); cmd.Connection = DB.createCon();
cmd.CommandText = \"delete from guesttest where ID=\" + userID; if (cmd.ExecuteNonQuery() > 0) {
Response.Write(\"\"); } else {
Response.Write(\"\"); } } }
登陆界面的源代码
public partial class login : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
30
}
protected void Button1_Click(object sender, EventArgs e) {
SqlConnection conn = DB.createCon(); SqlCommand cmd = new SqlCommand(); string md5pass = FormsAuthentication.HashPasswordForStoringInConfigFile(this.txtPwd.Text, \"MD5\");
cmd.CommandText = \"select count(*) from login where Name='\"+this.txtUserName.Text+\"' and Pass='\"+md5pass+\"'\"; cmd.Connection = conn;
if (Convert.ToInt32(cmd.ExecuteScalar()) > 0) {
if (this.txtUserName.Text == \"admin\") {
Session[\"admin\"] = \"admin\";
Response.Write(\"\"); } else {
Session[\"username\"]=this.txtUserName.Text;
Response.Write(\"\"); } } else {
Response.Write(\"\"); } } } }
31
参考文献:
[1] 《ASP.NET实用网站开发》 沈士根 清华大学出版社 2009.5 [2] 《网站开发实用手册》 中国广播电视出版社 2008 [3] 《ASP.NET 4权威指南》 马伟 机械工业出版社 2011.1 [4] 《ASP.NET从入门到精通》 顾彦玲 清华大学出版社2008.9 [5] 《ASP.NET开发实战1200例》 房大伟 清华大学出版社2011.1
32
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务