酒店点餐系统开发详解(一)

来源:互联网 发布:手机图纸软件 编辑:程序博客网 时间:2024/04/30 07:52

酒店点餐系统开发详解

——前言


信息管理系统老师让我们分组做一个信息管理系统,以让我们熟悉一下项目开发的过程,并以此锻炼自己的能力。说实话,刚开始做的时候也感觉很没底,因为我不知道这个项目最终能否成功完成,而且只有9周时间,加上这是我们第一次做这种东西,尚且编程功底不扎实,平时也只是小打小闹地做过一些东西而已。我们也只是抱着试试看和尽量做好的心态开始了这一次还算成功的项目开发。

我们组总共6人,其实就是一个宿舍的,由我做项目组组长。任务开始的前一周我们只是为做什么而犯难。我让其余5位成员提出各自的项目方案,然后由大家讨论决定做哪一个。最后经过小组讨论后,我们决定做一个点餐系统,为了简便,实际上这个项目只是专注于点菜的过程,当然要扩展起来也是不太难的。

紧接着的一周时间里,我们组用于分析系统的数据流图,得出系统大概的工作过程,为后续开发打好了基础。虽然,后来也对数据流图有些改动,但是改动并不大,所以没有影响到项目进程,没有出现“推倒重来”的现象。在这一点上我们也还算幸运,当然这也是系统分析做得好的结果,如果没有这张数据流图的指导,恐怕项目的发展也不会这么顺利。所以,项目的开发必须将系统分析做好,一旦决定了数据流图就万不可“推倒重来”了,就得沿着这条路线走下去。

经过系统分析,我们决定整个系统分为三个模块:1、系统管理端;2、顾客(点菜)终端;3、厨师(任务分配)终端。我们是根据实际的顾客就餐的过程而设计的以上3个模块。设想的是:顾客终端应该是一个放在餐桌上的电子终端,顾客通过该终端浏览菜品、选择菜品,然后经由系统管理端向厨师终端发送做菜消息;厨师终端则是放在后厨的一个电子终端,用于分配和显示做菜任务,厨师在完成前一任务后向该终端输入其厨师编号后,终端将把菜品完成的消息经由系统管理端发送到相应的顾客终端,同时显示该厨师下一任务情况;系统管理端则是放置于前台的一个终端,它负责进行菜品管理、厨师管理、收银等,它也是另两个模块通信的中转站,由管理员和收银员使用该终端。

同时,我们确定了所涉及的7张表,分别为:

1、菜品表——用于记录菜品信息;

2、厨师表——用于记录厨师信息;

3、管理员表——用于记录管理员信息和权限;

4、点菜表——用于记录顾客点菜情况;

5、做菜表——用于记录厨师所做菜品的受欢迎度;

6、拿手菜表——做菜表的视图(受欢迎度>=5);

7、销售统计表——用于记录销售情况。

后来的三周时间里就由我负责编程实现,我以每周完成一个模块的进度完成了基本的功能实现。这种速度对我而言是相当快了,因为我得重头开始学习如何用VC实现与数据库的连接,如何进行三个模块的通信,而且要实现比较可靠的通信。刚开始的时候的确感觉难度很大,但是我没乱了阵脚,我是小组组长,而且项目实现的关键在于把数据流图用VC变成可用的软件。我是抱着尽力而为的态度去做的,我不能给自己太大的压力,否则我必然倒在忧虑之下,但是我从来没有松懈。早上宿舍没电,这也强迫我花一个早晨的时间去思考,去找资料,这也使我没有完全陷入编程的泥潭中。是的,在系统开发中,我们不能将所有的时间花在电脑上,因为当你面对电脑时大脑往往是空白的,很多系统细节是会被忽略的,而且会严重浪费时间,导致系统开发进程缓慢。所以,我建议在以后的项目开发中,将早上的时间用于思考和阅读,而下午的时间用于写程序。当然,具体的安排得由你自己决定,但是我还是强烈建议一定要花些时间来思考,而不是呆坐在电脑面前。

还有一点就是,如果在编程实现过程中出现了难以解决的问题(包括bug),那一定要停下来,好好地分析一下这个问题,并且要在将其解决之后再往下进行。不然,把整个系统做好后再去解决这个问题,你可能会花上更多的时间,甚至是重写整个系统。不要认为解决某个问题会浪费时间,其实若解决了这个问题,那以后的开发过程中就可以避免该问题,这不仅能使开发进度加快,也能让未来的系统更稳定,降低维护的成本。要是在你为解决某个问题而苦苦挣扎时,老板要你继续往下开发而不管这个问题,那你应该向老板说明跳过这个问题可能带来的严重后果,如若行不通,那你还是让他另择人选,不然到时系统出问题了也肯定拿你开刀,呵呵。

最后一点就是要注意模块开发所带来的好处。在系统开发过程中一定要分模块进行,同时要尽量构建出“高内聚,低耦合”的模块,把功能独立的代码放到一个函数里,每个函数体的代码量不能太大,最好在二三十行以内,把重复使用的或相似度很高的代码段也要放到一个函数里。如果这样做了,那在以后的维护过程中,你会发现这样做的确是很有好处的,你只用修改一处就能解决多处同样的问题,更重要的是功能独立的模块使系统逻辑更清晰、简洁。不过,我们这个系统在这方面仍有所欠缺,但是我也从中获益不少,这绝对是软件开发中的“黄金法则”,记住一定要将“高内聚,低耦合”牢记于心!

再后来的两周,就主要是界面的美化和系统的纠错了,美化由小组的另一成员完成,纠错仍由我负责。恩,到此整个点餐系统便基本完成,而且基本符合我们的设想。虽不能和专业软件相比,但是我们在向专业软件靠近,因为我们小组的成员从不敢怠慢,都是认认真真的在做每一件事,哪怕是一个小小的按钮也是经过仔细设计的。“路漫漫其修远兮,吾将上下而求索”。

以后的文章中我将分模块介绍详细的设计过程,力求全面。

下图为点餐系统界面效果图:

1、系统管理端截图:

 

2、顾客终端截图:

 

3、厨师终端截图:

 

源代码下载地址:http://download.csdn.net/source/2406335 标题有误,请见谅...

原创粉丝点击