餐饮通用管理系统报告
餐饮通用管理系统
一、实验目的
1.理解和掌握软件工程的设计理念与设计方法。
2.掌握某种数据库管理以及可视化编程环境,掌握基于某种编程语言的信息系统或`嵌入式软件的开发设计方法。
二、实验说明
本实验除了限定了软硬平台的题目之外,可以任意选择软硬平台。尤其是Windows 下的软件题目,可以选择.NET 平台(ASP.NET/WinForm)、J2EE 平台(JSP/Servlet)、WIN32平台等任意平台,开发工具、开发环境自行选择,涉及数据库系统的可以任意选择数据库系统。
以下为实验备选题目。
题目1:餐饮通用管理系统 1.管理菜品信息。
2.要能按餐馆的要求修改菜单和让新顾客的资料备份。 3.产生定菜单,并修改货物库存。
4.财务管理部分主要是根据顾客的消费结帐和修改总帐目数据。
三、实验设备
四、实验内容
4.1 可行性分析
可行性分析的定义可以大致概括为:可行性分析指的是在一个项目开发前期,人为的对它进行鉴定和考察,通过对它所涉及到的经济、技术、财物等综合的分析来最终判断它是否可行。以下几个方面是可行性分析阶段主要进行分析的内容: 4.1.1技术可行性分析
技术可行性分析是指按照一个系统开发的最终目的和要求,来首先衡量技术方面的资源是否符合条件,比如硬件软件的要求,研发人员的数量和水平等等相关的技术条件,都是属于技术可行性分析的方面。例如,像这个小型餐饮管理系统的研发,它所需要的开发环境及
工具都要具备,还有操作系统版本的求也要考虑进去以及对内存的要求这些都要考虑进去,目前Java 的研发技术越来越成熟了,相信以后的发展前景会更加明朗。 4.1.2经济可行性分析
经济可行性分析这个项目研发成功后,给公司带来的经济效益与研发前所投入的资金之间的一个比较,从而来确认所开发系统是否真的能给企业带来一定的经济效益。
开发这个餐饮管理系统,不仅能给企业管理者提供一个更好管理餐饮业的平台,而且还能大幅度提高企业的形象及增强与外界的竞争力。摆脱了以前陈旧的低效率经营模式,适应了现代经营管理的要求。这套餐饮管理系统将餐饮业中开台、点菜、预定、结账、货物入库出库、人员信息等一连串的业务用计算机来管理,分析与设计了餐饮系统的结构及功能模块,解决餐饮系统的关键技术和解决方案,使得餐饮管理机制真正实现了现代化。从而提高酒店的服务质量,并配合现代化的酒店管理,获得了更好的经济效益。 4.1.3安全可行性分析
系统正式运行后,就企业这一块而言,登录的用户方不需要了解系统研发过程所涉及到的一些技术性方面的东西,即它对用户而言是完全透明的。用户登陆后,只需根据系统界面的链接或按钮来执行相应的操作,达到所要求的功能。而且,本系统的界面美观大方、操作方便、功能齐全,所以不仅能够给用户带来视觉上的舒服,而且也很好的达到了用户的需求。另一方面,这个系统设计了一个系统锁定功能,这个功能大大提升了系统的安全性,防止了外界无关人员对本系统非法的操作,很好的体现了系统安全的功能。 4.1.4操作可行性分析
本系统,根据软硬件资源的利用情况,按照数据库里数据表的内容直接在前台进行操作,可以实现系统完整、稳定的运行,不会给系统造成过多负面的压力,保证了它正常的运行。
如上所述,本系统通过对以上四个方面的可行性分析,最终得出结论,开发这个小型的餐饮管理系统是可行的 4.2系统需求分析
根据现在餐饮行业及该企业的实际情况,该餐饮管理系统突出前台管理提供一个科学有效的管理模式。前台管理采取图形界面加数据的方式,让用户能直观地管理数据信息,并能有效地管理每个开台的房间台号所点的酒菜,并且可以实现收银管理。入库信息可记录商品入库情况。除此之外,还有员工信息管理、供应商信息管理、菜单管理、系统锁定等等一些重要的功能。通过这些功能餐饮业经营者更有效的管理整个人餐饮业,不仅使顾客享受更便捷的服务,也为企业达到更大程度的获益。
根据该餐饮业的具体情况,本系统主要功能设计分为四大块,分别有前台管理、入库信息管理、员工信息管理、菜单管理。
(1)前台管理:主要是对酒店前台开台点菜、预定、收银的管理。包括开台管理、预定管理、数据结账分析管理。
(2)入库信息管理:主要是对酒店后台进货的货物情况进行管理。包括每日进货量查询、库存信息查询、商品单价查询,及对当日商品的添加、修改、删除操作。
(3)员工信息管理:主要是对酒店服务人员,像经理、服务员,收银人员信息的管理,包括员工信息添加、修改、删除等,来对员工进行合理的管理。
(4)菜单管理:主要是酒店管理人员对每日菜单的管理,同样里面有添加、删除、修改工能。
4.3.设计过程中的各种图形 系统模块图
总体E-R 图
4.4程序清单
(1)入库信息管理部分代码: package com.dianxin.dao.impl; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import com.dianxin.bean.Food; import com.dianxin.bean.Money; import com.dianxin.dao.FoodDao;
import com.dianxin.util.TxQueryRunner;
public class FoodDaoImpl implements FoodDao { public int addfood(Food food) { int result = 0; QueryRunner qr = new TxQueryRunner(); String sql = "insert into food(foodName,foodPrice,foodDetail,foodKucun) values(?,?,?,?)"; Object[] params = { food.getFoodName(), food.getFoodPrice(), food.getFoodDetail(),food.getFoodKucun() }; try { result = qr.update(sql, params); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public int deletefood(Food food) { int result = 0; QueryRunner qr = new TxQueryRunner(); String sql = "delete from food where foodId=?"; Object[] params = { food.getFoodId() }; try { result = qr.update(sql, params); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public int updatefood(Food food) { int result = 0; QueryRunner qr = new TxQueryRunner(); String sql = "update food set foodKucun=? where foodId=?"; Object[] params = {food.getFoodKucun(),food.getFoodId() }; try { result = qr.update(sql, params); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public List findall() { List list = new ArrayList(); QueryRunner qr = new TxQueryRunner(); String sql = "select * from food order by foodId asc"; try { list = qr.query(sql, new BeanListHandler(Food.class));
} catch (SQLException e) {
// TODO Auto-generated catch block e.printStackTrace(); } return list; }
public Food finfByid(int id){ Food food=new Food();
QueryRunner qr = new TxQueryRunner();
String sql = "select * from food where foodId=?"; Object[] params={id}; try { food=qr.query(sql, new BeanHandler(Food.class),params); } catch (SQLException e) {
// TODO Auto-generated catch block e.printStackTrace(); } return food; }
public double zong(){ double mon=0.0;
QueryRunner qr = new TxQueryRunner();
String sql = "select sum(zongMoney) from money"; try { mon=(Double)qr.query(sql, new ScalarHandler()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return mon; } public int addmon(Money money){ int result=0;
QueryRunner qr = new TxQueryRunner(); String sql = "insert into money values(?)"; Object[] params={money.getZongMoney()}; try { qr.update(sql,params); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; }}
(2)顾客信息管理部分代码: package com.dianxin.bean; import java.sql.Date;
public class User2 { private int userId2; private String userName2; private String userSex2;
private int userTel2;
private Date userDate2;
public User2(int userId2, String userName2, String userSex2,
int userTel2, Date userDate2) {
super();
this.userId2 = userId2; this.userName2 = userName2; this.userSex2 = userSex2; this.userTel2 = userTel2; this.userDate2 = userDate2; }
super(); }
return userId2; }
public User2() {
public int getUserId2() {
public void setUserId2(int userId2) {
this.userId2 = userId2;
}
return userName2;
}
public String getUserName2() {
public void setUserName2(String userName2) {
this.userName2 = userName2; }
public String getUserSex2() {
return userSex2; }
public void setUserSex2(String userSex2) {
this.userSex2 = userSex2; }
public int getUserTel2() {
return userTel2; }
public void setUserTel2(int userTel2) {
this.userTel2 = userTel2; }
public Date getUserDate2() {
return userDate2; }
public void setUserDate2(Date userDate2) {
this.userDate2 = userDate2; }
@Override
public String toString() {
return "User2Dao [userId2=" + userId2 + ", userName2=" + userName2
+ ", userSex2=" + userSex2 + ", userTel2=" + userTel2
+ ", userDate2=" + userDate2 + "]"; }}
(3)菜单管理程序
package com.dianxin.bean; import java.sql.Date;
public class Order { private int orderId; private int foodId; private String foodName; private String oderDate; private double foodPrice; public Order(int orderId, int foodId, String foodName, String oderDate, double foodPrice) { super(); this.orderId = orderId; this.foodId = foodId; this.foodName = foodName; this.oderDate = oderDate; this.foodPrice = foodPrice; } public Order() { super(); } public int getOrderId() { return orderId; } public void setOrderId(int orderId) { this.orderId = orderId; } public int getFoodId() { return foodId; } public void setFoodId(int foodId) { this.foodId = foodId; } public String getFoodName() { return foodName; } public void setFoodName(String foodName) { this.foodName = foodName; } public String getOderDate() { return oderDate; } public void setOderDate(String oderDate) { this.oderDate = oderDate;
} public double getFoodPrice() { return foodPrice; } public void setFoodPrice(double foodPrice) { this.foodPrice = foodPrice; } } (4)总账目管理部分代码: package com.dianxin.bean; public class Money { private double zongMoney; public Money(double zongMoney) { super(); this.zongMoney = zongMoney; } public Money() { super(); } public double getZongMoney() { return zongMoney; } public void setZongMoney(double zongMoney) { this.zongMoney = zongMoney; } } 4.5系统最终效果图 (1)系统主界面
(2)菜单管理效果图
(3)顾客信息管理效果图
(4)用户登录效果图
(5)总收入效果图
五、实验心得
通过本次实验,我们复习并熟悉了各种软件平台:.NET 平台(ASP.NET/WinForm)、J2EE 平台(JSP/Servlet)、WIN32等。而且学习并加深了对数据库知识的了解。本次实验是一个学习也是一个实际工作的过程,它不仅让我对Java 开发技术有了更深一步的掌握,熟悉了数据库的连接、页面的设置等,而且使我获得了许多书本上学不到的知识。并且感谢同学和老师们的帮助和指导。