淮海工学院软件工程课程设计.docx
- 文档编号:7264326
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:30
- 大小:462.35KB
淮海工学院软件工程课程设计.docx
《淮海工学院软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《淮海工学院软件工程课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
淮海工学院软件工程课程设计
淮海工学院计算机工程学院
课程设计报告
设计名称:
软件工程课程设计
选题名称:
姓名:
学号:
专业班级:
计算机科学与技术D计算机121
系(院):
计算机工程学院
设计时间:
2015.6.15~2015.7.5
设计地点:
软件实验室、教室
成绩:
指导教师评语:
签名:
年月日
1.课程设计目的
软件工程课程设计是计算机专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,通过本课程设计能够进行简单软件系统的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生的综合应用能力。
2.课程设计任务与要求:
任务
结合《软件工程》、《面向对象程序设计》课程以及相关课程中所学知识,积极完成设计任务。
要求通过设计,深对课程基本内容的理解和综合运用。
学生自选课题
学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。
学生自选课题需在16周前报课程设计指导教师批准方可生效。
要求:
(1)通过文献资料查阅和学习,了解当前软件设计技术和一般方法。
(2)参考和研究一些公司和高校/企业成功的软件开发案例和实现方案,结合《面向对象程序设计》、《软件工程》等课程中所学知识,积极完成设计任务。
(3)认真完成需求分析,并根据需求分析完成各设计题目的总体设计、详细设计和测设等环节的设计任务,开发工具推荐使用A|Vc++|J。
(4)每位同学需提交可独立运行的软件程序。
(5)认真按时完成课程设计报告,课程设计报告内容包括:
课程设计目的、设计任务与要求、需求分析、概要设计、详细设计、调试分析、测试结果、附录和设计心得体会等。
(6)每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算)。
3.课程设计说明书
一可行性研究
本系统主要是为了给那些对教育方面感兴趣的朋友提供一个交流的平台,对有话可说的朋友,你在这里可以进行注册成为用户,参与有关话题的讨论,或提出新的话题,还可以修改个人资料。
非注册用户你可以浏览论坛里的帖子,获取对自己有用的信息。
对于管理员拥有最高权限等。
二需求分析
本系统由3人完成,小组分工如表1所示。
表1小组分工
数据库设计实现与用户注册
管理员界面
用户界面
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
版面编号
block_id
int
分类Id
kind_name
varchar(30)
版面名称
kind_describe
varchar(3000)
版面描述
TitleCount
bigint
点击量
mannage_id
bigint
管理员Id
kind_Visible
varchar
(1)
是否显示
DayTitleCount
int
日点击量
End_TitleTime
varchar(20)
结束时间
MaxDayTitleCount
int
最高日帖数
具体内容如图10所示:
图10kind版面内容
(3)loginuser用户表
用户表主要存储用户Id、用户名、密码、注册时间、邮件、年龄、性别、生日等信息,具体如表3-3所示:
表3-3用户表
名称
类型
备注
use_id
bigint
用户Id
name
varchar(20)
用户名
Password
varchar(100)
密码
RegeditTime
varchar(20)
注册时间
varchar(50)
EmailState
char
(1)
邮件状态
age
varchar(3)
年龄
sex
varchar(4)
性别
birthday
varchar(12)
生日
varchar(12)
MSN
varchar(50)
MSN
Headimg
varchar(20)
头像
Inroduce
varchar(150)
自我简介
TopicDes
varchar(150)
帖子签名
SendTitleCount
int
发帖
ReplyTitleCount
int
回复
Leveling
varchar(10)
会员头衔
prestige
int
窗体顶端
威望窗体底端
money
bigint
窗体顶端
金钱窗体底端
online
varchar
(1)
在线
loginTime
varchar(20)
登录时间
具体内容如图11所示:
图11loginuser用户内容
(4)replylist回复表
回复表主要存储回复Id、标题Id、分类Id、用户Id、回复内容、回复时间等信息,具体如表3-4所示:
表3-4回复表
名称
类型
备注
reply_id
bigint
回复Id
title_id
bigint
标题Id
kind_id
bigint
分类Id
use_id
bigint
用户Id
reply_content
text
回复内容
reply_time
varchar(30)
回复时间
reply_image
varchar(30)
表情
具体内容如图12所示:
图12replylist回复内容
(5)Titlelist标题表
标题表主要存储标题Id、分类Id、用户Id、标题、内容、添加时间、最后回复等信息,具体如表3-5所示:
表3-5标题表
名称
类型
备注
title_id
bigint
标题Id
kind_id
bigint
分类Id
use_id
bigint
用户Id
title
varchar(150)
标题
title_content
text
内容
click_count
bigint
人气
title_uptime
varchar(30)
添加时间
reply_endtime
varchar(30)
最后回复
reply_count
bigint
回复内容
title_state
varchar(30)
标题图标
title_type
varchar(10)
标题类型
具体内容如图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
GO
SETQUOTED_IDENTIFIERON
GO
--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代码如下:
USE[BBS]
GO
/******Object:
StoredProcedure[dbo].[Page]ScriptDate:
06/30/201519:
40:
51******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
/*
*@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='0'
set@ordreby='orderby'+@key+'desc'
else
set@ordreby='orderby'+@key
if@where='null'
set@sql='select@count=count(*)from'+@TableName
else
set@sql='select@count=count(*)from'+@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
if@where='null'
set@where=''
else
set@where='where'+@where
set@sql='selecttop'+str(@pagesize)+'*from'+@TableName+@where+@ordreby
end
else
begin
/*---------------desc----------------------
*@temp1表示前面的记录
*@temp2表示后面的记录
*假设一共个记录,每次取个。
取~(第页),去掉前面的(~)个和后面的个(~)
*/
if@order=0
begin
set@temp1=@count-@currentpage*@pagesize
if@temp1<0
set@temp1=0
set@temp2=(@currentpage-1)*@pagesize
if@where='null'
begin
set@tempsql1='selecttop'+str(@temp1)+''+@key+'from'+@TableName+'orderby'+@key
set@tempsql2='selecttop'+str(@temp2)+''+@key+'from'+@TableName+@ordreby
end
else
begin
set@tempsql1='selecttop'+str(@temp1)+''+@key+'from'+@TableName+'where'+@where+'orderby'+@key
set@tempsql2='selecttop'+str(@temp2)+''+@key+'from'+@TableName+'where'+@where+@ordreby
end
set@sql='selecttop'+str(@pagesize)+'*from'+@TableName+'where'+@key+'notin'
set@sql=@sql+'('+@tempsql1+')and'
set@sql=@sql+@key+'notin('+@tempsql2+')'
if@where='null'
set@sql=@sql+@ordreby
else
set@sql=@sql+'and'+@where+@ordreby
end
/*----------------asc---------------------
*@temp表示前面显示的记录总数
*去掉@temp在取出pagesize个即可
*/
else
begin
set@temp1=(@currentpage-1)*@pagesize
if@where='null'
set@tempsql1='selecttop'+str(@temp1)+''+@key+'from'+@TableName+@ordreby
else
set@tempsql1='selecttop'+str(@temp1)+''+@key+'from'+@TableName++'where'+@where+@ordreby
set@sql='selecttop'+str(@pagesize)+'*from'+@TableName+'where'+@key+'notin'
set@sql=@sql+'('+@tempsql1+')'
if@where='null'
set@sql=@sql+@ordreby
else
set@sql=@sql+'and'+@where+@ordreby
end
/*-------------------------------------*/
end
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指令就可以了:
key="ConnectionString"value="server=.;database=BBS;uid=sa;pwd="/> connectionString="DataSource=.;InitialCatalog=BBS;UserID=sa;pwd=;"providerName="System.Data.SqlClient"/> 4用户注册界面代码如下: publicpartialclassregister: System.Web.UI.Page { publicstringreg=""; protectedvoidPage_Load(objectsender,EventArgse) { if(Request.QueryString["register"]! =null) reg=Request.QueryString["register"].ToString(); } protectedvoidSubmit1_ServerClick(objectsender,EventArgse) { if(this.gdcode.Value! =Session["Valation"].ToString()) { Response.Redirect("GotoPage.aspx? register=false"); } else { stringsql="insertintologinuser(name,Password,RegeditTime,Email)values("; sq
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 淮海 工学院 软件工程 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)