easytalking微博系统论文本科学位论文文档格式.docx
《easytalking微博系统论文本科学位论文文档格式.docx》由会员分享,可在线阅读,更多相关《easytalking微博系统论文本科学位论文文档格式.docx(43页珍藏版)》请在冰豆网上搜索。
第一章需求分析1
1.1任务概述1
1.1.1目标1
1.1.2用户的特点1
1.2可行性分析1
1.2.1技术可行性1
1.2.2操作可行性1
1.3需求规定2
1.3.1功能的规定2
1.3.4程序运行环境配置3
第二章数据库设计4
2.1数据库设计定义4
2.2E-R图4
2.2数据表设计6
2.2.1数据表总览6
2.2.2数据表详细说明7
第三章详细设计9
3.1系统首页9
3.1.1注册界面9
3.1.2登录界面10
3.2.2转发,评论,删除界面11
3.3个人信息修改12
第四章系统实现13
4.1登陆模块13
4.2发布微博模块19
4.3.注册界面23
4.4发送好友信息29
}30
4.5转发,评论,删除模块30
4.6个人信息修改34
第五章系统测试40
5.1测试的任务及目标40
5.1.1测试的任务40
5.1.2测试的方法40
5.2测试用例40
5.2EasyTalking微博系统测试结论42
第六章结束语43
参考文献44
致谢46
第一章需求分析
所谓"
需求分析"
,指业务需求的分析,系统框架的设计,为后续程序的开发打下坚实的基础。
1.1任务概述
1.1.1目标
EasyTalking微博系统是针对简易的微博页面和后台而开发的。
EasyTalking微博系统是一项独立的网站系统。
1.1.2用户的特点
EasyTalking系统的最终用户是网站的使用人员(管理员,注册用户和游客),他们具有一定的计算机基础知识和操作计算机的能力。
系统维护人员是计算机专业人员,熟练操作系统和数据库。
1.2可行性分析
可行性分析是通过对项目的主要内容、技术、经济等方面分析,从而为项目决策提供依据的一种综合性的系统分析方法。
可行性研究的目的就是通过各方面的分析,得出系统在实施时的可行性,也是一种简化了的系统分析和系统设计的过程,作为基于JavaWEB程序开发的微博系统的设计与开发,必须要考虑到其技术的可行性,也要考虑到其操作上的可行性。
1.2.1技术可行性
大学课程中的《数据库原理》,《操作系统知识》,《JAVA程序开发基础》等多门课程为整个课题开发提供了坚实的基础。
JSP是一种相对便捷实用的语言,MySQL也是一种易于操作,简便实用的数据库,所以技术难度并不高。
所以在技术上是可行的。
1.2.2操作可行性
本系统主要的对象是网站的使用人员为主,多以增、删、改、查等操作为主,由于强大的MySql数据库管理系统存在,不管是在设计还是在操作上都是十分简单。
1.3需求规定
1.3.1功能的规定
功能设计:
本课题是关于简单的微博系统的,其简要功能描述如下:
(1)用户身份验证和权限管理,包括普通用户和管理员。
(2)微博信息管理,包括发送微博,评论微博,转发微博,收藏微博,删除微博,微博的模糊查询和微博信息的分页展示。
(3)好友信息管理,包括好友关注、取消关注,互为好友,搜寻好友,等功能。
(4)个人信息管理:
用户可以增加、修改自己的个人信息,登录密码。
(5)管理员进行微博信息管理:
显示前台所有用户发送的微博信息,并显示该信息发送的用户,可以对此进行删除,修改,模糊查找功能。
(6)管理员进行用户信息管理,包括系统用户的查询、用户信息的修改、删除等操作。
基于以上的功能分析,功能模块图绘制如图1-3.1:
图1-3.1功能模块图
1.3.3B/S体系结构图
本系统所面向的对象是广大的互连网用户。
因此,将要采用比较流行的B/S三层结构。
基于b/s结构的EasyTalking微博系统的业务流程图如图1-3.3所示:
图1-3.3B/S流程图
1.3.4程序运行环境配置
本系统对其运行的环境有一定的要求,具体要求如下:
2系统开发平台:
window10,
②系统开发语言:
Java,JSP,HTML
3数据库系统软件:
SQL,
4运行平台:
Myeclipse,
5运行环境:
TomCat6.15。
第二章数据库设计
2.1数据库设计定义
数据库设计的定义是根据用户需求,在一个特定的数据库管理系统,数据库结构和设计的过程中建立一个数据库。
数据库系统需要操作系统支持。
2.2E-R图
我们采用E-R图的方法来进行数据库概念结构设计。
根据本系统设计规划出的E—R图,如下:
1.实体和属性的定义:
1)转发信息(转发用户,账号,内容,发送内容,时间,状态等)
图2-2.1转发信息E-R图
2)关注信息(关注微博ID,账号,其他账号,创建时间等)
图2-2.2关注信息E-R图
3)
用户信息(用户账号,昵称,密码,学校,粉丝数,照片,创建时间等)
图2-2.3用户信息E-R图
4)微博信息管理(微博编号,内容,媒体途径,账号,昵称,发表时间,转发ID等)
图2-2.4微博信息E-R图
5)评论信息管理(评论微博编号,评论微博ID,评论内容,评论账号,评论时间等)
图2-2.5评论微博信息E-R图
2.2数据表设计
2.2.1数据表总览
表2-1数据表总览
序号
逻辑数据库表名
物流表名(英文表名)
说明
1
前台用户信息表
users
管理前台用户基本信息
2
前台用户关系表
Relations
管理前台用户之间关系基本信息,例如关注好友
3
微博信息表
Weibo
管理前台用户所发送的微博信息
4
评论表
Comments
针对微博信息所发送的评论信息管理
5
收藏表
Collections
管理用户对自己喜欢的微博信息进行收藏管理
6
后台用户表
Admins
管理后台用户基本信息表
2.2.2数据表详细说明
1.转发信息表
表2-2t_infor(转发微博信息表)
字段名
描述
数据类型
长度
是否空
主键
id
转发用户ID
varchar
50
否
是
account
转发账号
content
微博内容
500
fasongaccount
发送内容
shijian
时间
status
状态
2.关注信息表具体表如下:
表2-3t_guanzhu(关注信息表)
关注微博id
账号
otheraccount
其他账号
createDt
创建时间
Datetime
3.用户信息表具体表如下:
表2-4t_user(用户信息表)
用户账号
nicheng
昵称
pwd
密码
school
学校
fensishu
粉丝数
guanzhu
关注人数
photo
照片
100
4.微博信息表:
表2-5t_weibo(微博信息表)
类型
微博编号
内容
mediapath
媒体途径
nichen
archar
zhuanfaid
转发ID
5.评论信息表,具体表如下:
表2-6t_weibopinglun(评论信息表)
编号
weiboid
微博ID
pingluncontent
评论内容
pinglunaccount
评论账号
评论时间
第三章详细设计
3.1系统首页
3.1系统首页(网站首页login.jsp)
图3-1.网站首页
首页中拥有一个用户登录窗口,在其相应输入框中填定正确的账号和密码并点击登陆按钮,方可登录系统。
同时系统会展现出最新发布的一些用户微博。
其他区块与一般网站无异,只是较简洁,操作方面也是力求简约。
3.1.1注册界面
点击立即加入按钮,进行账号注册,包括账号,昵称,密码,确认密码,来自何处等信息,系统界面如下:
图3-1.1注册界面设计图
用户填写的信息插入user数据表,实现新增用户。
3.1.2登录界面
输入正确的账号,密码点击登陆按钮可以顺利进入系统:
图3-1.2登录界面设计图
将账号和密码与user表数据进行验证,若不一致,系统会报错。
3.2个人微博界面
此界面比较简单实用。
功能包括发表微博,转发微博,评论微博,删除微博,修改头像,添加关注等,同时使用九宫格模式排列出了当前热门微博用户,点击微博用户,可以方便快捷的添加关注。
图3.2微博主界面图
3.2.1发表微博:
发表微博功能包括文字发表,添加表情,添加图片,添加视频等功能,文字输入限制是106了字,这也保证的短博客的及时性,便于分享!
图3-2.1发表微博设计图
3.2.2转发,评论,删除界面
用户实时发表的微博,用户可以及时的转发,评论和删除:
图3-2.2转发,评论,删除操作界面设计图
3.3个人信息修改
用户可以修改个人信息,包括头像修改,粉丝数,热门微博用户等。
图3-3个人信息修改设计图
将用户修改的信息提交到user表按照用户账号account进行数据更新。
第四章系统实现
4.1登陆模块
用户进入该系统,首先看到的是登陆界面,客户可以输入正确的登陆名称及密码,登陆微博系统。
登陆模块如图4-1所示:
图4-1登陆信息
登陆模块相关代码如下:
publicStringlogin(Stringaccount,Stringpwd,intuserType){
try{
Thread.sleep(700);
}catch(InterruptedExceptione){
e.printStackTrace();
}
Stringresult="
no"
;
if(userType==0)
{
Stringsql="
select*fromt_userwhereaccount=?
andpwd=?
"
Object[]params={account,pwd};
DBmydb=newDB();
mydb.doPstm(sql,params);
try{
ResultSetrs=mydb.getRs();
booleanmark=(rs==null||!
rs.next()?
false:
true);
if(mark==false){
result="
}else{
yes"
Tuseruser=newTuser();
user.setAccount(rs.getString("
account"
));
user.setPwd(rs.getString("
pwd"
user.setNichen(rs.getString("
nichen"
user.setSchool(rs.getString("
school"
user.setFensishu(rs.getString("
fensishu"
user.setWeiyou(rs.getString("
weiyou"
user.setGuanzhu(rs.getString("
guanzhu"
user.setPhoto(rs.getString("
photo"
WebContextctx=WebContextFactory.get();
HttpSessionsession=ctx.getSession();
session.setAttribute("
userType"
0);
user"
user);
//热门用户
ListhotuserList=newArrayList();
Stringsql3="
select*fromt_userwheredel='
no'
orderbyfensishudesclimit0,9"
Object[]params3={};
DBmydb3=newDB();
try{
mydb3.doPstm(sql3,params3);
ResultSetrs3=mydb3.getRs();
while(rs3.next()){
Tuseruser3=newTuser();
user3.setAccount(rs3.getString("
user3.setNichen(rs3.getString("
user3.setPwd(rs3.getString("
user3.setSchool(rs3.getString("
user3.setFensishu(rs3.getString("
user3.setGuanzhu(rs3.getString("
user3.setWeiyou(rs3.getString("
user3.setPhoto(rs3.getString("
hotuserList.add(user3);
}
rs3.close();
}catch(Exceptione){
e.printStackTrace();
}
mydb3.closed();
hotuserList"
hotuserList);
//自己最新10条围脖
ListweiboList=newArrayList();
Stringsql5="
select*fromt_weiboorderbyshijiandesclimit0,10"
Object[]params5={};
DBmydb5=newDB();
mydb5.doPstm(sql5,params5);
ResultSetrs5=mydb5.getRs();
while(rs5.next()){
Tweiboweibo=newTweibo();
weibo.setId(rs5.getStrin