logo资料库

基于MVC的美食点评网站管理系统.doc

第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
资料共31页,剩余部分请下载后查看
面向行业领域的软件开发学年设计任务书
一、选题背景
二、方案论证
三、过程论述
3.3系统设计
3.3.1系统用例图
图3.2 系统用例图
3.3.2系统E-R图
实体-关系图描述的是数据对象的属性及数据对象彼此间相互连接的关系。
本系统实体分为新闻实体、列别实体和管理员实体。具体E-R图如下:
图3.3 系统E-R图
3.3.1数据库表结构
图3.4 数据库表结构图
3.4系统开发及运行环境
3.5系统发布与运行
图3.5 项目分包结构图
package com.caojun.action;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.caojun.model.News;
import com.caojun.model.NewsType;
import com.caojun.model.User;
import com.caojun.service.NewsService;
import com.caojun.service.impl.NewsServiceImpl;
import com.caojun.service.impl.NewsTypeServiceImpl
import com.caojun.service.impl.UserServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
public class NewsAction extends ActionSupport {
private int newsID;
private String title;
private String content;
private java.sql.Date releaseDate;
private int userID;
private int newsTypeID;
private List allNews;
private int pageSize = 10;
private int pageNow = 1;
private int totalCount;
private List allUsers;
private List allNewsType;
public List getAllUsers() {
return allUsers;
}
public void setAllUsers(List allUsers) {
this.allUsers = allUsers;
}
public List getAllNewsType() {
return allNewsType;
}
public void setAllNewsType(List allNews
this.allNewsType = allNewsType;
}
public int getNewsID() {
return newsID;
}
public void setNewsID(int newsID) {
this.newsID = newsID;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public java.sql.Date getReleaseDate() {
return releaseDate;
}
public void setReleaseDate(java.sql.Date releaseD
this.releaseDate = releaseDate;
}
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public int getNewsTypeID() {
return newsTypeID;
}
public void setNewsTypeID(int newsTypeID) {
this.newsTypeID = newsTypeID;
}
public List getAllNews() {
return allNews;
}
public void setAllNews(List allNews) {
this.allNews = allNews;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public String createNews(){
HttpSession session = ServletActionContext.getRe
User user = (User)session.getAttribute("user");
News news = new News();
news.setTitle(this.title);
news.setContent(this.content);
news.setReleaseDate(this.releaseDate);
news.setUserID(user.getId());
news.setNewsTypeID(this.newsTypeID);
NewsService newsService = new NewsServiceImpl();
newsService.createNews(news);
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User u1 = new UserServiceImpl().queryUser(n.get
n.setUser(u1);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String showNews(){
NewsService newService = new NewsServiceImpl();
News news = newService.queryNews(this.newsID);
User user = new UserServiceImpl().queryUser(news
news.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().qu
news.setNewsType(newsType);
HttpServletRequest request = ServletActionContex
request.setAttribute("news", news);
this.allUsers = new UserServiceImpl().queryAllUs
this.allNewsType = new NewsTypeServiceImpl().que
return SUCCESS;
}
public String showAllNews(){
NewsService newsService = new NewsServiceImpl();
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User user = new UserServiceImpl().queryUser(n.g
n.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String showNewsByTypeID(){
NewsService newsService = new NewsServiceImpl();
this.allNews = newsService.queryAllNews(this.new
return SUCCESS;
}
public String updateNews(){
NewsService newsService = new NewsServiceImpl();
News news = newsService.queryNews(this.newsID);
news.setTitle(this.title);
news.setContent(this.content);
news.setReleaseDate(this.releaseDate);
news.setUserID(this.userID);
news.setNewsTypeID(this.newsTypeID);
newsService.updateNews(news);
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User user = new UserServiceImpl().queryUser(n.g
n.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String deleteNews(){
NewsService newsService = new NewsServiceImpl();
News news = newsService.queryNews(this.newsID);
newsService.deleteNews(news);
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User user = new UserServiceImpl().queryUser(n.g
n.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String showAllNewsTypes(){
this.allNewsType = new NewsTypeServiceImpl().que
return SUCCESS;
}
}
package com.caojun.action;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.caojun.model.User;
import com.caojun.service.UserService;
import com.caojun.service.impl.UserServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() throws Exception {
UserService userService = new UserServiceImpl();
User user = userService.queryUser(this.getUserna
if(user == null){
this.addActionError("密码或用户名不正确!");
return INPUT;
}else{
String psw = user.getPassword();
if(this.getPassword().equals(psw)){
HttpSession session = ServletActionContext.get
session.setAttribute("user", user);
return SUCCESS;
}
}
this.addActionError("密码或用户名不正确!");
return INPUT;
}
}
NewsTypeDAO.java
package com.caojun.dao;
import java.util.List;
import com.caojun.model.NewsType;
public interface NewsTypeDAO {
public void createNewsType(NewsType newsType);
public void updateNewsType(NewsType newsType);
public void deleteNewsType(NewsType newsType);
public List queryAllNewsTypes();
public List queryAllNewsTypes(int pageS
public NewsType queryNewsType(int newsTypeID);
}
四、结果分析
图3.6 前台美食点评系统首页
图3.8 后台管理员登录界面
图3.9 后台管理员主页面
五、结论(或总结)
面向行业领域的软件开发学年设计任务书 学 院 计算机与信息工程 专 业 网络工程 课程名称 面向行业领域的软件开发 题 目 基于 MVC 的美食点评网 站管理系统 完成期限 自 2015 年 6 月 29 日至 2015 年 7 月 7 日共 1 周 一、项目的目的 运用 MyEclipse 开发工具编写程序代码,采用 B/S 架构开发出 基于 SSH 框架的新闻信息管理系统,并对系统进行详细测试和维 护。 二、项目任务的主要内容和要求 本系统主要功能和要求应包括: 1.管理员可以登录; 2.管理员可以增加用户信息; 3.管理员可以修改用户信息; 4.管理员管理员可以删除用户信息; 5.管理员可以新增美食信息; 6.管理员可以修改美食信息; 7.管理员可以删除美食信息; 8.用户可以查看美食信息; 9.用户可以评价美食信息; 10.用户可以查看评价信息; 11.用户可以删除评价信息; 内 容 及 任 务 三、项目设计(研究)思路 遵循软件工程思想,在对系统需求分析后,进行系统设计和数 据库设计,绘制用例图和 E-R 图后,采用 MySQL 数据库存储数据, 在 MyEclipse 平台上,选择 Java EE 框架编码实现系统,并进行简 单的测试完善系统。 四、具体成果形式和要求
学年设计说明书和软件源码。 起止日期 工作内容 6 月 29 日-30 日 进行需求分析、概要设计工作 7 月 1 日-5 日 7 月 6 日-7 日 7 月 8 日 技术准备 详细设计和编码实现工作 撰写学年设计报告,进行答辩 [1] 唐振明. JavaEE 主流开源框架[M].北京:电子工业出版社, 2011. 进 度 安 排 主 要 参 考 资 料 指导教师 意见 (签字): 系(教研室) 主任意见 (签字): 年 月 日 年 月 日
面向行业领域的软件开发设计说明书 学院名称: 计算机与信息工程学院 班级名称: 学生姓名: 学 号: 题 目: 美食点评网站管理系统 指导教师 姓 名: 起止日期: 2015.6.29 至 2015.7.7
第一部分:正文部分 一、选题背景 随着网络在中国的广泛普及,网站应用的逐步完善,越来越多的中国人逐渐 习惯于网上订餐,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传 统的美食评论观念正在被网上美食评论这一方便快捷的方式所冲击。美食点评管 理系统可以实现的商务功能已经越来越多样化,从最开始的美食信息发布功能, 到现在的在线美食展示功能、在线评价功能等等,几乎传统美食点评所提供的功 能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将 传统书店的地域限制加以突破,全国各地的读者都可以通过网络在同一个美食点 评系统,从而大大增加了客户的数量。 二、方案论证 系统采用 B/S 架构,将系统分为浏览器端、应用服务器端和数据库服务器端。 通过 html、css 和 avaScript 等技术实现浏览器端页面的设计,采用 jsp 技术进 行 web 页面的渲染;服务器端采用 SSH 框架进行本系统的开发;数据库应用服务 器采用简单的 MySql 数据库。 三、过程论述 3.1 系统主要功能要求 A.前台主要功能如下: 1.用户可以浏览美食信息; 2.用户可以评价美食信息; 3.用户可以查看评价信息: 4.用户可以删除评价信息; B.后台主要功能如下: 1.管理员可以登录系统; 2.管理员可以查看、增加、删除、修改用户信息; 3.管理员可以查看、修改美食信息; 4.管理员可以增加、删除美食信息;
5.管理员可以删除评价信息。 3.2 系统模块化分析 系统总体结构,主要功能框架如图 3.1 所示: 美食点评管理系统 用户前台 管理员后台 查 看 美 食 信 息 评 价 美 食 信 息 查 看 评 价 信 息 删 除 评 价 信 息 登 录 系 统 增 删 改 查 用 户 信 息 查 看 修 改 美 食 信 息 增 加 删 除 美 食 信 息 删 除 评 价 信 息 图 3.1 功能框架 3.3 系统设计 3.3.1 系统用例图 用例是描述外部行为者所理解的系统功能,在 UML 中,组成用例图的主要元 素是系统、用例、行为者以及用例之间的关系,它是用户主体与系统功能的直观 关系。本系统外部行为者为用户和管理员。用例图如下:
图 3.2 系统用例图 3.3.2 系统 E-R 图 实体-关系图描述的是数据对象的属性及数据对象彼此间相互连接的关系。 本系统实体分为新闻实体、列别实体和管理员实体。具体 E-R 图如下:
图 3.3 系统 E-R 图 3.3.1 数据库表结构 本系统中数据库名称为:news_publish。一共有三张表分别是:user 表、 news 表、newstype 表。分别用来存储用户信息、美食信息和美食评价信息。下 面给出表中具体属性。(数据库表结构见图 3.4) user 表:id、username、password news 表:id、title、content、releaseDate、userID、newsTypeID newstype 表:id、typename
图 3.4 数据库表结构图 3.4 系统开发及运行环境 硬件平台: CPU:Pentium2.8GHz 以上。 内存:256 以上。 软件平台: 操作系统:Windows7。 运行环境:JDK1.7,MyEclipse,Tomcat,MySql。 3.5 系统发布与运行 本系统项目开发完成后,即可部署到 Tomcat 服务器上,首先开启服务器, 然后打开浏览器,在浏览器的地址栏输入 http://localhost:8080/index.jsp 即 可 进 入 系 统 用 户 端 前 台 , 在 浏 览 器 地 址 栏 输 入 http://localhost:8080/ahong520/login.jsp 即可登录到系统后台。 3.6 系统实现 系统项目代码分包结构:
分享到:
收藏