用户进入该系统,首先看到的是登陆界面,客户可以输入正确的登陆名称及密码,登陆微博系统。登陆模块如图4-1所示:
图4-1 登陆信息
登陆模块相关代码如下:
public Stringlogin(String account, String pwd,int userType) {
try {
Thread.sleep(700);
} catch(InterruptedException e) {
e.printStackTrace();
}
String result = "no";
if (userType == 0)
{
Stringsql = "select * fromt_user where account=? and pwd=?";
Object[]params = { account, pwd };
DBmydb = new DB();
mydb.doPstm(sql,params);
try {
ResultSet rs = mydb.getRs();
boolean mark = (rs ==null || !rs.next() ?false :true);
if (mark ==false) {
result= "no";
} else {
result= "yes";
Tuseruser = new Tuser();
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);
session.setAttribute("user", user);
// 热门用户
ListhotuserList =newArrayList();
Stringsql3 ="select * fromt_user where del='no' order by fensishu desc limit 0,9";
Object[]params3 = {};
DBmydb3 = new DB();
try {
mydb3.doPstm(sql3, params3);
ResultSet rs3 = mydb3.getRs();
while (rs3.next()) {
Tuseruser3 =new Tuser();
user3.setAccount(rs3.getString("account"));
user3.setNichen(rs3.getString("nichen"));
user3.setPwd(rs3.getString("pwd"));
user3.setSchool(rs3.getString("school"));
user3.setFensishu(rs3.getString("fensishu"));
user3.setGuanzhu(rs3.getString("guanzhu"));
user3.setWeiyou(rs3.getString("weiyou"));
user3.setPhoto(rs3.getString("photo"));
hotuserList.add(user3);
}
rs3.close();
} catch (Exception e) {
e.printStackTrace();
}
mydb3.closed();
session.setAttribute("hotuserList", hotuserList);
// 自己最新10条围脖
ListweiboList =newArrayList();
Stringsql5 ="select * fromt_weibo order by shijian desc limit 0,10";
Object[]params5 = {};
DBmydb5 = new DB();
try {
mydb5.doPstm(sql5, params5);
ResultSet rs5 = mydb5.getRs();
while (rs5.next()) {
Tweiboweibo =new Tweibo();
weibo.setId(rs5.getString("id"));
weibo.setContent(rs5.getString("content"));
weibo.setMediapath(rs5.getString("mediapath"));
weibo.setAccount(rs5.getString("account"));
weibo.setShijian(rs5.getString("shijian"));
weibo.setNichen(rs5.getString("nichen"));
weibo.setZhuanfaid(rs5.getString("zhuanfaid"));
if (findUserByAccount(rs5.getString("account")) !=null) {
weibo.setPhoto(findUserByAccount(
rs5.getString("account")).getPhoto());
}
weibo.setPinglunlist(findpinglunlistByweiboid(rs5.getString("id")));
weiboList.add(weibo);
}
rs5.close();
} catch (Exception e) {
e.printStackTrace();
}
mydb5.closed();
session.setAttribute("weiboList", weiboList);
// 是否有发送的信件
ListinforList =newArrayList();
Stringsql6 ="select * fromt_infor where status = '0' and account = '" + account +"' order by shijian desc";
Object[]params6 = {};
DBmydb6 = new DB();
try {
mydb6.doPstm(sql6, params6);
ResultSet rs6 = mydb6.getRs();
if(rs6 != null){
while (rs6.next()) {
Tinfor infor =newTinfor();
infor.setId(rs6.getString("id"));
infor.setContent(rs6.getString("content"));
infor.setAccount(rs6.getString("account"));
infor.setShijian(rs6.getString("shijian"));
infor.setFasongaccount(rs6.getString("fasongaccount"));
inforList.add(infor);
}
rs6.close();
}
} catch (Exception e) {
e.printStackTrace();
}
mydb6.closed();
session.setAttribute("inforList", inforList);
Tinfor infortemp =null ;
if(inforList !=null&& inforList.size() > 1){
infortemp = (Tinfor) inforList.get(0);
}
session.setAttribute("infor", infortemp);
session.setAttribute("guanzhulist", getGuanzhuuser(account));
session.setAttribute("fensilist", getMyFensi(account));
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
mydb.closed();
}
}
return result;
}
在客户输入好登陆信息后,使用者将进入该系统的主界面,如图4-2所示:
图4-1 系统主界面
进入系统之后,可以简单的发布微博,包括一些及时的文字,图片,表情,视频的分享,实时的分享自己的生活,情绪。
图4-2 发布微博
其中“发布”按钮相关代码如下:
publicvoid weiboAdd(HttpServletRequest req, HttpServletResponseres) {
Stringid = String.valueOf(new Date().getTime());
Stringcontent = req.getParameter("content");
Stringmediapath = req.getParameter("fujian");
Stringaccount = req.getParameter("account");
Stringshijian = new Date().toLocaleString();
Stringnichen = req.getParameter("nichen");
Stringzhuanfaid = req.getParameter("zhuanfaid");
Stringsql = "insertinto t_weibo values(?,?,?,?,?,?,?)";
Object[]params = { id, content, mediapath, account, nichen, shijian,zhuanfaid };
DBmydb = new DB();
mydb.doPstm(sql,params);
mydb.closed();
req.setAttribute("message");
// 热门用户
ListhotuserList =newArrayList();
Stringsql3 = "select* from t_user where del='no' order by fensishu desc limit 0,9";
Object[]params3 = {};
DBmydb3 = new DB();
try {
mydb3.doPstm(sql3, params3);
ResultSet rs3 = mydb3.getRs();
while (rs3.next()) {
Tuseruser3 = new Tuser();
user3.setAccount(rs3.getString("account"));
user3.setNichen(rs3.getString("nichen"));
user3.setPwd(rs3.getString("pwd"));
user3.setSchool(rs3.getString("school"));
user3.setFensishu(rs3.getString("fensishu"));
user3.setGuanzhu(rs3.getString("guanzhu"));
user3.setWeiyou(rs3.getString("weiyou"));
user3.setPhoto(rs3.getString("photo"));
hotuserList.add(user3);
}
rs3.close();
} catch (Exception e) {
e.printStackTrace();
}
mydb3.closed();
req.setAttribute("hotuserList", hotuserList);
// 自己最新10条围脖
ListweiboList = new ArrayList();
Stringsql5 = "select* from t_weibo order by shijian desc limit 0,10";
Object[]params5 = {};
DBmydb5 = new DB();
try {
mydb5.doPstm(sql5, params5);
ResultSet rs5 = mydb5.getRs();
while (rs5.next()) {
Tweiboweibo = new Tweibo();
weibo.setId(rs5.getString("id"));
weibo.setContent(rs5.getString("content"));
weibo.setMediapath(rs5.getString("mediapath"));
weibo.setAccount(rs5.getString("account"));
weibo.setShijian(rs5.getString("shijian"));
weibo.setNichen(rs5.getString("nichen"));
weibo.setZhuanfaid(rs5.getString("zhuanfaid"));
if (findUserByAccount(rs5.getString("account")) != null) {
weibo.setPhoto(findUserByAccount(
rs5.getString("account")).getPhoto());
}
weibo.setPinglunlist(findpinglunlistByweiboid(rs5.getString("id")));
weiboList.add(weibo);
}
rs5.close();
} catch (Exception e) {
e.printStackTrace();
}
mydb5.closed();
req.setAttribute("weiboList", weiboList);
StringtargetURL = "/main.jsp";
dispatch(targetURL,req, res);
注册界面相对简单,填写相关信息,加入EasyTalking微博系统,包括:账号,昵称,密码,确认密码,来自学校等信息。填写好信息之后,系统录入数据到数据库。点击立即注册,注册成功,就可以使用此账号,密码登录微博了。
图4.3 注册界面
其中注册功能相关代码如下:
publicvoid userAdd(HttpServletRequest req, HttpServletResponse res){
String account = req.getParameter("account");
String nichen = req.getParameter("nichen");
String pwd = req.getParameter("pwd");
String pwd2 = req.getParameter("pwd2");
String school = req.getParameter("school");
String fensishu = req.getParameter("fensishu");
String guanzhu = req.getParameter("guanzhu");
String weiyou = req.getParameter("weiyou");
String photo = "img/user7.jpg" ;
String fmt = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(fmt);
Date date = newDate();
String createDt = sdf.format(date);
String del = "no";
String result = "no";
String sql = "select * from t_user where account=?";
Object[] params = { account };
DB mydb = new DB();
mydb.doPstm(sql, params);
try {
ResultSetrs = mydb.getRs();
boolean mark = (rs ==null ||!rs.next() ?false :true);
if (mark ==false) {
result = "no";
} else {
result = "yes";
}
rs.close();
} catch(SQLException e) {
e.printStackTrace();
} finally {
mydb.closed();
}
if (pwd !=null && pwd !=""&& !pwd.equals(pwd2)) {
req.setAttribute("message","您两次输入的密码不一致!");
StringtargetURL = "/reg.jsp";
dispatch(targetURL,req, res);
}elseif ("yes".equals(result)) {
req.setAttribute("message","账号已经注册");
StringtargetURL = "/reg.jsp";
dispatch(targetURL,req, res);
} else {
sql= "insert into t_uservalues(?,?,?,?,?,?,?,?,?,?)";
Object[]params1 = { account, nichen, pwd, school, fensishu,
guanzhu,weiyou, photo, createDt, del };
DBmydb1 = new DB();
mydb1.doPstm(sql,params1);
mydb1.closed();
//最近加入的人员
ListuserList =newArrayList();
Stringsql2 = "select * fromt_user where del='no' order by createDt desc limit 0,10";
Object[]params2 = {};
DBmydb2 = new DB();
try {
mydb2.doPstm(sql2, params2);
ResultSet rs2 = mydb2.getRs();
while (rs2.next()) {
Tuseruser2 =new Tuser();
user2.setAccount(rs2.getString("account"));
user2.setNichen(rs2.getString("nichen"));
user2.setPwd(rs2.getString("pwd"));
user2.setSchool(rs2.getString("school"));
user2.setFensishu(rs2.getString("fensishu"));
user2.setGuanzhu(rs2.getString("guanzhu"));
user2.setWeiyou(rs2.getString("weiyou"));
user2.setPhoto(rs2.getString("photo"));
userList.add(user2);
}
rs2.close();
} catch (Exception e) {
e.printStackTrace();
}
mydb2.closed();
//热门用户
ListhotuserList =newArrayList();
Stringsql3 = "select * fromt_user where del='no' order by fensishu desc limit 0,5";
Object[]params3 = {};
DBmydb3 = new DB();
try {
mydb3.doPstm(sql3, params3);
ResultSet rs3 = mydb3.getRs();
while (rs3.next()) {
Tuseruser3 =new Tuser();
user3.setAccount(rs3.getString("account"));
user3.setNichen(rs3.getString("nichen"));
user3.setPwd(rs3.getString("pwd"));
user3.setSchool(rs3.getString("school"));
user3.setFensishu(rs3.getString("fensishu"));
user3.setGuanzhu(rs3.getString("guanzhu"));
user3.setWeiyou(rs3.getString("weiyou"));
user3.setPhoto(rs3.getString("photo"));
hotuserList.add(user3);
}
rs3.close();
} catch (Exception e) {
e.printStackTrace();
}
mydb3.closed();
req.setAttribute("userList", userList);
req.setAttribute("hotuserList", hotuserList);
//最新3条围脖
ListweiboList=newArrayList();
Stringsql5="select * fromt_weibo order by shijian desc limit 0,3";
Object[]params5={};
DBmydb5=new DB();
try
{
mydb5.doPstm(sql5, params5);
ResultSet rs5=mydb5.getRs();
while(rs5.next())
{
Tweiboweibo=new Tweibo();
weibo.setId(rs5.getString("id"));
weibo.setContent(rs5.getString("content"));
weibo.setMediapath(rs5.getString("mediapath"));
weibo.setAccount(rs5.getString("account"));
weibo.setShijian(rs5.getString("shijian"));
weibo.setNichen(rs5.getString("nichen"));
if(findUserByAccount(rs5.getString("account")) != null){
weibo.setPhoto(findUserByAccount(rs5.getString("account")).getPhoto());
}
weiboList.add(weibo);
}
rs5.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("weiboList", weiboList);
StringtargetURL = "/login.jsp";
dispatch(targetURL,req, res);
}
}
作为一个简单的即时分享类的微博系统,接收好友账号信息是很重要的,用户方便与指定ID账号的朋友分享自己的生活,其界面及功能实现如下:
图4.4 发送好友信息界面
其中“发送好友ID”相关代码如下:
publicvoiduserSearch(HttpServletRequest req, HttpServletResponse res) {
String nichen = req.getParameter("nichen");
List userList = new ArrayList();
String sql5 = "select* from t_user where nichen = ?";
Object[] params5 = {nichen};
DB mydb5 = new DB();
try {
mydb5.doPstm(sql5,params5);
ResultSetrs = mydb5.getRs();
while(rs.next()) {
Tuser user = 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"));
userList.add(user);
}
rs.close();
} catch(Exception e) {
e.printStackTrace();
}
mydb5.closed();
req.setAttribute("userList",userList);
String targetURL = "/userlist.jsp";
dispatch(targetURL, req, res);
4.5转发,评论,删除模块
此模块中主要涉及的就是用户微博的转发,评论和删除。相关代码如下:
图4.5 转发,评论,删除界面
其中“添加”“修改”“删除”按钮相关代码如下:
转发:publicvoid inforAdd(HttpServletRequest req,HttpServletResponse res) {
String id = String.valueOf(new Date().getTime());
String account = req.getParameter("account");
String content = req.getParameter("content");
String fasongaccount = req.getParameter("fasongaccount");
String shijian = newDate().toLocaleString();
String status = "0";
String sql = "insert into t_infor values(?,?,?,?,?,?)";
Object[] params = { id, account, content,fasongaccount, shijian, status };
DB mydb = new DB();
mydb.doPstm(sql, params);
mydb.closed();
String targetURL = "/login.jsp";
dispatch(targetURL, req, res);
}
评论: publicvoidweiboPinlun(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String id = String.valueOf(new Date().getTime());
String content = req.getParameter("pinglunContent");
String weiboid = req.getParameter("weiboid");
String account = req.getParameter("pinglunaccount");
String shijian = newDate().toLocaleString();
String sql = "insert into t_weibopinglun values(?,?,?,?,?)";
Object[] params = { id, weiboid, content,account, shijian };
DB mydb = new DB();
mydb.doPstm(sql, params);
mydb.closed();
// 热门用户
List hotuserList =newArrayList();
String sql3 = "select * from t_user where del='no' order byfensishu desc limit 0,9";
Object[] params3 = {};
DB mydb3 = new DB();
try {
mydb3.doPstm(sql3,params3);
ResultSetrs3 = mydb3.getRs();
while (rs3.next()) {
Tuser user3 = newTuser();
user3.setAccount(rs3.getString("account"));
user3.setNichen(rs3.getString("nichen"));
user3.setPwd(rs3.getString("pwd"));
user3.setSchool(rs3.getString("school"));
user3.setFensishu(rs3.getString("fensishu"));
user3.setGuanzhu(rs3.getString("guanzhu"));
user3.setWeiyou(rs3.getString("weiyou"));
user3.setPhoto(rs3.getString("photo"));
hotuserList.add(user3);
}
rs3.close();
} catch(Exception e) {
e.printStackTrace();
}
mydb3.closed();
req.setAttribute("hotuserList", hotuserList);
// 自己最新10条围脖
List weiboList = new ArrayList();
String sql5 = "select * from t_weibo order by shijian desc limit0,10";
Object[] params5 = {};
DB mydb5 = new DB();
try {
mydb5.doPstm(sql5,params5);
ResultSetrs5 = mydb5.getRs();
while (rs5.next()) {
Tweibo weibo = newTweibo();
weibo.setId(rs5.getString("id"));
weibo.setContent(rs5.getString("content"));
weibo.setMediapath(rs5.getString("mediapath"));
weibo.setAccount(rs5.getString("account"));
weibo.setShijian(rs5.getString("shijian"));
weibo.setNichen(rs5.getString("nichen"));
weibo.setZhuanfaid(rs5.getString("zhuanfaid"));
if(findUserByAccount(rs5.getString("account")) != null) {
weibo.setPhoto(findUserByAccount(
rs5.getString("account")).getPhoto());
}
weibo.setPinglunlist(findpinglunlistByweiboid(rs5.getString("id")));
weiboList.add(weibo);
}
rs5.close();
} catch(Exception e) {
e.printStackTrace();
}
mydb5.closed();
req.setAttribute("weiboList", weiboList);
String targetURL = "/main.jsp";
dispatch(targetURL, req, res);
}
删除:publicvoidweiboDel(HttpServletRequest req, HttpServletResponse res) {
String id = req.getParameter("weiboid");
String sql = "delete from t_weibo where id=?";
Object[] params = { id };
DB mydb = new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message");
req.setAttribute("path","weibo?type=weiboMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
4.6个人信息修改
用户可以修改自己的个人信息,点击“修改头像”按钮,可以从本地文件选择满意的照片添加进去,相关代码如下:
图4.6 个人信息修改
其中“修改头像”按钮代码如下:
publicvoiduserModifyPhoto(HttpServletRequest req, HttpServletResponse res) {
String account = req.getParameter("account");
String photo = req.getParameter("fujian");
String sql = "updatet_user set photo='" + photo + "'where account=?";
Object[] params = { account };
DB mydb = new DB();
mydb.doPstm(sql, params);
mydb.closed();
//最近加入的人员
List userList = new ArrayList();
String sql2 = "select* from t_user where del='no' order by createDt desc limit 0,10";
Object[] params2 = {};
DB mydb2 = new DB();
try {
mydb2.doPstm(sql2,params2);
ResultSetrs2 = mydb2.getRs();
while(rs2.next()) {
Tuser user2 = newTuser();
user2.setAccount(rs2.getString("account"));
user2.setNichen(rs2.getString("nichen"));
user2.setPwd(rs2.getString("pwd"));
user2.setSchool(rs2.getString("school"));
user2.setFensishu(rs2.getString("fensishu"));
user2.setGuanzhu(rs2.getString("guanzhu"));
user2.setWeiyou(rs2.getString("weiyou"));
user2.setPhoto(rs2.getString("photo"));
userList.add(user2);
}
rs2.close();
} catch(Exception e) {
e.printStackTrace();
}
mydb2.closed();
//热门用户
List hotuserList =newArrayList();
String sql3 = "select* from t_user where del='no' order by fensishu desc limit 0,5";
Object[] params3 = {};
DB mydb3 = new DB();
try {
mydb3.doPstm(sql3,params3);
ResultSetrs3 = mydb3.getRs();
while(rs3.next()) {
Tuser user3 = newTuser();
user3.setAccount(rs3.getString("account"));
user3.setNichen(rs3.getString("nichen"));
user3.setPwd(rs3.getString("pwd"));
user3.setSchool(rs3.getString("school"));
user3.setFensishu(rs3.getString("fensishu"));
user3.setGuanzhu(rs3.getString("guanzhu"));
user3.setWeiyou(rs3.getString("weiyou"));
user3.setPhoto(rs3.getString("photo"));
hotuserList.add(user3);
}
rs3.close();
} catch(Exception e) {
e.printStackTrace();
}
mydb3.closed();
req.setAttribute("userList",userList);
req.setAttribute("hotuserList",hotuserList);
//最新3条微博
List weiboList=newArrayList();
String sql5="select* from t_weibo order by shijian desc limit 0,3";
Object[] params5={};
DB mydb5=new DB();
try
{
mydb5.doPstm(sql5,params);
ResultSetrs5=mydb.getRs();
while(rs5.next())
{
Tweibo weibo=newTweibo();
weibo.setId(rs5.getString("id"));
weibo.setContent(rs5.getString("content"));
weibo.setMediapath(rs5.getString("mediapath"));
weibo.setAccount(rs5.getString("account"));
weibo.setShijian(rs5.getString("shijian"));
weibo.setNichen(rs5.getString("nichen"));
if(findUserByAccount(rs5.getString("account")) != null){
weibo.setPhoto(findUserByAccount(rs5.getString("account")).getPhoto());
}
weiboList.add(weibo);
}
rs5.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("weiboList",weiboList);
String targetURL = "/login.jsp";
dispatch(targetURL, req, res);
5.1测试的任务及目标
在软件投入运行之前,尽可能多地发现软件中的错误。
软件测试按是否查看程序内部结构可分为两种:黑盒测试和白盒测试。本系统测试主要以黑盒为主,与一些软件公司的处理方法类似,通过不断地输入数值,拿预期值与实际值进行对比,部分功能测试如下:
(1) 登陆界面测试
表5-1用户登录操作测试
测试内容 |
登录界面测试 |
测试步骤 |
操作或数据输入 |
显示或数据输出 |
实际输出结果 |
TEST-1 |
登录名为空,点击“确定” |
显示“登录名不能为空”警告框 |
显示“登录名不能为空”警告框 |
TEST-2 |
输入“登陆名称”,并输入错误的“密码” |
显示“登陆失败”警告框 |
显示“登陆失败”警告框 |
TEST-3 |
输入正确的“登陆名称及密码” |
进入系统主界面 |
进入系统主界面 |
测试结果:用户登录界面功能正常
(2) 注册界面测试
表5-2注册界面测试
测试内容 |
注册界面测试 |
测试步骤 |
操作或数据输入 |
显示或数据输出 |
实际输出结果 |
TEST-1 |
输入的账号若在用户表中已存在 |
显示“账号已存在” |
显示“账号已存在” |
测试步骤 |
操作或数据输入 |
显示或数据输出 |
实际输出结果 |
TEST-2 |
输入的确认密码与密码不同 |
显示“您两次输入的密码不一致!”警告框 |
显示“您两次输入的密码不一致!”警告框 |
TEST-3 |
填写完整且正确的信息,点击注册按钮 |
进入登录界面 |
进入登录界面 |
TEST-4 |
点击返回登录界面的链接 |
进入登录界面 |
进入登录界面 |
测试结果:注册界面功能正常
(3)转发,评论,删除模块测试
表5-3转发,评论,删除模块测试
测试内容 |
转发,评论,删除模块测试 |
测试步骤 |
操作或数据输入 |
显示或数据输出 |
实际输出结果 |
TEST-1 |
点击转发 |
进入转发界面,右上方有发送按钮 |
进入转发界面,右上方有发送按钮 |
TEST-2 |
点击评论 |
进入评论界面,右上方有发送按钮 |
进入评论界面,右上方有发送按钮 |
TEST-3 |
点击删除 |
显示“是否要删除此动态”提示框 |
显示“是否要删除此动态”提示框 |
测试结果:转发,评论,删除模块功能正常
(4) 发送好友信息模块测试
表5-4发送好友信息模块测试
测试内容 |
发送好友信息模块测试 |
测试步骤 |
操作或数据输入 |
显示或数据输出 |
实际输出结果 |
TEST-1 |
接收人员账号为空,点击“提交查询内容” |
显示“接收人员账号不能为空” |
显示“接收人员账号不能为空” |
TEST-2 |
填入正确且已有的账号,点击“提交查询内容” |
显示该好友的信息 |
显示该好友信息 |
测试结果:发送好友模块功能正常
(5) 发布微博模块测试
表5-5发布微博测试
测试内容 |
发布微博模块测试 |
测试步骤 |
操作或数据输入 |
显示或数据输出 |
实际输出结果 |
TEST-1 |
输入文本内容,点击图片 |
显示文件浏览框右下角有浏览按钮 |
显示文件浏览框右下角有浏览按钮 |
TEST-2 |
点击发送 |
新消息显示在你的个人界面 |
新消息显示在你的个人界面 |
测试结果:发布微博模块功能正确
通过整个系统的测试过程后,可以发现程序代码编写无误,系统运行稳定,容错性高,不会因为不当的操作引起系统的瘫痪。测试结果显示,整个微博系统的功能模块无误,均正常使用。
经过近三个月紧张的毕业设计,EasyTalking微博系统的设计已经圆满的完成。通过此次设计,更加巩固了系统开发和程序设计的有关知识,提高了对Java和SQL的应用能力,进一步使自己的大学四年所学的知识得到升华。
本次毕业设计,是自己大学生活中所学知识的综合运用。通过这次设计,我不仅对系统开发的全过程有了一个更为清晰、全面的认识,也学到了许多书本上学不到的知识,使我的知识结构更加合理,提高了自己独立分析问题、解决问题的能力。
在论文完成之际,首先由衷的感谢我的论文指导老师谢旻,老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神知识给我留下了深刻的印象,让我受益匪浅。在学术思想上她给予了我很大的帮助,使我顺利的完成了论文阶段。