淮海工学院软件工程课程设计Word下载.docx
- 文档编号:20371437
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:30
- 大小:462.35KB
淮海工学院软件工程课程设计Word下载.docx
《淮海工学院软件工程课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《淮海工学院软件工程课程设计Word下载.docx(30页珍藏版)》请在冰豆网上搜索。
数据库设计实现与用户注册
管理员界面
用户界面
1.根据论坛系统的需求,系统主要功能包括:
1.1管理员界面
①分类设置:
添加论坛分类,添加后可以继续编辑或是删除分类。
②版面设置:
添加论坛板块,设置是否显示,添加后可以继续编辑或是删除版面信息。
③管理员设置:
添加管理员账号,同时可以编辑、删除,修改密码。
④数据库备份:
备份信息。
⑤帖子管理:
可以按照帖子名的关键字搜索查看帖子信息,并可以删除或是回复帖子。
⑥用户管理模块包括:
搜索查看注册用户信息,并可以删除用户。
1.2用户注册:
用户输入用户名、密码、邮件等进行用户注册。
1.3用户界面
①用户登录:
用户输入用户名、密码进行登录。
②发表帖子:
用户在系统中发帖,可以选择帖子的类型,也可以回复其他人的帖子。
③编辑个人资料:
用户在此可以查看并编辑自己的资料。
④我的主题:
在此查看自己发表的帖子。
⑤我的回复:
在此查看回复的帖子。
2.数据流图
整个系统的数据流程图如图1所示。
图1整个系统的数据流程图
用户界面管理的数据流图如图2所示。
图2用户界面管理的数据流图
3.数据字典
3.1数据字典列表——数据流
数据存储名称:
管理员信息
数据来源:
管理员信息表
数据去向:
管理员登陆模块
数据组成:
管理员信息=管理员系统编号+管理员姓名+管理员密码+管理员权限
描述:
存储了管理员的基本信息
注册用户信息
注册用户信息表
注册用户模块
注册用户信息=系统编号+用户名+密码+性别+电话+添加时间等
存储了注册用户的基本信息
论坛信息
论坛信息表
论坛模块
论坛信息=系统编号+名称+内容+图片+类别+添加时间等
存储了论坛的基本信息
新闻信息
新闻信息表
新闻模块
新闻信息=系统编号+类别名称+添加时间等
存储了新闻的基本信息
3.2数据字典列表——数据处理
3.数据字典列表——数据存储
3.3论坛系统的数据项
管理员数据项:
用户数据项:
论坛信息数据项
三概要设计
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
概念模型用于信息世界的建模。
概念模型不依赖于某一个DBMS支持的数据模型。
概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
1.用户注册功能E-R图如图3所示。
图3用户注册实体图
2.数据库表中的实体图如下:
(1)block分类实体图如图4所示
图4分类实体图
(2)kind版面分类实体图如图5所示
图5版面分类实体图
(3)loginuser用户实体图如图6所示
图6用户实体图
(4)replylist回复实体图如图7所示
图7回复实体图
(5)Titlelist标题实体图如图8所示
图8标题实体图
3.创建名为BBS的数据库
3.1在BBS数据库中创建block分类表,kind版面分类表,loginuser用户表,replylist回复表,Titlelist标题表五个表。
以下具体说明:
(1)block分类表
分类表主要存储分类Id、分类名称、是否显示信息,具体如表3-1所示:
表3-1分类表
名称
类型
备注
block_id
int
分类Id
block_name
varchar(50)
分类名称
block_Visible
varchar
(1)
是否显示
具体内容如图9所示:
图9block内容
(2)kind版面分类表
版面分类表主要存储版面编号、分类Id、版面名称、描述、点击量、
管理员Id、日点击量等信息,具体如表3-2所示:
表3-2版面分类表
kind_id
bigint
版面编号
kind_name
varchar(30)
版面名称
kind_describe
varchar(3000)
版面描述
TitleCount
点击量
mannage_id
管理员Id
kind_Visible
DayTitleCount
日点击量
End_TitleTime
varchar(20)
结束时间
MaxDayTitleCount
最高日帖数
具体内容如图10所示:
图10kind版面内容
(3)loginuser用户表
用户表主要存储用户Id、用户名、密码、注册时间、邮件、年龄、性别、生日等信息,具体如表3-3所示:
表3-3用户表
use_id
用户Id
name
用户名
Password
varchar(100)
密码
RegeditTime
注册时间
EmailState
char
(1)
邮件状态
age
varchar(3)
年龄
sex
varchar(4)
性别
birthday
varchar(12)
生日
MSN
Headimg
头像
Inroduce
varchar(150)
自我简介
TopicDes
帖子签名
SendTitleCount
发帖
ReplyTitleCount
回复
Leveling
varchar(10)
会员头衔
prestige
窗体顶端
威望窗体底端
money
金钱窗体底端
online
在线
loginTime
登录时间
具体内容如图11所示:
图11loginuser用户内容
(4)replylist回复表
回复表主要存储回复Id、标题Id、分类Id、用户Id、回复内容、回复时间等信息,具体如表3-4所示:
表3-4回复表
reply_id
回复Id
title_id
标题Id
reply_content
text
回复内容
reply_time
回复时间
reply_image
表情
具体内容如图12所示:
图12replylist回复内容
(5)Titlelist标题表
标题表主要存储标题Id、分类Id、用户Id、标题、内容、添加时间、最后回复等信息,具体如表3-5所示:
表3-5标题表
title
标题
title_content
内容
click_count
人气
title_uptime
添加时间
reply_endtime
最后回复
reply_count
title_state
标题图标
title_type
标题类型
具体内容如图13所示:
图13Titlelist标题内容
3.2建立存储过程
建立InformationBBS
和Page
三详细设计
四设计与调试分析
1存储过程代码
1.1存储过程中InformationBBS代码如下:
USE[BBS]
GO
/******Object:
StoredProcedure[dbo].[InformationBBS]ScriptDate:
06/30/201519:
39:
02******/
SETANSI_NULLSON
SETQUOTED_IDENTIFIERON
--UserCount会员总数
--TitleCount帖子总数
--ReplyCount回复总数
--BroadCount共有多数版块
--MaxDayTitlecount某天最大发帖数
ALTERPROCEDURE[dbo].[InformationBBS]
@UserCountbigintoutput,@TitleCountbigintoutput,
@ReplyCountbigintoutput,@BroadCountintoutput,
@MaxDayTitlecountintoutput
AS
select@UserCount=count(*)fromloginuser
select@TitleCount=count(*)fromtitlelist
select@ReplyCount=count(*)fromreplylist
select@BroadCount=count(*)fromblock
select@MaxDayTitlecount=sum(MaxDayTitlecount)fromkind
1.2存储过程中Page代码如下:
StoredProcedure[dbo].[Page]ScriptDate:
40:
51******/
/*
*@curentpage当前页
*@pagesize每页记录数
*@TableName表名
*@key主键(自动排序)
*@where查询条件
1)空为null
2)有查询条件不要带where
*@order'
0'
表示 desc'
1'
是asc
*@pageCount总页数
*/
ALTERprocedure[dbo].[Page]
@currentpageint,@pagesizeint,
@TableNamevarchar(30),@keyvarchar(30),
@wherevarchar(50),@ordervarchar
(1),
@pageCountint,@strvarchar(450)output
as
begin
---------------执行的sql语句------------
declare@sqlnvarchar(400),@ordrebynvarchar(200)
declare@tempsql1varchar(200),@tempsql2varchar(200)
---------------记录总数-----------------
declare@countint
---------------临时变量------------------------
declare@temp1int,@temp2int
set@TableName='
'
+@TableName+'
set@key='
+@key+'
if@order='
set@ordreby='
orderby'
desc'
else
+@key
if@where='
null'
set@sql='
select@count=count(*)from'
+@TableName
+@TableName+'
where'
+@where
------------@count付值(声明变量@count在说明是output内型)---------------------------
execsp_executesql@sql,N'
@countintout'
@countout
------------求总页数------------------------------
if(@count%@pagesize)=0
set@pagecount=@count/@pagesize
else
set@pagecount=@count/@pagesize+1
-----------判断显示当前页是否异常------------------
if@currentpage>
@pagecount
set@currentpage=@pagecount
if@currentpage<
1
set@currentpage=1
----------记录数小于页面显示记录数-----------------
if(@currentpage=1)
begin
set@where='
set@sql='
selecttop'
+str(@pagesize)+'
*from'
+@TableName+@where+@ordreby
end
begin
/*---------------desc----------------------
*@temp1表示前面的记录
*@temp2表示后面的记录
*假设一共个记录,每次取个。
取~(第页),去掉前面的(~)个和后面的个(~)
*/
if@order=0
set@temp1=@count-@currentpage*@pagesize
if@temp1<
set@temp1=0
set@temp2=(@currentpage-1)*@pagesize
begin
set@tempsql1='
selecttop'
+str(@temp1)+'
from'
+@TableName+'
+@key
set@tempsql2='
+str(@temp2)+'
+@TableName+@ordreby
end
+@where+'
+@where+@ordreby
end
selecttop'
+str(@pagesize)+'
+@TableName+'
+@key+'
notin'
set@sql=@sql+'
('
+@tempsql1+'
)and'
set@sql=@sql+@key+'
notin('
+@tempsql2+'
)'
set@sql=@sql+@ordreby
and'
/*----------------asc---------------------
*@temp表示前面显示的记录总数
*去掉@temp在取出pagesize个即可
set@temp1=(@currentpage-1)*@pagesize
+str(@temp1)+'
+@TableName++'
set@sql=@sql+'
+@tempsql1+'
/*-------------------------------------*/
set@str=@sql
--execsp_executesql@sql
end
3数据库连接
ADO.NET有许多对象,我们先看看最基本的也最常用的几个。
首先看看ADOConnection。
和ADO的ADODB.Connection对象相对应,ADOConnection维护一个到数据库的链路[10]。
为了使用ADO.NET对象,我们需要引入两个NameSpace:
System.Data和System.Data.ADO,使用ASP.NET的Import指令就可以了:
<
appSettings>
add
key="
ConnectionString"
value="
server=.;
database=BBS;
uid=sa;
pwd="
/>
/appSettings>
connectionStrings>
addname="
connectionString="
DataSource=.;
InitialCatalog=BBS;
UserID=sa;
pwd=;
"
providerName="
System.Data.SqlClient"
/>
/connectionStrings>
4用户注册界面代码如下:
publicpartialclassregister:
System.Web.UI.Page
{
publicstringreg="
;
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Request.QueryString["
register"
]!
=null)
reg=Request.QueryString["
].ToString();
}
protectedvoidSubmit1_ServerClick(objectsender,EventArgse)
if(this.gdcode.Value!
=Session["
Valation"
].ToString())
Response.Redirect("
GotoPage.aspx?
register=false"
);
stringsql="
insertintologinuser(name,Password,RegeditTime,Email)values("
sq
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 淮海 工学院 软件工程 课程设计