三国杀神周瑜图片:数据库语言课程设报告(餐厅点菜)

来源:百度文库 编辑:中财网 时间:2024/05/03 10:54:32

 

数据库语言

课程设计报告

 

 

题目:餐厅点菜管理系统

 

 

 

学     院   经济与管理学院      

专     业     工商管理         

班     级       093           

学     号     3090511075        

姓     名       郑凡            

指导教师     杜占河/李明         

 

 

 

               2010.12.27至2010.12.31

   ***数据库语言设计与开发***

目录

 

1.      引言………………………………………………………………………03

 1.1选题背景………………………………………………………………..03

 1.2系统目标………………………………………………………………..03

2.系统分析…………………………………………………………………...04

 2.1选择开发工具…………………………………………………………...04

 2.2功能设计………………………………………………………………...05

3.系统设计…………………………………………………………………...05

 3.1系统数据库设计………………………………………………………..05

 3.2系统的主要功能………………………………………………………..06

 3.3输入程序设计…………………………………………………………...07

 3.4多表查询程序的设计…………………………………………………..19

 3.5系统报表打印模块的设计……………………………………………..20

  3.5.1厨师报表…………………………………………………………….20

  3.5.2菜谱报表…………………………………………………………….21

4.主要功能及程序界面说明………………………………………………...21

 4.1进入界面功能程序说明……………………………………………….,22

 4.2主界面功能程序说明…………………………………………………..23

 4.3顾客登陆界面功能程序设计…………………………………………..24

 4.4密码维护界面功能程序设计…………………………………………..24

 4.5顾客点菜界面功能程序设计…………………………………………..25

 4.6顾客查询界面功能程序设计…………………………………………..25

5.系统的主要优点与不足…………………………………………………...25

 5.1优点……………………………………………………………………..26

5.2需要进一步改进的地方………………………………………………..26

6.总结………………………………………………………………………...26

6.1 课程设计中遇到的主要问题及解决办法…………………………….26

 6.2主要收获………………………………………………………………...27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1引言

   如今社会餐厅随处可见,餐饮业的发展竞争日趋激烈,餐厅点菜的手工登录与查询,服务项目多、信息量大,要想提高劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理是一项非常繁重而枯燥的劳动,耗费许多人才和物力,而且会因人的情绪烦躁而出现失误,因此在计算机飞速发展的今天,应用数据库技术实现餐厅点菜的计算机管理是可行而必要的工作 。本课程设计旨在对餐厅点菜实现计算机管理,提高工作效率,提高管理水平。

1.1选题背景

点菜系统是以处理餐饮业务为核心,以规范运行流程、提高工作效率、提升服务质量、提高运营效益为目标的餐饮信息化管理系统,旨在全面提升客户的管理水平,增强企业的市场竞争力和赢利能力。好多新的高科技产品已经在市场上流动,点菜系统将有很大的发展前景。内容(宋体,五号)

1.2系统目标

我设计的这个点菜系统主要是从三方面考虑的,主要是想让顾客很方便的点菜,让厨师了解每个餐桌点的菜单和让管理人员随时了解餐厅的各种情况,知道每个餐桌的消费情况,便于餐厅的管理。为了方便管理,饭店制作该系统有助于减少管理人员的工作量,而且有助于提高工作效率,大量减少错误,更有可能大量减少饭店人力开支。饭店每天的客流量会产生的大量数据以及许多与之相关联的数据,饭店需要对这些数据进行储存,并按照一些特定的方式对这些数据进行细致的分析和整理,从而保证自己的工作按序进行,这有利于提高工作效率,便于统一管理。数据库应用数系统就是为支持一个特定的目标,把一切与该事物相关的数据以某种方式进行存储,并围绕这一目标开发程序。通常把这些数据、数据模式以及应用程序的整体称为一个数据库应用系统。用户可以方便地操作该系统,对他们的业务数据进行有效的管理和加工。与此同时,用这种系统还能帮助管理人员更好的了解顾客的需要,,厨师也能随时知道顾客的要求.这样有利于该饭店的发展.

 

 

2系统分析

   勇卿餐厅点菜管理系统开始是一个进入界面,此界面为主界面,有四个选项卡,选择哪个岗位登陆和一个修改密码界面,先是厨师登录,厨师进入以后可以查询当前的餐桌号的点菜情况,以便于做菜方便;第二个是管理人员登录,管理人员进入后查询当前餐桌的消费情况,便于饭后结账;第三个是顾客进入系统 ,顾客可以通过里面的选项卡查询菜单,点菜,添加,删除等功能;最后一个是密码维护,密码主要是针对厨师和管理人员 ,定期修改密码,可以对系统进行保护。

2.1选择开发工具

必须在Windows98以上操作系统下完成设计,因为Windows是目前最流行的操作平台,人们对微机的所有操作几乎都建立在这个平台之上。根据同学们以前的学习情况,决定采用以下开发环境和工具:Visual Foxpro 6.0程序设计语言。

原因是:第一,我们已经学过了VF语言;第二,VF是使用广泛的程序设计语言,功能也比较强大。

 

2.2功能设计

餐厅点菜信息管理,主要包括厨师表,菜谱,管理人员表等内容,为方便起见,厨师表和管理人员表只是单独的起查询作用,只有在点菜表单中体现添加和删除功能 ,各个系统都是由表单连接的。

对这些数据,按统计查询和报表输出的要求,进行合理的组织,以满足用户的要求。在计算机飞速发展的今天,调用数据库编写管理软件,已是很成熟的技术,关键是如何实现设计要求,如何设计出友好的人机界面,使程序运行稳定、使用方便、操作简便。

3 系统设计

3.1 系统数据库设计

关系型数据库产品具有以下一些特点:

l      可以定义数据库中的各种对象;

l      可以很方便地操纵数据库中的各种数据;

l      可以有效地控制数据库的安全性;

l      可以确保数据库中的数据的一致性和完整性;

利用关系型数据库的特征,将餐厅数据库设计为1个数据库,包含4个数据库表:

厨师信息表:包涵厨师的基本信息有工号(作为厨师登陆的密码)

姓名,性别,工作时间,照片等信息。

             

     厨师信息表

 字段名

类型

长度

 工号

字符型

10

姓名

字符型

10

性别

字符型

2

出生日期

日期型

8

工作时间

日期型

8

照片

通用性

4

        

  2)顾客点菜信息表包含顾客所在桌号,点的菜单,和总计价等字段,可以让厨师,管理人员清楚的了解顾客的消费请况。

         顾客点菜信息表

 字段名

类型

长度

桌号

字符型

10

顾客菜单

字符型

10

总计价格

数值型

8

厨师

字符型

10

工号

字符型

10

                   

3)管理人员信息表包涵管理人员的基本信息有工号(作为管理人员登陆的密码)姓名,性别,工作时间,照片等信息

   管理人员信息表  

字段名

类型

长度

姓名

字符型

10

性别

字符型

2

职位

字符型

10

出生日期

日期型

8

职工号

字符型

10

照片

通用型

4

4)菜单信息表详细的说明了该餐厅的菜谱。

                    菜单信息表

字段名

类型

长度

菜编号

字符型

10

菜名

字符型

10

单价

数值型

8

厨师

字符型

10

照片

通用型

4

 

3.2 系统的主要功能

功能模块开发

厨师登陆界面

管理人员登陆

密码维护

 

 

 

 

顾客登陆

 

 

 

勇卿餐厅点菜管理管理系统

菜单信息

顾客信息

顾客信息

价格信息

菜单信息

点菜信息

用户登录

密码修改

数据库的结构设计

功能模块测试

系统调试

系统试运行和修改

 

 

 

 

 

 

 

 

系统功能结构图

 

 


3.3 输入程序设计

1)开始界面程序设计

确定按钮:

do form 登录表单

退出按钮:

Thisform.release

2)主登陆界面:

Do form 厨师登录表单

Do form 管理员登录表单

Do form 菜单表单

Do form 修改密码

3)厨师登陆界面

Command1(第一个)程序代码:

goto top

this.parent.command1.enabled=.f.

this.parent.command2.enabled=.f.

this.parent.command3.enabled=.t.

this.parent.command4.enabled=.t.

thisform.refresh

Command2(上一个)程序代码:

skip -1

if bof()

=messagebox('已是第一个记录!',48,'信息窗口')

this.parent.command1.enabled=.f.

this.parent.command2.enabled=.f.

goto 1

else

this.parent.command1.enabled=.t.

this.parent.command2.enabled=.t.

endif

this.parent.command3.enabled=.t.

this.parent.command4.enabled=.t.

thisform.refresh

Command3(下一个)程序代码:

skip

if eof()

 =messagebox('已是最后一条记录',48,'信息窗口')

 this.parent.command3.enabled=.f.

 this.parent.command4.enabled=.f.

goto bottom

 else

 this.parent.command3.enabled=.t.

 this.parent.command4.enabled=.t.

endif

 this.parent.command1.enabled=.t.

 this.parent.command2.enabled=.t.

 thisform.refresh

Command4(最后一个)程序代码:

goto bottom

 this.parent.command1.enabled=.t.

 this.parent.command2.enabled=.t.

 this.parent.command3.enabled=.f.

 this.parent.command4.enabled=.f.

 thisform.refresh

Command5(退出)程序代码:

thisform.release

4)管理人员登录界面:

确定按钮

SELECT(thisform.dataenvironment.cursor2.alias)

use 管理人员

loca for 姓名=alltrim(thisform.text1.value) and 工号=alltrim(thisform.text2.value)

if found()    

    =messagebox("登陆成功")

  do form 管理人员表单

else

   =messagebox("用户名或密码不正确")

endif

return

重试按钮

thisform.text1.value=""

thisform.text2.value=""

thisform.refresh

取消按钮

thisform.release

运行界面

5)管理人员登陆界面

Command1(第一个)程序代码:

goto top

this.parent.command1.enabled=.f.

this.parent.command2.enabled=.f.

this.parent.command3.enabled=.t.

this.parent.command4.enabled=.t.

thisform.refresh

Command2(上一个)程序代码:

skip -1

if bof()

=messagebox('已是第一个记录!',48,'信息窗口')

this.parent.command1.enabled=.f.

this.parent.command2.enabled=.f.

goto 1

else

this.parent.command1.enabled=.t.

this.parent.command2.enabled=.t.

endif

this.parent.command3.enabled=.t.

this.parent.command4.enabled=.t.

thisform.refresh

Command3(下一个)程序代码:

skip

if eof()

 =messagebox('已是最后一条记录',48,'信息窗口')

 this.parent.command3.enabled=.f.

 this.parent.command4.enabled=.f.

goto bottom

 else

 this.parent.command3.enabled=.t.

 this.parent.command4.enabled=.t.

endif

 this.parent.command1.enabled=.t.

 this.parent.command2.enabled=.t.

 thisform.refresh

Command4(最后一个)程序代码:

goto bottom

 this.parent.command1.enabled=.t.

 this.parent.command2.enabled=.t.

 this.parent.command3.enabled=.f.

 this.parent.command4.enabled=.f.

 thisform.refresh

Command5(退出)程序代码:

thisform.release

6)运行界面

顾客登陆界面

前四个同上

查询按钮

Do form 查询表单

添加按钮

Do form 添加表单

添加表单界面

添加按钮

select 菜谱表

yhm=allt(thisform.text1.value)

mm=allt(thisform.text2.value)

gly=val(allt(thisform.text3.value))

insert into 菜谱表(菜编号,菜名,单价) values(yhm,mm,gly)

取消按钮

thisform.release

运行界面

删除按钮

p=messagebox("你确定要删除吗?",33,"提示")

if p=1

      select 菜名

      delete

      pack

endif

thisform.refresh

点菜按钮

Do form 点菜表单

运行界面

 

 

菜单信息录入界面

 

移入按钮程序代码:

for i=1 to thisform.list1.listcount

if thisform.list1.selected(i)

      thisform.list2.additem(thisform.list1.list(i))

endif

endfor

去除按钮程序代码:

 i=1

do while i<=thisform.list2.listcount

  if thisform.list2.selected(i)

    thisform.list2.removeitem(i)

else

 i=i+1

 endif

enddo 

 

6)密码维护

确定按钮

set exact on &&打开精确比较

if empty(thisform.text1.value)

   messagebox("姓名不能为空!")

   thisform.text1.setfocus

else

   xm=alltrim(thisform.text1.value)

   xmm=alltrim(thisform.text2.value)

   qrmm=alltrim(thisform.text3.value)

   locate for allt(姓名)=xm

   if  found()

       if xmm=qrmm

          update user set 工号=xmm where allt(姓名)=xm

            thisform.text1.value=""

            thisform.text2.value=""

            thisform.text3.value=""

          messagebox('密码修改完成!')

       else

            messagebox('密码不一致,请重新输入密码!',48,'警告!')

            thisform.text2.value=""

            thisform.text3.value=""

            thisform.text2.setfocus

       endif

   else

       messagebox('无此人!',48,'警告!')

       thisform.text1.setfocus

   endif

endif

thisform.refresh

返回按钮

do form 登陆界面

thisform.release

3.4多表查询程序的设计

 

 

3.5系统报表打印模块设计

1)厨师报表

 

2)菜谱报表

4.主要功能及程序界面说明

1

进入界面设计

 

功能简介:让顾客了解到餐厅的正式性,让顾客满意,放心的食用,开始按钮表示可以开始进入主界面退出则返回该系统。

2

                       主界面设计

功能简介:简单明了的主页面,厨师,管理人员,顾客通过登录该界面获取各自需要的信息,节省了时间,同时节省了人力资源。

3

顾客登陆界面

功能简介:此界面可以让顾客完成查询点菜等功能,查看菜单,点菜等,对顾客来说更加简单快捷方便九个单选按钮组完成对顾客的需求。

4

密码维护界面

功能简介:此界面可以完成对密码的修改与维护,定期的修改密码可以对系统的安全性进行保护,有利于系统的防护。

5

顾客点菜表单界面

功能简介:通过该菜单信息录入界面,顾客可以明确的了解到饭店供应的各种菜式,同时可以自主的选择自己喜欢的菜肴。通过此操作,顾客就将所选的菜谱传到厨师界面,让厨师知道顾客的需要,简单方便。

6

                厨师查询表单界面

功能简介:厨师通过登录该系统能够准确的知道那个餐桌需要那种菜式,能够大大的降低出错几率。同时节约了人力资源成本。一举多得,简单明了。

5.系统的主要优点和不足

5.1优点

通过这个简单的饭店管理系统,饭店管理人员能够很清晰的了解到顾客的需要,并满足顾客的需求,同时能加强顾客与饭店的联系.对于厨师而言,通过厨师登陆页面,能够清晰的知道顾客的需要的信息,大大的减少了出错几率,提高顾客的满意度.同时节省了时间,节省了人力资源.一举多得.对于顾客而言,通过登陆饭店主业面,能很好得了解到饭店的信息,如采谱,厨师的信息等,增强顾客对饭店得了解.这样能够很好的促进饭店的发展.而且方便了饭店的管理.增大了工作效率.

5.2需要进一步改进的地方

在为期一个礼拜的实际操作中,,终于做出了一个简单的软件,虽然这个软件的功能非常的简单,而且我知道,在实际的运用中,还有很多不足之处。因为饭店所包含的内容非常的丰富,我涉及到的仅仅是其中管理的一部分简单内容,离实际的顾客及饭店的需求肯定还有很大的差距。例如厨师工资管理和饭店人事管理,考勤管理以及财务帐表的关联考虑得还不完善。最好是这几部分之间的数据可以相互利用转化,不需要重复的输入有关的数据。针对工资管理,还应该建立一个有普遍意义的模型,这样对管理用户来说,就比较容易通过修改有关管理制度来适应我们开发的软件。

由于我的知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不够醒目等问题,我会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美。

在本系统的设计过程和论文编写过程中,很多老师和同学都给予了我许多的帮助,尤其是我的老师给我提出了很多宝贵的修改意见,在这里,我向这些无私帮助我的人表示衷心的感谢。

6.总结

6.1 课程设计中遇到的主要问题及解决办法

       主要的问题出在设计活动信息查询表单的时候,因为表的信息为日期时间型,输入的数据为日期型,两种类型的数据不知道怎么转换到一起进行运算,后再老师的指导下灵活运用dtoc和ctod函数转换成功。

6.2主要收获

在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常的漂亮,总希望自己的软件也非常的完善,但是,经过二个月的学习,发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验。我认清自己的能力后,我就特别注意在工作的过程中不贪图大而全,而是根据自己的能力,制定适当的目标。

一些以前没有学得很杂实的课程的内容,由于需要在实践中运用,刚开始我也感到很头痛。但回过头再去看有关的教科书,经过一段时间的钻研,对与这些知识点的相关的背景,概念和解决方案理解得更透彻了,学习起来也越来越有兴趣,越来越轻松。

另外我还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展经过几天的努力我完成了课程设计。在没有做课程设计以前觉得课程设计只是对这学期来所学知识的单纯总结,但是通过这次做课程设计发现课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来知识还比较欠缺。同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学,还衷心感谢我的指导老师的认真细致的指导。知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。。