酒店管理系统

来源:互联网 发布:ubuntu 换源 电信 编辑:程序博客网 时间:2024/04/29 02:36

最近几天看了刘双印老师给的一个关于java的一个“酒店管理系统”。发现有很多自己之前没有的 java面向对象的思想,在这里总结一下这个项目的开发过程,最重要的是学习何如开发项目。
1 这个项目是关于酒店管理的,实现过程如下:
(1)首先要知道系统要实现那些具体功能,比如开台签订工作;自动结转工作区等等
(2)数据库的设计,这个是很重要的。数据库的正确使用是保障系统安全的首要措施。首先画出E-R图,在数据库里面建立我们项目开发的表格, 然后再create 视图。

(3) 创建项目;在开发工具中建立自己的项目,建立相应的包。java文件可以先不建。 根据实际情况 ,建不同功能模块放到不同的包中。比如:用户管理模块的实现放在com.mwq.frame.User包中;结转报表模块放在 com.mwq.frame.manager包中。这样调理就变得清晰,也有利于系统的修改和维护。

(4)公共模块:主要有数据库;自定义组件;正则表达式;
1 数据库:在com.mwq.dao包中有3个文件;JDBC.java 这个文件主要是“加载数据库的驱动”(static代码区中,好处是只在这个类第一次被加载时调用)还有就是数据库连接和断开的方法。BaseDao.java包中主要是 数据库的具体操作.比如数据库的“多记录查询”“单记录查询”“多值查询”“单值查询”还有就是数据库的“更新”操作的具体实现代码。入口参数都是SQL语句。Dao包主要是封装访问数据库的sql语句,在调用BaseDao实现. 实现这个包之后就可以在想要的时候操作数据库就方便多了。
2自定义组件;在com.mwq.wswing包中,里面有个MPanel类,这个类重写后可以添加背景图片等等功能;MTable类重写后具有不可重排,不可编辑等等功能;在MfixedColumnTable.java 中定义了“带有固定列”的个性化表格,构造方法里面有3个参数,只要传入参数就可以实现这样的表格.这种表格也是经常使用的(假如你经常使用java-swing开发系统),可以打包成jar文件。以后就不用再写代码了。
3正则表达式主要“验证数据的合法性”;
/前面可以说是为开发做的前期准备,下面是开发的具体实现/
(5)主窗体设计;这个可以说是最重要的一道程序。TipWizardFrame.java(com.mwq.frame包)中,这里不仅实现了有关系统界面的设置,同时主要的系统功能都是在这里设置的。等等再说说系统功能;窗体效果如下:

(6)用户登录界面;效果如下:

(7)具体功能模块设计。包括“开台签单”“自动结转”“报表管理”“后台管理”

2 自己对这个项目的看法:
要完全看懂这个项目的全部实现代码;java的基础思想,还有swing要很熟悉才行。我自己是有些看不懂的,但看懂思路是可以的。学习swing,更多的是为了学习java面向对象的思想,所以只知道swing的部分思想和大部分内容。其中TipWizardFrame类是最重要的:这个类里面有主界面的全部组件,这样就可以在这个类中”随意“操作他们。这点是很重要的,不然只能通过引用的方式来实现操作(就比较麻烦了)。我们看着这个主窗体:最上面是一张图(放在自定义的MPanel组件中);下面是用来管理“签订列表”“开台列表”的一个“水平拆分窗体”。这个窗体设置了UI小部件. 同时左右都是带表格组件的面板。再看下面部分:是“开台签订列表”;这里面的组件几乎是注册了Listener的。具体实现也不难,可以看看里面的代码。 最下面从左到右,第一个是日历。这个也是不难实现的。在com.mwq.tool包中有关today.java类,这个类是自定义的“日期格式化”(通过Calendar实现)。最难实现的是“时钟”这个通过自定义Time类,使用多线程实现的(new Time().start();)。中间的是“自动结转”,这个也是差不多的。主要就是事件的处理。做右边的是几个功能模块;分别是菜单,菜系管理;报表管理;用户管理。 报表管理在com.mwq.frame.check_out包中。有日结账(使用到自定义“带有固定列的表格”),月结转(同上) ,年结转报表。 这里是通过数据库来获取数据的(操作com.mwq.Dao包),不过对时间的控制是要注意的,比如要考虑平年2月的天数等。要看具体的实现可以自己去看源代码。
3 最后附上项目文件(全部代码+数据库)
百度云:http://pan.baidu.com/s/1i4puVad
密码:6q58

0 0
原创粉丝点击