C#程序设计-课程设计

  • 格式:doc
  • 大小:97.16 KB
  • 文档页数:16

《C#程序设计》课程设计题目:在线留言专业:计算机科学与技术学号: kkk姓名: mm指导老师:李向完成日期: 2012-12-26《C#课程设计》评分标准题目:在线留言专业:计算机科学与技术学号: 111006316 姓名:马欢目录1 前言 (5)2 需求分析 (5)2.1要求................................. 错误!未定义书签。

2.2任务................................. 错误!未定义书签。

2.3运行环境 (7)2.4开发工具 (7)3 概要设计与详细设计 (7)3.1系统流程图 (7)3.2查询函数流程图 (8)4 编码与实现 (9)4.1分析 (9)4.2具体代码实现 (11)5 课程设计总结 (15)参考文献 (15)致谢...................................... 错误!未定义书签。

1 前言随着计算机的普及,人们可以更方便的借助计算机这一平台实现各种生活需求,此次的设计,就是为了设计一个留言本,其中包括了用户留言,回复,管理员对留言信息的管理等基本功能,其中管理员可以删除用户留言,或者对用户的留言进行回复等,这些功能都能方便的为大家所使用。

给人们创造一个愉快的交流平台。

2 需求分析2.1需求分析开发一个在线留言系统,首先需要确定留言的功能是什么,也就是用户想要的留言所能做的工作。

用户使用留言是按照一定的流程来进行的:用户注册登录进入留言,可以就某个话题展开讨论,通过留言功能发布新的话题,通过回帖的功能回复已有的话题;管理员要管理留言,系统需要具有的功能有创建、删除留言的版块,管理注册的用户,管理留言,设置留言基本参数。

这样的流程就决定了留言所应具有的功能。

观察留言所有功能需求,按不同实体分类,可以分为四类实体对象:版块、留言、用户和留言。

这四类对象,可以设计为四个数据实体,如果使用数据库存储它们,即可以设计四个基本数据表的集合来存储这些实体的基本信息;它们可以设计为四个基本表,映射四个实体的基本数据。

这些基本对象只是留言系统中最为基本的要素,对于一个完整的留言还需要其它相关的表来记录相关的信息,即实体之间的相互关系信息。

留言一般存在两种用户,注册用户和管理员。

用户的权限是向下覆盖的,即上级权限包含下级权限,在这个留言中,管理员的权限是上级权限。

留言系统的用户浏览信息功能,是用户讨论问题的平台,发帖、浏览、回帖一直贯穿用户的整个活动。

同时,由于留言系统的留言管理是管理员在留言浏览时进行的,因此编辑、删除等功能也安排在浏览信息时实现,只是一般用户没有权限做这些动作。

其它与管理员相关的功能,包括版块管理、用户管理和留言设置的都是需要管理员在管理模块进行操作。

2.2任务下面就管理员所做的管理进行介绍:查看留言:任何用户可以根据发言者留下的邮箱地址发邮件。

删除留言:如果用户发表了不符合留言规则的留言,则需要管理员删除这些留言。

管理版块:留言版块需要先创建,才能被使用,管理员还可以删改版块的相关信息。

设置参数:留言一般有一些初始化信息,比如留言名称、每页显示留言数量等参数信息,管理员可以在后台界面自行设置。

模块设计:(1)登录功能模块:用户个人注册、登录,管理员登录;(2)浏览功能模块:用户浏览版块、浏览主题帖列表、查看留言;(3)发帖回帖功能模块:用户发帖,管理员回帖;(4)留言管理功能模块:管理员编辑、删除;(5)留言设置功能模块:管理员设置留言参数;(6)用户管理模块:管理员添加、删除。

用户注册、登陆以及修改个人的注册信息组合成注册登录模块;用户浏览版块、浏览主体帖列表、查看留言组合成浏览模块;用户发帖;管理员编辑留言、删除留言。

以上四个模块组成用户使用的基本功能模块。

扩展功能模块都是与管理员相关的,设置留言参数单独为留言设置模块;创建、修改和删除版块为管理版块模块;删除和回复为管理用户模块。

从以上分析,可以得到留言的功能框架,即系统的各个部分已经确定,对于留言系统来说,各个模块之间用一条主线串联起来,才能构建完整的系统。

联系各个模块的主线是使用者的权限,用户能使用留言的哪些功能是由用户的权限决定的。

留言权限相对应。

同一类用户使用的功能模块,是以使用者为中心连接起来的。

另外,操作同一类事物的功能模块,也是有相互关系的。

因此,浏览模块与发帖回帖模块、管理留言模块关联,是由留言的系统流程决定的。

而管理版块模块与浏览模块关联,是由留言与版块的父子关系决定的,留言附于版块,先有版块,后有留言,留言必须发表在某个版块中。

还有管理用户模块与注册登录模块关联,是由同一类对象(用户)决定的,用户注册后获得留言的身份,成为用户,所有的用户需要接受管理员的管理,用户登录证明自己的留言中身份。

2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C#语言3 概要设计与详细设计3.1系统流程图留言功能流程如图3.1.1所示。

图3.1.1 留言功能流程图留言的模块体系图如图3.1.2所示。

3.2查询函数流程图该系统的实体有:管理员信息实体、用户信息实体、留言实体、版面信息实体。

实体之间的E-R图如图3.2所示。

图3.2 实体间的关系E-R图考虑到将来功能上的完整性,设计如下面所示的数据项和数据结构:用户信息:包括数据项有用户名、密码、头衔、头像、用户等。

留言信息:包括数据项有所属版面、父留言的编号、子留言的编号、用户、主题、内容、发表时间等。

基于上面的内容,设计了下列表,这些表之间相互关联,共同存储着系统所需要的数据。

在设计数据库表的过程中,一般要遵循几条原则:数据库设计一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以再划分,实体的划分原则是最好能够比当前系统要开发的实体的复杂度小;数据表的信息结构一定要合适,表的字段的数量一般不要过多;扩展信息和动态变化的信息一定要分开在不同的表里;多对多这样的表关系尽量不出现等。

留言版面表note_comment:记录所有的留言版面的信息。

版块表note_comment2:版块信息。

后台留言配置表note:对留言的某些信息进行配置,如留言URL地址、公司名称、主页URL地址等,进行这些设置是为了尽可能最大地利用使用有限的资源,同时更有效地管理留言,对访问留言的用户量信息也有一个很好的记录。

用户表users:记录了用户的基本且必要的信息。

管理员表note_admin:记录了管理员账号、密码、回复。

设计数据表间的关系为双层对应,就是简单的针对某一留言管理员进行回复4 编码与实现4.1分析4.1.1数据库表的设计设计数据库表的字段时,需要充分考虑到留言的应用特点。

数据库表的设计要求简单易于理解,扩展性好。

其中记录留言发表文章的数据库表note_comment 主要有以下的以下几个描述字段:∙subject 留言主题∙Name:发贴者姓名∙Comment:留言内容∙Email:邮箱地址∙url:主页∙communication 其他联系方式∙IP IP 地址∙PostDate 留言提交时间4.1.2数据库的连接Access是文件型数据库,一个文件就是一个数据库,可以利用ASP中的语法直接连接。

在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式如下:set rs=Server.CreateObject("ADODB.RecordSet") '创建RecordSet 对象rs.open "select * from note_comment order by id desc",conn,1,3 '从数据库中读取留言,并保存在rs 中if rs.eof and rs.bof then '不存在留言记录response.redirect "book_write.asp" '转到撰写留言页面else '存在记录if counts=0 or counts="" then counts=10 '每页留言条数rs.pageSize = counts '每页记录数allpages = rs.pageCount '总页数page = Request("page") '从浏览器取得当前页If not isNumeric(page) then page=1 'page不是数字if isEmpty(page) or Cint(page) < 1 then 'page 为空或小于1page = 1elseif Cint(page) >= allPages then 'page 值大于总页数page = allPagesend ifrs.AbsolutePage = page '转到某页头部Do While Not rs.eofUserName=rs("Name") '用户名Comments=rs("Comment") '内容Reply=rs("Reply") '回复Usermail=rs("Email") '邮件url=rs("Url") '主页replyname = rs("ReplyName") '回复人姓名I=I+1 '留言序号temp=RS.RecordCount-(page-1)*rs.pageSize-I+1%>在打开数据库并完成相应的操作后,应关闭数据库连接。

当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。

用Connection对象的Close方法终止Connection对象和数据库之间的连接。

下面的脚本打开连接,然后将其关闭:<%End Ifconn.CLose '关闭数据库Set conn = nothing%>4.2具体代码实现数据添加rs.Addnew '添加一条记录rs("Name")=Request.Form("username") '姓名rs("Comment")=Request.Form("comments") '留言内容rs("Email")=Request.Form("usermail") '邮箱地址rs("url")=Request.Form("url") '主页rs("Communication")=Request.Form("communication") '其他联系方式rs("IP")=Request.serverVariables("REMOTE_ADDR") 'IP 地址rs("PostDate") = now() '留言提交时间rs("Subject") = Request.Form("subject") '留言主题rs.Update '更新数据库数据删除sub delfeedback() '留言删除if delid="" or isnull(delid) then '要删除的记录id 为空则给出提示response.write "<script>alert('操作失败,没有选择合适参数,请单击“确定”返回!');</script>"response.redirect "admin_main.asp" '返回到留言管理界面response.endelse 'id 存在'执行数据库中的删除操作,删除数据库中id 列的值在delid数组中的记录conn.Execute("delete * from note_comment where ID in ("&delid&")")'删除成功,给出提示response.write "<script>alert('留言删除成功,请单击“确定”返回!');</script>"response.redirect "admin_main.asp" '返回到留言管理界面response.endend ifend sub<!--留言变量设置-基本变量设置页面代码--><!--#include file="conn.asp"--><%If Request.QueryString("action")="setup" thencall setup()ElseIf Session("id")<>"" ThenSet rs = server.createobject("ADODB.RecordSet")rs.Open "Select * from note_Admin where id="&Session("id"),conn,1,3%><%Sub setup()if request("save")="ok" then '保存设置'创建RecordSet 对象Set NArs=Server.CreateObject("ADODB.Recordset")'从数据库note_admin中查询id 列的值为Session("id") 的记录,并保存在NArs 中NArs.open "select * from note_admin where id="&Session("id"),conn,1,3'创建RecordSet 对象Set WBrs = Server.CreateObject("ADODB.RecordSet")'从数据库web 中查询所有记录,并保存在WBrs 中WBrs.Open "Select * from web",conn,1,3'资料填写不完整if trim(request.form("sitename"))="" or trim(request.form("admin"))="" or trim(request.form("maxlength"))="" or trim(request.form("counts"))="" or trim(request.form("replycolor"))="" or trim(request.form("isreply"))="" or trim(request.form("distance"))="" then'给出提示,并返回到前一页response.write "<script>alert('资料填写不完整或有错误,请检查后重新提交。