《程序设计教程》
实验报告
学院:电子与信息工程学院
专业:计算机科学与技术
班级学号:
学生姓名:徐静
指导老师:张战成
实验日期:2014-12-18 成绩评定:____________
实验名称:实验2留言板管理系统
实验内容:
1.使用实现留言板管理系统
2.系统中有两类用户:普通用户和管理员用户;
3.普通用户注册后可以留言,管理员可以回复,也可删除留言。
4.用户留言经管理员回复后,任何人(包括未注册的用户,即游客)都可以浏览系统中的留言和
回复情况,未经管理员回复的留言,游客不允许查看(避免在网上发表不负责的言论)。
实验目的:
1.通过留言板管理系统,掌握相应的代码设计的思想以及技术。
2.通过本次实验掌握数据库的运用。
3. 学会撰写实验报告。
一、系统设计思想
1.1系统需求分析
信息管理系统满足管理员管理用户信息以及用户查看信息和修改本人权限之内的信息,具体需求如下:
(1)用户注册与登录:用户登录验证用户登录的信息是否合法;验证用户是管理员或者普通用户;用户注册相关信息默认为普通用户
(2)管理员管理留言:管理员回复留言,删除留言;
(3)普通用户留言:普通用户发布留言,查看留言;
(4)游客查看留言:游客查看已经得到回复的留言;
1.2系统架构设计
该Web应用系统采用三层架构模式,分别是Web显示层、数据库访问层、数据库。
系统总体的架构设计如下:
数据库在最底层,它存储系统的所有数据。
数据访问层建立在数据库之上,为显示层提供数据服务,应用程序通过该层访问数据库。
数据访问层一般封装数据库的选择、添加、更新和删除等操作,同时还为业务逻辑层提供访问数据库的接口或函数或方法等它与数据库相关联,同时又为显示层服务,所以数据库访问层设计直接关系到整个系统的成败。
1.3系统功能设计
根据系统需求分析要求,它主要包括用户登录和注册功能、在线人数统计、管理员管理留言功能、普通用户留言功能,游客查看留言功能,按照该设计可以把信息管理系统划分为登录和注册模块、管理员模块,普通用户模块,游客模块,它们之间的关系如下:
二、数据库设计
(1)数据库E-R图
(2)数据库表结构
系统涉及的字段有用户名、密码、权限等级、喜欢的歌手等字段,将用户名设置为主键,不可重复,等级为0或者1,为0表示该用户为管理者,为1表示普通用户。
数据库表具体字段如下:
(3)数据库中的数据
三、关键代码
(1)连接数据库
string strConn = "Data Source=small\\sqlexpress;Initial Catalog=zzh;Integrated Security=True"; using (SqlConnection conn = new SqlConnection(strConn)){
conn.Open();
...
}
(2)游客身份查看信息
登录页面将登录的用户名放入Session中:Session["UserName"] = txtBoxUserName.Text;
统计人数的页面根据Session,显示页面:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:zzConnectionString %>"
SelectCommand="SELECT * FROM [liuyan] WHERE ([reply] IS NOT NULL)"> </asp:SqlDataSource>
<td align="center" style="border-style: solid; border-width: 1px"> 姓名:</td>
<td align="center" style="border-style: solid; border-width: 1px">
<asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>' /></td>
其他信息的显示与显示姓名的方式相似
(3)回复留言
mandText = "Update [liuyan] set [reply]='" + TextBox2.Text +
"' where [name]='" + argName + "' and [message]='" + argMessage +"'";
int count = (int)cmd.ExecuteNonQuery();
if (count == 1){
Response.Write("<script language = javascript> alert('回复成功');</script>");
Response.AddHeader("Refresh", "0");
}else{
Response.Write("<script language = javascript> alert('回复失败');</script>");
Response.AddHeader("Refresh", "0");
}
四、运行结果
(1)普通用户"张三"注册,登录,留第一条言:"苏州科技学院有几个校区"
Stpe1:注册张三用户,填写姓名和密码信息
Stpe2:登录张三用户,输入姓名和密码
Stpe3:进入我的留言模块,发布留言
(2)普通用户"张三"登录,留第二条言:"电子学院在哪个校区" ,然后退出
Stpe1:登录张三用户,发布留言
(3)普通用户"李四"注册,登录,留第一条言:"逗你玩"
Stpe1:注册李四用户,填写姓名和密码
Stpe2:登录李四用户,输入姓名和密码
Stpe3:发布留言
(4)管理员登录,回复"张三"第一条留言:"三个校区,分别是:石湖、江枫、天平",管理员退出
Stpe1:进入到留言管理模块,对留言进行回复
(5)游客查看系统当前的留言,应该只能看到"张三"的第一条留言和回复情况
(6)"张三"登录,应该可以看到自己的两条留言,以及管理员对第一条留言的回复
(7)"李四"登录,除了可以看到自己的留言外,还可以看到"张三"第一条留言和管理员的回复
五、心得体会:
这次代码的设计不仅教会我使用数据库也提高了我编写代码的能力。
这次实验在不仅巩固我对的基础知识,而且让我动手设计代码以及设计数据库,提高了我的动手能力以及缜密的思维。
在实验过程中,和同学交流,向老师请教,我都学到了很多知识,也促进了我和同学、老师之间的交流,以使我更好的学习,更好的掌握测试的基础知识。