

已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向行业领域的软件开发学年设计任务书 学 院计算机与信息工程专 业网络工程课程名称面向行业领域的软件开发题 目基于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 第一部分:正文部分1、 选题背景随着网络在中国的广泛普及,网站应用的逐步完善,越来越多的中国人逐渐习惯于网上订餐,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统的美食评论观念正在被网上美食评论这一方便快捷的方式所冲击。美食点评管理系统可以实现的商务功能已经越来越多样化,从最开始的美食信息发布功能,到现在的在线美食展示功能、在线评价功能等等,几乎传统美食点评所提供的功能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将传统书店的地域限制加以突破,全国各地的读者都可以通过网络在同一个美食点评系统,从而大大增加了客户的数量。二、方案论证系统采用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、passwordnews表:id、title、content、releasedate、userid、newstypeidnewstype表: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系统实现系统项目代码分包结构:图3.5 项目分包结构图核心代码useraction.javapackage com.caojun.action;import java.util.list;import javax.servlet.http.httpservletrequest;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 useraction extends actionsupport private string username;private string password;private string repassword;private int totalcount;private int pagesize = 5;private int pagenow = 1;private int id;private list users;public int getid() return id;public void setid(int id) this.id = id;public list getusers() return users;public void setusers(list users) this.users = users;public int gettotalcount() return totalcount;public void settotalcount(int totalcount) this.totalcount = totalcount;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 string getrepassword() return repassword;public void setrepassword(string repassword) this.repassword = repassword;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;public string createuser()user user = new user();user.setusername(username);user.setpassword(password);userservice userservice = new userserviceimpl();userservice.createruser(user);return success;public string showusers()userservice userservice = new userserviceimpl();this.users = userservice.queryallusers(this.pagesize, this.pagenow);this.totalcount = userservice.queryallusers().size();return success;public string showuser()userservice userservice = new userserviceimpl();user user = userservice.queryuser(this.id);httpservletrequest request = servletactioncontext.getrequest();request.setattribute(user, user);return success;public string updateuser()userservice userservice = new userserviceimpl();user user = userservice.queryuser(this.id);user.setusername(username);user.setpassword(password);userservice.updateuser(user);this.users = userservice.queryallusers(this.pagesize, this.pagenow);this.totalcount = userservice.queryallusers().size();return success;public string deleteuser()userservice userservice = new userserviceimpl();user user = userservice.queryuser(this.id);userservice.deleteuser(user);this.users = userservice.queryallusers(this.pagesize, this.pagenow);this.totalcount = userservice.queryallusers().size();return success;newstypeaction.javapackage com.caojun.action;import java.util.list;import com.caojun.model.newstype;import com.caojun.service.newstypeservice;import com.caojun.service.impl.newstypeserviceimpl;import com.opensymphony.xwork2.actionsupport;public class newstypeaction extends actionsupport private int newstypeid;private string typename;private list allnewstypes;private newstype newstype;public int getnewstypeid() return newstypeid;public void setnewstypeid(int newstypeid) this.newstypeid = newstypeid;public list getallnewstypes() return allnewstypes;public void setallnewstypes(list allnewstypes) this.allnewstypes = allnewstypes;public string gettypename() return typename;public void settypename(string typename) this.typename = typename;public newstype getnewstype() return newstype;public void setnewstype(newstype newstype) this.newstype = newstype;public string createnewstype()newstype newstype = new newstype();newstype.settypename(this.typename);newstypeservice newstypeservice = new newstypeserviceimpl();newstypeservice.createnewstype(newstype);this.allnewstypes = newstypeservice.queryallnewstypes();this.addactionmessage(添加成功);return success;public string shownewstypes()newstypeservice newstypeservice = new newstypeserviceimpl();this.allnewstypes = newstypeservice.queryallnewstypes();return success;public string shownewstype()newstypeservice newstypeservice = new newstypeserviceimpl();this.newstype = newstypeservice.querynewstype(this.newstypeid);this.allnewstypes = newstypeservice.queryallnewstypes();return success;public string updatenewstype()newstypeservice newstypeservice = new newstypeserviceimpl();newstype nt = newstypeservice.querynewstype(this.newstypeid);nt.settypename(this.typename);newstypeservice.updatenewstype(nt);this.allnewstypes = newstypeservice.queryallnewstypes();this.addactionmessage(修改成功);return success;public string deletenewstype()newstypeservice newstypeservice = new newstypeserviceimpl();newstype nt = newstypeservice.querynewstype(this.newstypeid);newstypeservice.deletenewstype(nt);this.allnewstypes = newstypeservice.queryallnewstypes();this.addactionmessage(删除成功);return success;newsaction.javapackage 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 allnewstype) 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 releasedate) 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.getrequest().getsession();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.pagesize, this.pagenow);for(iterator it = allnews.iterator();it.hasnext();)news n = it.next();user u1 = new userserviceimpl().queryuser(n.getuserid();n.setuser(u1);newstype newstype = new newstypeserviceimpl().querynewstype(n.getnewstypeid();n.setnewstype(newstype);this.totalcount = newsservice.queryallnews().size();return success;public string shownews()newsservice newservice = new newsserviceimpl();news news = newservice.querynews(this.newsid);user user = new userserviceimpl().queryuser(news.getuserid();news.setuser(user);newstype newstype = new newstypeserviceimpl().querynewstype(news.getnewstypeid();news.setnewstype(newstype);httpservletrequest request = servletactioncontext.getrequest();request.setattribute(news, news);this.allusers = new userserviceimpl().queryallusers();this.allnewstype = new newstypeserviceimpl().queryallnewstypes();return success;public string showallnews()newsservice newsservice = new newsserviceimpl();this.allnews = newsservice.queryallnews(this.pagesize, this.pagenow);for(iterator it = allnews.iterator();it.hasnext();)news n = it.next();user user = new userserviceimpl().queryuser(n.getuserid();n.setuser(user);newstype newstype = new newstypeserviceimpl().querynewstype(n.getnewstypeid();n.setnewstype(newstype);this.totalcount = newsservice.queryallnews().size();return success;public string shownewsbytypeid()newsservice newsservice = new newsserviceimpl();this.allnews = newsservice.queryallnews(this.newstypeid);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.pagesize, this.pagenow);for(iterator it = allnews.iterator();it.hasnext();)news n = it.next();user user = new userserviceimpl().queryuser(n.getuserid();n.setuser(user);newstype newstype = new newstypeserviceimpl().querynewstype(n.getnewstypeid();n.setnewstype(newstype);this.totalcount = newsservice.queryallnews().size();return success;public string deletenews()newsservice newsservice = new newsserviceimpl();news news = newsservice.querynews(this.newsid);newsservice.deletenews(news);this.allnews = newsservice.queryallnews(this.pagesize, this.pagenow);for(iterator it = allnews.iterator();it.hasnext();)news n = it.next();user user = new userserviceimpl().queryuser(n.getuserid();n.setuser(user);newstype newstype = new newstypeserviceimpl().querynewstype(n.getnewstypeid();n.setnewstype(newstype);this.totalcount = newsservice.queryallnews().size();return success;public string showallnewstypes()this.allnewstype = new newstypeserviceimpl().queryallnewstypes();return success;loginaction.javapackage 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 actionsupportprivate 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;overridepublic string execute() throws exception userservice userservice = new userserviceimpl();user us
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 18655-2025车辆、船和内燃机无线电骚扰特性用于保护车载接收机的限值和测量方法
- 统计师考试大数据分析试题及答案
- 2025租赁合同范本英文
- 2025合同变更的情形
- 幼儿园游戏环境创设(-71)
- 2025保险公司最高额抵押合同
- 2025《合同终止操作流程》
- 2025中介合同中介合同范本中介合同模板
- 安徽信息工程学院《药品质量检验综合实训》2023-2024学年第二学期期末试卷
- 济南职业学院《医学文献检索与利用》2023-2024学年第二学期期末试卷
- 2025年陕西农业发展集团有限公司(陕西省土地工程建设集团)招聘(200人)笔试参考题库附带答案详解
- 2025-2030中国孵化器行业市场发展前瞻及投资战略研究报告
- 5.3基本经济制度 课件 2024-2025学年统编版道德与法治八年级下册
- Unit4 Breaking Boundaries 单元教学设计-2024-2025学年高中英语外研版(2019)选择性必修第二册
- T-CCTAS 61-2023 桥梁承重缆索抗火密封综合防护技术规程
- GB/T 16895.36-2024低压电气装置第 7-722 部分:特殊装置或场所的要求电动车供电
- 人音版初中音乐 九年级上册 中考一轮复习课件
- 教学能力大赛三相异步电动机的基本控制+教案
- 钢格构柱组合式塔吊方案(专家认证)
- 工程结算单(样本)
- 校园小品剧本多人10人 校园多人小品剧本
评论
0/150
提交评论