小型饭店信息管理系统论文
更新时间:2024-03-30 00:05:01 阅读量: 综合文库 文档下载
小型饭店信息管理系统 1
第1章 绪论
1.1 系统开发背景
在饭店行业竞争激烈的今天,如何借助现代科技,实现现代化管理,使饭店经营管理一体化,是现代饭店管理成功的关键。先进科学技术为饭店提供了全面科学化、数字化、效率化和精细化的管理。科技已成为饭店业关心的焦点。饭店业的发展将进入信息与科技时代。科技在饭店中的应用与发展已是必然趋势。环保技术在饭店的应用已越来越广泛,它为饭店节能降耗、降低成本以及改善饭店环境提供了强有力的支持。新的环保技术和环保产品在饭店业的应用已成为新潮流。 饭店业属于以人为本的劳动密集型服务行业,由于行业间本质上的差异,部分技术密集型行业,把最先进的产品设备或解决方案推销给饭店,其结果通常是饭店付出了昂贵的代价却不尽如人意。由此,许多饭店人士也发出感慨,饭店需要更为实用的科技产品,为饭店经营提供服务,因此我们在感受部分饭店科技、智能化水平落后的同时,也需要明晰科技的实际应用:技术功能与饭店需求是否错位?饭店面临的关键问题是什么?供应商和饭店在利益上是否一致?等等。
饭店是一个以服务为本的行业,依靠客人对各项服务的满意度来提升饭店的入住率和经营效益。饭店科技、信息化的实施,意味着饭店又增加了一项新的服务,即信息服务。许多行业外公司负责策划和实施,但通常不承担日后的服务,因为他们不属于服务行业。然而,倘若服务的责任落到饭店自身头上,饭店能应付的了吗?由于服务不到位,使系统不能充分发挥作用的已屡见不鲜,怎样来为饭店提供服务呢?
饭店科技的发展趋势是什么?
“饭店智能管理”作为一个综合概念,给饭店业带来经营管理理念的巨大变革。这一变革要经过不断的建设和发展,渐渐形成一个涵盖数据采集、信息保存、信息处理、传输控制等。这些信息库的建立将成为饭店信息化管理和办公自动化的重要基础。从前台客人入住登记、结账到后台的财务管理系统、人事管理系统、采购管理系统、仓库管理系统都将与智能管理系统连接融合构成一套完整的饭店科学信息化体系,不同类别、不同管理模式的饭店需求是不同的,如何根据不同的饭店需求为饭店提供科学信息化系统,对饭店科技配套商家也是一项挑战。
正是基于这样一个理念,我们决心开发一个中小型饭店管理系统,科技化,信息化我们的中小饭店,让饭店的管理更加科学,更加合理。 1.2 我的构想
下面我将简要介绍一下我对饭店信息化的一些构想:
直接饭店消费
饭店上游供应商
中小型饭店 最终顾客 通过网站了解,朋友介绍潜在顾客
以饭店为中心的信息共享平台 陕西科技大学毕业论文(设计说明书) 2
以客户为中心的CRM管理系统及饭店网站 图1-1 饭店信息构想
我作为一个饭店的经理,首先第一要解决的问题是采购问题。第一,找客户。我希望在当地的各个菜市场中找到一些质量好而且价格又相对便宜的供应商。我相信这些供应商也希望能够找到一些稳定的,效益好的客户。这样的话,当在我们之间建好一个平台,让我们彼此都能自由的选择对方!这就好像将一个大型的经济交流会放到了网上,而且这个交流会一刻也不会停,每时每刻都在交易。这样那些好的供应商依靠自己物美价廉的产品自然会找到自己的客户,同时省去了大量的交易成本。第二,与供应商合作。当我们饭店与供应商建立了合作关系后,我要让我们的合作都要信息化。我要把我们饭店的存货信息实时地在我和供应商的平台上公布,这样的话,当供应商见到我们的存货信息达到了需要供应的数量时,他们会结合我们饭店的需求订单自发的供应蔬菜等产品。这个平台的建立最好由第三方来建立。
接下来要解决的问题是企业的内部管理问题。这个问题主要就是要靠我们现在这个软件来实现。对于我们这个小型的饭店来说,主要的收入来源就是靠卖饭菜来实现的!所以我们这个系统也就主要围绕这个点菜功能来实现的。在和一些小型饭店的老板交流过程中,我们仔细研究了他们的需求后。总结出简单,易用,数据准确,提供财务分析功能这样几个重要的功能。所以我们的软件也就主要针对这几个方面。在此软件的开发过程中,我们参考了一些市场的用得较多的饭店管理软件,以及点菜系统以后,我们根据我们所能采用的技术层次,挑选了一些他们的实现方式,运用我们的技术来实现点菜功能。而对于套餐设置这块,我们也是自己尝试地使用了一些我们认为客户操作比较方便方式来实现。还有在信息管理这个模块上,我们调查了这些饭店老板在经营决策上最希望得到的信息,我们具体实现了这些信息的查询方式。还有在资料的管理方式上,我们将资料的录入,查询,修改,删除都放到了一个页面中去进行,就是为了实现简单这个特点。而在用户权限设置这个模块中,我们采取了行业应用软件普遍的方式来进行设置,易用,方便。在下面的几个章节中,我们会陆续地向您介绍这个软件的功能及设计过程 。
第三,客户对于一个饭店来说,是置关重要的!所以对于客户的管理也必须为重中之重。我们在这个方面,主要采取的是方针是:在饭店内部,建立客户关系管理系统,而将饭店的网站直接面对客户。在客户关系管理这块,我们在软件并没有实现,有待于今后扩充,而饭店的网站,我们也已经初步建立。便于常客管理管理和查询自己的信息。还有一点值得说明的就是。客户光临饭店后,可以在自己所坐的座位上点菜,而没有必要到前台去点菜。关于它的实现,我们为了便于在您面前演示,我们采用了浏览器浏览的方式进行。
以上就是自己在做这个系统过程中,总结出的一些想法。这些想法在市场上已经有了很多成功可行的实施方案,而对于我来说,这只是个开始,而且是未知的领域,我得去加把劲,在未来的工作岗位上继续学习,继续努力才能不断有前瞻的想法,有领先的技术。
小型饭店信息管理系统 3
第2章 开发工具介绍
2.1 delphi技术简介
Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言
陕西科技大学毕业论文(设计说明书) 4
(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。 Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。 在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。 2.1.1 面向对象编程的概念
面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。一些早期的具有OOP性能的程序语言如C++,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。Delphi的推出,填补了这项空白。您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的Object Pascal语言。这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起来。 delphi环境
为避免隐藏在Delphi后的Program Manager和曾经运行过的其它程序扰乱版面,分散您的注意力,不妨在启动Delphi前关掉其它应用程序;启动Delphi后,再最小化隐藏在后面的Delphi 2.0程序组。这样屏幕上就只留下Delphi窗口可见了。 首次加载Delphi,屏幕上会出现四个窗口:
小型饭店信息管理系统 5
(1) 标题为“Delphi-Project1”的Delphi主窗口 (2) Object Inspector窗口
(3) 标题为“Form1”的窗体(Form)窗口
(4) 标题为“Unit1.PAS”的代码编辑窗口。刚启动时这一窗口的大部分被“Form1”窗体所掩盖。将“Form1”窗体移开,或单击Form1窗体下方的状态行,可以使其全部可见。在“Form1”窗体的任意可见位置单击鼠标,可以恢复主窗体可见 以下我们将对这四个窗口分别进行介绍。 2.1.2 Delphi可视化编程环境介绍 (1)主窗口(Main Form)
Delphi的主窗口位于屏幕的上端,包括Menu(菜单)、Speed Bar(加速条)和Component Panel(部件选项板)。Menu是下拉式主菜单。Speed Bar位于主窗口的左下端,由两排共14个加速按钮组成。这些按钮是菜单功能的快捷方式,各种图标直观地表示了它能执行的动作。Component Panel由一行、若干页对象按钮所组成,利用它来选择需要的部件并将它放到窗体中去。 (2) Object Inspector(对象检视器)
Object Inspector窗口含有两页:Properties页显示窗体中当前被选择部件的属性信息,并允许改变对象的属性;Events页列出了当前部件可以响应的事件。按动Object Inspector下端的“Events”页标签,使得Events页可见,这一定的事件后边的空白处,可以定义对象接受到相应事件时执行的动作。首次启动时,Object Inspector窗口显示的是当前窗体Form1的属性。Object Inspector根据对象属性的多少,决定是否有滚行显示。移动滚行条,可以查看当前对象的全部属性。
此外,Object Inspector上还有Object Selector(对象选择器),位于Object Inspector上方的下拉式菜单中。它显示了窗体上所有部件的名称和类型,也包含窗体本身。您可以用Object Selector很容易地在窗体的各个部件之间切换,也可以快速地回到窗体本身。当窗体中含有较多的对象时,您会发现这是切换对象尤其是回到窗体的最快捷途径。
想使Object Inspector一直可见,可将鼠标移到Object Inspector上,按动右键,以启动Object Inspector的弹出式菜单,将其设置为Stay On Top。这对初学者常是一个很重要的设置方式。
(3)窗体窗口
Forms窗口是开展大部分设计的工作区域。首次启动Delphi 2.0时显示的是窗体Form1。可以把部件放在窗体中,通过移动位置、改变尺寸等操作随心所欲地安排它们,以此来开发应用程序的用户界面。您可以把窗体想象成一个可以放置其它部件的容器。窗体上有栅格(Grids),供放置部件时对齐位置用,在程序运行时Grids是不可见的。
一个真正的应用程序可能有不止一个窗口,您可以选用不同的窗体进行设计。其它窗体可以是对话框(Dialog Box)、数据录入框等。
陕西科技大学毕业论文(设计说明书) 6
(4)代码窗口
代码窗口一开始处于窗体窗口之下。因为在Delphi中,设计用户界面直接在窗体中进行,运行结果和设计样板完全一致。当部件被放到窗体上时,Delphi会自动生成大部分的用户界面代码。您所应做的只是在它为您生成的框架中加入完成所需功能的程序段而已。点动Form1的状态行使代码窗口可见。
这个窗口中是代码编辑器。可以在其中书写Delphi应用程序的源代码。当程序中含有不止一个窗口时,会有几个库单元的源程序出现在代码编辑器中。代码编辑器的标题条中显示了当前正在编辑的库单元文件名。要查看某一特定程序的源代码,只需用鼠标点动写有该库单元文件名的页标签,就可以对该库单元进行编辑了。 delphi 7 特点
Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在Pascal语言的基础上发展起来的,简单易学。
Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,如DesktopDataBase Expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如Borland公司的资源编辑器(Resourse Workshop)。
在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。
Delphi发展至今,从Delphi1、Delphi2到现在的Delphi7,不断添加和改进各种特性,功能越来越强大。Delphi5添加了对IDE(集成开发环境)的很多改进新特性,扩展了数据库支持(ADO和InterBase数据库),带有Internet支持的MIDAS改进版,TeamSouse版本控制工具,转换功能,框架概念以及很多的新组件与新特性。
Delphi7功能十分完善和强大,本栏目将以它为基础,介绍Delphi的开发环境、基本概念、控件的使用、常用的编程方法和编程技巧。本栏目的对象为Delphi初学者,主旨是帮助初学者更快更好掌握Delphi基本的编程方法和技巧。
为满足不同层次开发人员需要,delphi 7 共有4个版本:
Pesonal:个人版,提供初学者和一般用途开发人员的版本.
Professional:专业版,适用于专业开发人员进行较高层次实际开发的版本. Enterprise:企业版,适用于企业开发人员进行多层次数据库开发的版本.
Architer Edition:架构版,包含可了企业版的所有功能。另外增加了Boldsoft公司的Bold工具的专Delphi专用版本. 2.2 SQL SEVER 的介绍 SQL的历史
小型饭店信息管理系统 7
在70年代初,E.E.Codd首先提出了关系模型。70年代中期,IBM公司在研制 SYSTEM R关系数据库管理系统中研制了SQL语言,最早的SQL语言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。
1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:
(1) 国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”
(2) 美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的关系数据库管理系统支持某些形式的SQL语言,大部分数据库打算遵守ANSI SQL89标准。
SQLSERVER2000 特性简介
上手容易
话分两头,如果您的企业至今还未购置数据库,其中一个主要的原因可能就是认为它不好上手,那么,从SQL Server开始吧。毕竟,大多数的中小企业日常的数据应用是建立在Windows平台上的。由于SQL Server与Windows界面风格完全一致,且有许多\向导(Wizard)\帮助,因此易于安装和学习,有关SQL Server的资料、培训随处可得,并且目前国内具有MCDBA认证的工程师不在少数。从另一个角度来讲,学习SQL Server是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。因为这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。但有了SQL Server的基础,再去学习和使用它们就容易多了IT行业的实践经验充分证明了这一点。
兼容性良好
由于今天Windows操作系统占领着主导地的位,选择SQL Server一定会在兼容性方面取得一些优势。另外,SQL Server 2000 除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮 XML 数据,可以将搜索结果以 XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET 战略中发挥着重要的作用。
相对于7.0的忧越性
Microsoft SQL Server 2000是在SQL Server 7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。SQL Server 2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。
陕西科技大学毕业论文(设计说明书) 8
电子商务
在使用由Microsoft SQL Server 2000关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。你还可以使用Hypertext Transfer Protocol(超文本传输协议,HTTP)来访问SQL Server 2000,以实现面向SQL Server 2000数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)多维数据集。
数据仓库
Microsoft SQL Server 2000非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势,它允许组织或机构最大限度的从数据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。 增强的在线商务
Microsoft SQL Server 2000简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。其中,用以提高可靠性的特性包括日志传送、在线备份和故障切换群集。在伸缩性方面的改进包括对多达32颗CPU和64 GB RAM的支持。通过自动优化和改进后的管理特性--诸如数据文件尺寸的自动管理、基于向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理,在线商务应用程序能够被迅速部署并有效管理。
利于构筑“敏捷性商务”
所谓“敏捷性商务” 就是能够打破内部和外部的商业界限,对迅速改变的环境做出快速反应。微软已经与关键的合作伙伴建立起了战略关系,创造出了能够与许多供应商的产品实现整合的解决方案,因而企业用户并不需要做出\要么完全接受,要么全部不要\的承诺。在部署解决方案的过程中,企业用户不一定要拆除原有的设备从头。敏捷商务让企业用户能够充分利用现有的系统,自主决定所需的硬件和软件解决方案以及由谁来提供,伸缩自如、游刃有余。 2.3 TQuery部件的使用
TQuery部件是一个数据集部件,它在Delphi部件选择板上的数据访问页(Data Access)上,它与TTable部件具有很多共同的特性,我们在第十五章“数据访问部件的应用及编程”中较详细地进行了介绍。 TQuery 部件在 SQL 编程中占居了十分重要的地位。 它实现了Delphi对SQL语言的支持,在Delphi开发的数据库应用中,SQL语句是通过TQuery部件传递到要访问的数据库系统的数据库引擎中,由数据库引擎具体执行SQL语句,以实现对数据的操作,而不是传递给Delphi中的BDE,由BDE实施具体的SQL动作。
我们已经知道了TTable部件在访问数据库时已经具备很强大的功能。TTable部件通过Delphi内置的BDE可以实现对各种数据库系统的访问,然而TQuery部件提供了一些 TTable部件不具备的功能,它们是:
小型饭店信息管理系统 9
(1)多表联接查询
(2) 复杂的嵌套查询(Select中包含着Select子查询) 明确需要按SQL语言进行的操作
(3) 因为TTabel部件不能使用SQL语言,而在TQuery部件可以使用SQL语言,因而TQuery部件也就具备了强大的关系查询能力。当然这也使数据库应用程序本身变得更复杂了。
在Delphi应用程序中编写和使用的SQL语句有两种:即静态SQL语句、动态SQL 语句。静态SQL语句是在程序设计阶段,将SQL命令文本作为TQuery部件的SQL属性值设置。而动态SQL语句编程是SQL语句中包含一系列的参数,在程序运行过程中各参数值是可变的,即可以动态地给SQL语句中的参数赋值。
静态方式是把SQL命令文作为TQuery部件的SQL属性值进行设置,这样,当执行应用程序时,Delphi便执行TQuery部件SQL属性中设置的SQL命令。如果是SQL中的查询命令,把TQuery部件通过TDataSource部件与数据控制部件相连,查询的结果将会显示在与 TQuery部件相连接的数据浏览部件中。动态SQL语句是指SQL语句中包含一些参数变量,在程序中可以为这些参数赋值,在程序运行过程中,各个参数值是变化的。TQuery部件的SQL 属性中的SQL语句的编写也有两种方法,一种方法是在程序设置阶段便将相应的SQL语句写入到TQuery的SQL属性中,另一种方法是在Delphi开发的应用程序将SQL语句,包含在Pascal代码单元中。 在SQL编程中使用TQuery部件的具体方法步骤如下:
(1)为TQuery部件设置DatabaseName属性,它可以是用BDE建立的数据库的别名,或桌面数据库系统中的目录名或数据库服务器中的文件名,如果在应用中使用了TDatabase 部件,那么TQuery部件的DatabaseName属性可以是TDatabase部件中定义的一个数据库别名。详细情况请参看“TDatabase部件的使用”;
(2)为TQuery部件设置SQL属性,TQuery部件的SQL属性值就是应用程序要执行的SQL 命令文本,设置SQL属性有两种方法:
在程序设计过程中,我们可以通过对象浏览器(Object Inspector)编辑SQL属性在Object Inspector中选择SQL属性,这样会打开String List Editor窗口,在其中我们便可以编写SQL命令,我还可以打开Visual Query Builder来编写SQL命令 (只有Delphi的客户/服务器版本才具有这一工具)。 (3) 将SQL命令包含在Pascal代码单元中
在程序运行过程中,首先调用TQuery部件的Close方法关闭当前的TQuery部件,然后调用Clear方法清除SQL属性,并说明新的SQL命令文本,然后调用Add方法,将新的SQL命令文本加入到SQL属性中。
(4)通过调用TQuery部件的Open方法或ExecSQl方法执行 SQL 命令。 Open 方法只执行Select命令,ExecSQL方法还可以执行其它的SQL命令。Open方法和ExecSQL 方法的区别我们在后面的章节里会进一步地加以讨论的。
如果使用动态SQL语句,首先调用prepare方法,给动态SQL语句中的参数赋值,然后再调用Open方法或ExecSQL方法。调用propare 方法并不是必须的,但是对于要多次执行TQuery部件中SQL属性中的
陕西科技大学毕业论文(设计说明书) 10
动态SQL语句,调用Prepare可以大大提高TQuery部件执行SQL语句的性能。
第3章 需求分析
3.1 需求分析说明
随着餐饮业的竞争越来越激烈,小型饭店已意识到使用计算机信息技术的重要性,决定首先在餐饮管理上采用计算机管理手段。本系统就是利用计算机信息技术提高饭店的管理水平,主要对点菜收银、库房进行管理,同时具有营业分析功能。点菜收银管理可实现点菜、转台、并台、结帐、清台。库房管理可记录商品入库、出库等情况。营业分析可对客人点单情况、房台营业情况、酒菜销售情况、销售收入等进行分析。点菜收银、营业分析、库房管理的有机结合,可为饭店经营方向提供依据,为饭店的发展提供重要保证。
结合实际业务总结出以下使用计算机系统管理的具体需求:
(1)前台管理:提供点菜管理窗口,客人买单窗口,结帐数据分析窗口,并执行其相 应操作.
(2)财务管理:实现日结算,月结算功能、费用单据管理、公司资金管理. (3)员工管理:对员工基本信息管理和员工工资的管理 .
(4)基础信息管理:对酒水信息设置、菜谱信息设置、餐具信息设置、房间台号管理、商品基础信息登记。 3.2 系统运行需求 硬件平台方案 服务器
□ Pentium 4 Celeron 2.0G 中央处理器 □ Intel 845 Desktop 主板 □ HY 256M DDR内存 □ ST 80G 硬盘 □ LG套装 键盘、鼠标 □普通 17\纯平显示器 □ 打印机: HP3558彩喷 客户机
□ Celeron4 1.7G 中央处理器
小型饭店信息管理系统 11
□ ASROCK 845GV 主板 □ HY 128M DDR内存 □ ST 40G 硬盘 □ LG套装 键盘、鼠标 □普通 17\彩色显示器 其他硬件
□ HP打印服务器 □ 四通UPS不间断电源
□ 集线器、网线、水晶头等网络设备 软件平台方案 服务器
□ 操作系统:Microsoft Windows xp Server中文版
Microsoft Windows xp Service Pack 4中文版
□ 数 据 库:Microsoft SQL Server 2000 Enterprise Edition中文版
客户机
□ 操作系统:Microsoft Windows xp Professional中文版
Microsoft Windows xp Service Pack 4中文版
第4章 系统设计
4.1 系统层次框架
陕西科技大学毕业论文(设计说明书) 12
前台管 饭店管理系统 员工管理财务管理理基础信息管理 4.2 系统流程图
根据餐饮业的特点和该饭店的实际情况,系统业务流程图如图所示。
图4-2 饭店管理系统流程图
4.3 数据库设计
针对饭店的业务情况和业务范围,系统采用了数据库sql server,数据库名为TLCYGLXT。数据库包含一下几个表:菜谱费用信息表、酒水费用信息表、挂单菜谱表
员工信息表、日结算费用信息表、工资管理信息表、房间台号信息表、权限信息表。
员工信息管理员工资料管理日结算管理 公司资金管理餐具管理 酒水信息 菜谱信息 商品基础信息 图4-1 饭店管理系统系统层次图
其他费用 清 台 结 点 菜 帐 营业分析 点菜分析酒水分析 挂 帐 小型饭店信息管理系统 13
菜谱费用信息表
功能:菜谱费用信息表用于保存菜谱费用相关信息
表4-1 菜谱费用信息表结构
字段名称 编 号 菜 名 单 位 价 格 菜系类别 口味说明
酒水费用信息表
功能:酒水费用信息表用于保存酒水费用信息
表4-2 酒水费用信息表结构
字段名称 编号 存货编号 酒水名称 单位 价格 酒水类别 简要说明 挂单菜谱表
功能:挂单菜谱表用于保存挂单相关信息
表4-3 挂单菜谱表结构
字段名称 id 挂单编号 房间台号 类别 编号 名称 类型
数据类型 Int Char Char Money Char Char 字段大小 50 10 20 30 数据类型 Int int Char Char Money Char char 字段大小 20 10 20 30 数据类型 Uniqueidentifier Int Int Char Int Char char 字段大小 10 50 20
陕西科技大学毕业论文(设计说明书) 14
单位 数量 价格 合计 点单日期 结单日期 服务员编号 服务员姓名 状态 结单编号 是否结帐
日结算费用信息表
Char Int Money Money datetime Datetime Int Char Char Int char 10 12 10 10 功能:日结算费用表用于保存每日结算费用信息
表4-4 日结算费用表结构
字段名称 id 结帐编号 房间台号 日期 费用 结款人 结款方式 结款说明
员工信息表
功能:员工信息表用于保存员工信息
表4-5 员工信息表结构
字段名称 员工编号 姓名 性别 出生日期 联系电话
数据类型 uniqueidentifier Int Int Datetime Money Char Char Char 字段大小 12 20 50 数据类型 Int Char Char Datetime Char 字段大小 12 2 15
小型饭店信息管理系统 15
联系地址 聘用日期 工作部门 员工类别 身份证号 备注
工资管理信息表
功能:用于保存员工的工资信息。
Char Datetime Char Char Char Char 30 20 20 20 60 表4-6 工资管理信息表结构
字段名称 工资编号 姓名 基本工资 奖金 加班费 其他费用 扣除费用说明 扣除费用 合计 是否发表
房间台号信息表
功能:房间台号信息表用于保存房间的相关信息
表4-7 房间台号信息表结构
字段名称 编号 房间名称 类型说明 餐饮部门 服务费 简要说明 状态
数据类型 Int Char Money Money Money Money char Money Money Char 字段大小 12 30 10 数据类型 Int char Char Char Money Char char 字段大小 30 20 20 30 10
陕西科技大学毕业论文(设计说明书) 16
权限信息表
功能:权限信息表用于保存设置权限相关信息
表4-8 权限信息表结构
字段名称 编号 姓名 员工类别 密码 权限
数据类型 Char Char Char Char char 字段大小 10 12 20 10 20
第5章 系统实现
5.1 主程序窗体设计 (1) 实现目标
程序启动后,在“系统登陆”界面验证操作员密码后,将进入主界面主界面主要实现如下功能: (a)根据操作员操作权限,设置相应权限的菜单和工具栏功能。 (b)通过菜单或快捷键调用相应子程序。
(c)显示当前系统时间,当前操作员和公司名称等内容。 系统主界面如图5-1所示
小型饭店信息管理系统 17
图5-1 系统主界面
(2)实现过程
(a)delphi,选择“file”中的“New Application” 新建项目 main,选择“file”中的“Save Project as”菜单项,将工程保存为main.dpr。
(b)选择新产生的窗口 form1,设置窗口 name 属性为MainForm ,设置窗口 caption 属性为“餐饮管理系统”,保存窗体MC_mainform.pas.
(c)向窗体中添加 Imagelist、MainMenu、Image、TooButton、StatusBar、Panel、Time、label 等控件,并设置相应属性。 (d)详细程序代码如附录1-1:
Function TMainForm.EnabledKey(key:String):Boolean; //声明操作权限函数 EnabledKey begin
if Pos('A',key)>0 then //具有\类权限 begin
MainForm.N1.Enabled:=True;
MainForm.ToolButton2.Enabled:=True;//打开开台管理 MainForm.N8.Enabled:=True; MainForm.ToolButton3.Enabled:=True; MainForm.N9.Enabled:=True; End
陕西科技大学毕业论文(设计说明书) 18
5.2系统登陆界面 (1)实现目标
程序启动后,首先进入“系统登陆”界面验证操作员密码。系统登陆窗口主要实现如下功能: (a)以形象的图标形式显示操作员,并凭口令进入主界面。
(b)操作员错误或密码错误提醒并返回错误点,三次口令错误,退出系统。 (c)支持键盘操作,系统管理员拥有管理系统的一切权力。 系统登陆界面如图5-2所示。
图5-2 系统登陆主界面
(2)实现过程
(a)添加新窗体,设置窗体name 属性为 user ,设置窗体caption 属性为”系统登陆窗口”. (b)向窗体中添加Datasource 、Query、Dbedit、Edit、listcview、Imagelist、Bevel、Image、Panel、Time、Label等控件,并设置相应属性。
(c)详细程序代码如附录1-2:
窗体启动后,首先关闭钥匙,然后将所有操作员添加到操作员列表。 procedure TUser.FormShow(Sender: TObject); var List:Array[0..1]of TListItem; begin
Timer1.Enabled:=True;
User_Close:=0; //打开关闭钥匙 Query1.Close; Query1.Open; ListView1.Items.Clear; While not Query1.Eof do
小型饭店信息管理系统 19
begin
List[0]:=ListView1.Items.Add;
List[0].Caption:=Query1.FieldByName('姓名').AsString; if Query1.FieldByName('编号').AsString='controller' then begin
List[0].ImageIndex:=0; End Else begin
List[0].ImageIndex:=1; end; Query1.Next; end; end;
单击“登陆”按钮,将判断操作员、操作员密码是否正确,如果正确进入主界面并根据操作员权限设置菜单和工具栏是否可用。如果操作员错误或密码错误将提醒并返回错误点,三次口令错误,退出系统。 5.3 前台管理模块
本模块主要实现点菜,买单,结帐分析等功能. 5.3.1点菜管理窗口设计 (1)实现目标
点菜管理模块主要实现如下功能:
(a)在编号栏输入菜编号,将自动录入菜的信息,输入点菜数量,将自动计算合计金额。 (b)自动生成结帐编号,自动计算总金额。 (c)可实现挂单,放弃开台,读单等操作。 点菜服务窗口如图5-3所示。
陕西科技大学毕业论文(设计说明书) 20
图5-3 点菜服务窗口
(2)实现过程
(a)添加新窗体,设置窗体 name 属性为DCFY_LR ,设置窗体caption 属性为“点菜服务窗口”。 (b)向窗体中添加Query、Groupbox、Panel、Dbtext、Imagelist、Listbox、StringGrid、Bevel、Image、Label、Bitbtn等控件,并设置相应属性。 (c)程序代码如下:
procedure TDCFY_LRFormCreate(Sender:TObiect); begin
TLCYGLXT.CPFYXXB.Open; TLCYGLXT.SJFYXXB.Open; TLCYGLXT.CJFYXXB.Open; End;
下面这段代码主要设置表格控件的列题和行号: procedure TDCFY_LR.Formcreate(Sender:Tobject);
var a,b,c:integer; begin
DCGrid.Cells[1,0]:=?编号?; DCGrid.Cells[2,0]:=?名称?; DCGrid.Cells[3,0]:=?类型?; DCGrid.Cells[4,0]:=?单位?; DCGrid.Cells[5,0]:=?数量?; DCGrid.Cells[6,0]:=?价格?; DCGrid.Cells[7,0]:=?状态?;
小型饭店信息管理系统 21
DCGrid.Cells[8,0]:=?合计?;
For a:=1 to DCGrid.RowCount-1 do Begin
DCGrid.Cells[0,a]:=intToStr(a); End; End;
单击“开始点菜”按钮,程序要打开库存水酒记录、设置房台状态为“开台”。 Procedure TDCFY_LR.BitBtn2Click(Sender:object); Begin Query1.open:
TLCYGLXT.KT_FJTHXXB.
TLCYGLXT.KT_FJTHXXB.Fieldbyname(?状态?).AsString:=?开台?; TLCYGLXT.KT_FJTHXXB.Post; DCGrid.Enabled:=true; BitBtn4.Enabled:=true; bitBtn5.Enabled:=true; DCGrid.setFocus; End;
5.3.2 客人买单窗口设计 (1)实现目标:
(a)提供客人买单、挂帐等特权。 (b)提供查看消费金额窗口。 (c)查看相应房台消费。
客人买单界面如图5-4所示。
陕西科技大学毕业论文(设计说明书) 22
图5-4 客人买单 (2)实现过程
(a)添加新窗口,设置name为 KRMD,设置窗体caption 属性为“买单”
(b)向窗体中添加Query、CheckBox、DataSoure、Listview、Bitbtn、label、edit、imgagelist、bevel等控件,并设置相应属性。 (c)程序代码如下:
Procedure TKRMD.FromShow(Sender:TObject); Begin ADDListView; Edit1.SetFovcus; End;
5.3.3 结帐数据分析窗口 (1)实现目标:
(a)类如资源管理器,使用方便、快捷。 (b)以列表形式显示结帐后菜单信息。 (c)自动汇总总金额。
结帐数据分析界面如图5-5所示。 (2)实现过程
(a)添加新窗体,设置窗体name 属性为JZSJFX ,设置窗体caption 属性为“结帐数据分析” (b)向窗体中添加Query、Datasource、Groupbox、Dbgrid、imgagelist、treeview、lable等控件,并设置相应属性。
图5-5 结帐数据分析
小型饭店信息管理系统 23
(c)代码如下:
rocedure TKRMD_JZ.FormShow(Sender: TObject); //启动时将焦点跳转到不打折结账按钮 begin
BitBtn1.SetFocus; end;
procedure TKRMD_JZ.QuickRep1Preview(Sender: TObject); begin
DYYLBrose.QrPreview1.QRPrinter:=QuickRep1.QRPrinter; end;
procedure TKRMD_JZ.BitBtn4Click(Sender: TObject); //打印点菜信息 begin
QRLabel18.Caption:=Label12.Caption; QRLabel16.Caption:=Label14.Caption; DYYLBrose.Show; QuickRep1.Preview; end; 5.4 财务管理
5.4.1 日结算窗口设计 (1)实现目标
(a)实现日结算功能. (b)提供营业查询分析窗口. 日结算管理界面如图5-6所示。
图5-6 日结算管理 (2)实现过程:
陕西科技大学毕业论文(设计说明书) 24
(a)添加新窗体,设置窗体name 属性为 rjsg1,设置窗体caption 属性为”日结算管理:”
(b)向窗体中添加Qurey、datasource、label、panel、bitbtn、bevel等控件,并设置相应属性 (c)代码如下:
procedure TRJSGL.FormShow(Sender: TObject); begin
ANimateWindow(Handle,300,AW_SLIDE+AW_VER_POSITIVE); Panel1.ReFresh; Panel2.ReFresh; Image1.ReFresh; Image2.ReFresh; end;
procedure TRJSGL.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin
ANimateWindow(Handle,300,AW_SLIDE+AW_VER_NEGATIVE+AW_HIDE); Query1.Close; end;
procedure TRJSGL.QuickRep1Preview(Sender: TObject); begin
DYYLBrose.QRPreview1.QRPrinter:=QuickRep1.QRPrinter; end;
//打印当天单据
procedure TRJSGL.BitBtn2Click(Sender: TObject); begin
DYYLBrose.Show; QuickRep1.Preview; end;
procedure TRJSGL.FormCreate(Sender: TObject); begin Query1.Open;
If Query1.RecordCount = 0 Then begin
BitBtn1.Enabled:=False; BitBtn2.Enabled:=False;
小型饭店信息管理系统 25
end; end;
5.4.2 营业查询分析窗口设计 (1)实现目标
(a)统计某天或某段时间的营业信息,并进行汇总
(b)单击结帐信息表记录,可查看该记帐记录的详细营业信息。 营业查询界面如图5-7所示。
图5-7 营业查询分析
(2)实现过程
(a)添加新窗体,设置窗体 name 属性为yycxfx ,设置窗体 caption 属性为“营业查询分析” (b)向窗体中添加Query、datasource、dbgrid、edit 等控件,并设置相应属性。 (c)详细代码如附录1-3:
procedure TYYCXFX.BitBtn1Click(Sender: TObject); //统计营业信息 begin Query1.Close; Query1.SQL.Clear;
Query1.SQL.Add('Select * From 月结算费用信息表 where 日期 >= :A and 日期 <= :B ORDER BY 结帐编号 ASC');
Query1.ParamByName('A').AsDateTime:=DateTimePicker1.DateTime; //设置参数A为起始日期 Query1.ParamByName('B').AsDateTime:=DateTimePicker2.DateTime; //设置参数B为结束日期 Query1.Open; //激活数据组件 Query2.Close; Query2.SQL.Clear;
陕西科技大学毕业论文(设计说明书) 26
Query2.SQL.Add('Select Sum(费用) From 月结算费用信息表 Where 日期 >= :A and 日期 <= :B'); Query2.ParamByName('A').AsDateTime:=DateTimePicker1.Datetime; //设置参数A为起始日期 Query2.ParamByName('B').AsDateTime:=DateTimePicker2.Datetime; //设置参数B为结束日期 Query2.Open;
Label4.Caption:=Query2.Fields[0].AsString; //显示统计金额
Label8.Caption:=IntToStr(Query1.RecordCount); //显示统计记录数 Query2.Close; end;
5.5 员工管理
5.5.1 员工信息管理窗口设计 (1)实现目标
(a)添加、修改、删除、打印员工信息。 (b)可按员工编号或姓名查询员工信息. (c)可使用导航条浏览员工信息. 员工信息界面如图5-8所示。
图5-8 员工信息管理 (2)实现过程
(a)添加新窗体,设置窗体name 属性为YGXXGL ,设置窗体 caption 属性为”员工管理系统”
(b)向窗体添加 Query、datasource、panel、datasetfirsr 等控件,并设置相应属性. (c)代码如下:
function Aenabled(key:integer):Boolean ; //定义函数Aenabled(判断控件属性)
小型饭店信息管理系统 27
begin
If key = 1 Then begin
YGXXGL.DBGrid1.Enabled:=False; YGXXGL.DBGRid2.Enabled:=False; YGXXGL.Edit1.Enabled:=False; YGXXGL.BitBtn1.Enabled:=False; YGXXGL.BitBtn2.Enabled:=False; YGXXGL.BitBtn3.Enabled:=False; YGXXGL.BitBtn4.Enabled:=False; YGXXGL.BitBtn7.Enabled:=False; YGXXGL.BitBtn8.Enabled:=False; YGXXGL.BitBtn9.Enabled:=False; YGXXGL.BitBtn10.Enabled:=False; YGXXGL.GroupBox1.Visible:=True; YGXXGL.BitBtn5.Caption:='保存'; YGXXGL.BItBtn6.Caption:='取消'; YGXXGL.DBEdit2.SetFocus; End Else begin
YGXXGL.DBGrid1.Enabled:=True; YGXXGL.DBGRid2.Enabled:=True; YGXXGL.Edit1.Enabled:=True; YGXXGL.BitBtn1.Enabled:=True; YGXXGL.BitBtn2.Enabled:=True; YGXXGL.BitBtn3.Enabled:=True; YGXXGL.BitBtn4.Enabled:=True; YGXXGL.BitBtn7.Enabled:=True; YGXXGL.BitBtn8.Enabled:=True; YGXXGL.BitBtn9.Enabled:=True; YGXXGL.BitBtn10.Enabled:=True; YGXXGL.GroupBox1.Visible:=False; YGXXGL.BitBtn5.Caption:='添加'; YGXXGL.BItBtn6.Caption:='修改';
陕西科技大学毕业论文(设计说明书) 28
end; end;
5.5.2 员工工资管理窗口设计 (1)实现目标
(a)以列表形式显示员工信息,并可修改,更新员工工资信息功能。 (b)可查询、浏览及打印工资信息。 (c)可统一更新工资、也可修改个人工资。 员工工资管理界面如图5-9所示。 (2)实现过程
(a)添加新窗体,设置窗体 name 属性为 gzgl,设置窗体 caption 属性为“员工工资管理” (b)向窗体中添加Query、datasoure、panel等控件,并设置相应属性。
图
5-9 员工工资管理
(c)代码如下:
procedure TYG_GZGL.BitBtn5Click(Sender: TObject); //个人工资修改设置 begin
If TLCYGLXT.YGGZXXB.RecordCount = 0 Then Begin
ShowMessage('没有员工工资信息,无法修改.'); End Else begin
TLCYGLXT.YGGZXXB.Edit; //进入编辑状态
小型饭店信息管理系统 29
DBEdit1.Enabled:=True; DBEdit2.Enabled:=True; DBEdit3.Enabled:=True; DBEdit4.Enabled:=True; DBEdit5.Enabled:=True; DBEdit1.SetFocus; end; end;
5.6 基础信息管理 5.6.1 酒水管理 (1) 实现目标
(a)提供添加,修改酒水信息.
(b)可以按编号查询酒水信息,也可删除无用的酒水信息. 酒水信息界面如图5-10所示。
: 图5-10 酒水信息设置 (2)实现过程:
(a)添加新窗体 name 属性为 jsxxsz ,设置窗体 caption 属性为”酒水信息设置” (b)向窗体中添加 Query、panel、groupbox、dbgrid、edit 等控件,并设置相应属性。 (c)详细代码如附录1-4:
Procedure TSJXXSZ.FormShow(Sender:TObject); Begin
陕西科技大学毕业论文(设计说明书) 30
SJXXSZ.Refresh; DBGrid1.Refresh; End;
Procedure TSJXXSZ.DBEdit7keyPress (Sender:Tobject;var key:char)? Begin
If key=#13 then BitBtn6.SetFocus; End;
5.6.2 菜谱信息设置窗口设计 (1)实现目标
(a)添加、修改、删除菜谱信息。 (b)可选择不同查询字段进行查询。
菜谱信息设置界面如图5-11所示。
图5-11 菜谱信息设置 (2)实现过程
(a)添加新窗体,设置窗体name属性为 cpxxsz,设置窗体 caption 属性为”菜谱信息设置”。 (b)向窗体中添加Query、panel、groupbox、time等控件,并设置相应属性。 (c)代码如下:
function AEnabled(key:integer):Boolean ; //定义状态编辑与浏览状态函数 begin
If key = 1 Then //编辑状态 begin
CPXXSZ.BitBtn7.Enabled:=False; //“删除“按钮不可用
小型饭店信息管理系统 31
CPXXSZ.BitBtn8.Enabled:=False; //“退出“按钮不可用 CPXXSZ.BitBtn9.Enabled:=False; //“查询“按钮不可用 CPXXSZ.Edit1.Enabled:=False; //查询输入框不可用 CPXXSZ.DBGrid1.Enabled:=False; CPXXSZ.GroupBox1.Visible:=True; End
Else //浏览状态 begin
CPXXSZ.BitBtn7.Enabled:=True; //“删除“按钮可用 CPXXSZ.BitBtn8.Enabled:=True; //“退出“按钮可用 CPXXSZ.BitBtn9.Enabled:=True; //“查询“按钮可用 CPXXSZ.Edit1.Enabled:=True; CPXXSZ.DBGrid1.Enabled:=True; CPXXSZ.GroupBox1.Visible:=False; end; end;
procedure TCPXXSZ.DBEdit2KeyPress(Sender: TObject; var Key: Char); begin
if key=#13 then PerForm(WM_NEXTDLGCTL,0,0); end;
procedure TCPXXSZ.DBEdit4KeyPress(Sender: TObject; var Key: Char); begin
if key=#13 then DBLookupCombobox1.SetFocus; //焦点移到菜系类别输入框 end;
procedure TCPXXSZ.DBLookupComboBox1KeyPress(Sender: TObject; var Key: Char); begin
if key=#13 then DBedit6.SetFocus; //焦点移到口味说明输入框 end;
procedure TCPXXSZ.DBEdit6KeyPress(Sender: TObject; var Key: Char); begin
if key=#13 then BitBtn5.setFocus; //焦点移到“保存”按钮
陕西科技大学毕业论文(设计说明书) 32
end;
第6章 结束语
此次毕业设计是我们从大学毕业生走向软件开发人员重要的一步。从最初的选题,开题,模块设计,直到完成设计。其间,查找资料,老师指导,与同学交流,反复修改代码,每一个过程都是对自己能力的一次检验和充实。
通过这次实践,我了解了饭店管理系统,熟悉了饭店管理系统的设计步骤,锻炼了计算机设计实践能力,培养了自己独立设计能力。此次毕业设计是对我专业知识和专业基础知识一次实际检验和巩固,同时也是走向工作岗位前的一次热身。
毕业设计收获很多,比如学会了查找相关资料相关标准,分析数据,提高了自己的编程能力,掌握了delphi 语言。同时,仍有很多课题需要后辈去努力去完善。
但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力。这次实践是对自己大学四年所学的一次大检阅,使我明白自己知识还很浅薄,虽然马上要毕业了,但是自己的求学之路还很长,以后更应该在工作中学习,努力使自己 成为一个对社会有所贡献的人,为计算机行业添上自己的微薄之力。
小型饭店信息管理系统 33
致 谢
紧张忙碌的毕业设计即将结束了,在这几个月的毕业设计中,我看到了我自身水平的不足。与此同时,同样让我感到了继续学习、更新自身知识、加强自身能力的必要性。大学四年的学习即将结束,我也即将走向新的起点。这段毕业设计的经历给了我克服困难的决心和解决问题的经验,它将对我今后的生活、学习起到很大的帮助。
经过两个多月的学习,我初步掌握了 Delphi 的基本应用,基本达到了毕业设计的要求。最重要的是,毕业设计的经历增强了我自我学习的能力,做到了在不用老师手把手教授的情况下,完成了一个较为复杂的管理系统。同时,在毕业设计的过程中,查阅了大量的资料,也增强了我进行资料收集、查找和对资料进行筛选的能力。
在整个毕业设计的实习过程中,我要衷心的感谢我的指导老师。他一直都在为我的毕业设计提供耐心的指导,并且帮助我解决了很多疑难问题,这样才有了我的这份毕业设计。我还要感谢我的同学们,他们也给了我许多支持。最后,也是最重要的,感谢所有这四年中传授我知识,给予我关怀和帮助的老师们!
参 考 文 献
[1]郑齐心 《delphi 数据库系统开发实例解析》 机械工业出版社 (2004) [2]郑阿奇 《delphi 实用教程》 电子工业出版社(2004)
陕西科技大学毕业论文(设计说明书) 34
[3]闪四清 《完全掌握SQL Server2000[M] 》 人民邮电出版社(2005) [4]刘瑞新 《delphi程序设计教程》 机械工业出版社(2003) [5]任俊良 《delphi6课程设计案例精编》 中国水利水电出版社(2004) [6]郑人杰 《软件工程》 电子工业出版社(2005) [7]王业龙 《Delphi 软件工程案例精解》 电子工业出版社(2005) [8]张雷 《Delphi应用与开发案例教程》
清华大学出版社(2005)
[9]李维 《面向对象开发实践之路》 电子工业出版社(2005) [10]温尚涛 《delphi案例开发:项目开发风暴》
中国水利水电出版社(2005)
[11]明日科技《delphi数据库系统开发案例精选》 人民邮电出版社(2006) [12]塞奎春 《delphi信息系统开发实例精选》 机械工业出版社(2005) [13]康祥顺 《delphi案例开发集锦》 电子工业出版社(2005) [14]梁灿 《delphi 2005数据库开发教程》 清华大学出版社(2005) [15]李献军 《软件项目开发综合实训》 人民邮电出版社(2005) [16]彭文明 《delphi管理信息系统项目开发实践》 科学出版社(2005) [17]求是科技《delphi信息管理系统开发实例导航》 人民邮电出版社(2005) [18]黄明 《delphi7信息系统设计与开发实例》 机械工业出版社(2005) [19]杜大鹏 《sql编程实用大全》 中国水利水电出版社(2005) [20]章立民
《sql server 2000 transact sql程序设计》中国铁道出版社(2003)
[21]曹军生 《sql server 2000 实用教程》 北京理工大学出版社(2004)
附 录
代码1-1
Function TMainForm.EnabledKey(key:String):Boolean; //声明操作权限函数 EnabledKey begin
小型饭店信息管理系统 35
if Pos('A',key)>0 then //具有\类权限 begin
MainForm.N1.Enabled:=True;
MainForm.ToolButton2.Enabled:=True;//打开开台管理 MainForm.N8.Enabled:=True; MainForm.ToolButton3.Enabled:=True; MainForm.N9.Enabled:=True; End Else
if Pos('B',key)>0 then //具有\类权限 begin
MainForm.N58.Enabled:=True; MainForm.N5.Enabled:=True; MainForm.N48.Enabled:=True; MainForm.N52.Enabled:=True; MainForm.N51.Enabled:=True; MainForm.N14.Enabled:=True; MainForm.N24.Enabled:=True; MainForm.N15.Enabled:=True; MainForm.N12121.Enabled:=True; MainForm.N4.Enabled:=True; MainForm.N23.Enabled:=True; MainForm.N6.Enabled:=True; MainForm.N22.Enabled:=True; MainForm.N40.Enabled:=True; MainForm.N15.Enabled:=True; MainForm.N16.Enabled:=True; MainForm.N29.Enabled:=True; MainForm.N30.Enabled:=True; MainForm.N35.Enabled:=True; MainForm.N36.Enabled:=True; MainForm.N37.Enabled:=True; MainForm.N32.Enabled:=True; MainForm.N39.Enabled:=True; MainForm.N57.Enabled:=True;
陕西科技大学毕业论文(设计说明书) 36
MainForm.N55.Enabled:=True; MainForm.N17.Enabled:=True; MainForm.N18.Enabled:=True; End Else
if Pos('C',key)>0 then //具有\类权限 begin
if Pos('D',key)>0 then //具有\类权限 begin
MainForm.N1.Enabled:=True;
MainForm.ToolButton2.Enabled:=True;//打开开台管理 MainForm.N8.Enabled:=True; end;
if Pos('E',key)>0 then //具有\类权限 begin
MainForm.N1.Enabled:=True; MainForm.ToolButton3.Enabled:=True; MainForm.N9.Enabled:=True; end;
if Pos('F',key)>0 then //具有\类权限 begin
MainForm.N1.Enabled:=True; MainForm.ToolButton1.Enabled:=True; MainForm.N11.Enabled:=True;
end;
下面代码主要在窗体启动时,判断使用者是否可以登陆系统,如果登陆成功,在主窗体状态栏上显示系统日期与时间。
procedure TMainForm.FormShow(Sender: TObject); var Year,Month,Day: Word; begin Close_1:=1;
User.ShowModal; //调用系统登陆窗口 If Close_1 = 0 Then Close Else
小型饭店信息管理系统 37
begin
Panel2.Refresh;
Application.MainForm.WindowState:=wsMaximized; Application.MainForm.WindowState:=wsNormal;
DecodeDate(StrToDate(DateTOStr(Date)),Year,Month,day); //分解日期
StatusBar1.Panels[2].Text:='系统日期:'+IntToStr(Year)+'年'+IntToStr(Month)+'月'+IntToStr(day)+'日'; end; end;
procedure TMainForm.FormCreate(Sender: TObject); begin
Application.OnHint:=DisPlayHint; //与应用项目的提示信息挂钩 end; 代码1-2
procedure TUser.BitBtn1Click(Sender: TObject); //登陆 begin
MainForm.ToolButton1.Enabled:=True; MainForm.ToolButton2.Enabled:=True; MainForm.ToolButton3.Enabled:=True; MainForm.ToolButton4.Enabled:=True; MainForm.ToolButton5.Enabled:=True; MainForm.ToolButton11.Enabled:=True; MainForm.N12121.Enabled:=True; MainForm.N5.Enabled:=True; MainForm.N48.Enabled:=True; MainForm.N52.Enabled:=True; MainForm.N51.Enabled:=True; MainForm.N33.Enabled:=True; MainForm.N7.Enabled:=True; MainForm.N4.Enabled:=True; MainForm.N23.Enabled:=True; MainForm.N6.Enabled:=True; MainForm.N22.Enabled:=True; MainForm.N24.Enabled:=True; MainForm.N1.Enabled:=True;
陕西科技大学毕业论文(设计说明书) 38
MainForm.N8.Enabled:=True; MainForm.N9.Enabled:=True; MainForm.N28.Enabled:=True; MainForm.N11.Enabled:=True; MainForm.N2.Enabled:=True; MainForm.N55.Enabled:=True; MainForm.N17.Enabled:=True; MainForm.N18.Enabled:=True; MainForm.N5.Enabled:=True; MainForm.N48.Enabled:=True; MainForm.N52.Enabled:=True; MainForm.N51.Enabled:=True; MainForm.N33.Enabled:=True;
if Query1.FieldByName('编号').AsString='controller' then //如果是系统管理员 begin
if Edit1.Text<>Query1.FieldByName('密码').AsString then begin
ShowMessage('['+Query1.FieldByName('姓名').AsString+']的口令错误.'); //口令错误 Edit1.SetFocus; End Else begin
MainForm.StatusBar1.Panels[1].Text:='用户['+Query1.FieldByName('姓名').AsString+']'; DYYLBrose.StatusBar1.Panels[1].Text:='用户['+Query1.FieldByName('姓名').AsString+']'; MainForm.User1:=Query1.FieldByName('姓名').AsString; User_Close:=3; Timer1.Enabled:=False; Close; end; End Else begin
MainForm.ToolButton1.Enabled:=False; MainForm.ToolButton2.Enabled:=False; MainForm.ToolButton3.Enabled:=False;
小型饭店信息管理系统 39
MainForm.ToolButton4.Enabled:=False; MainForm.ToolButton5.Enabled:=False; MainForm.ToolButton11.Enabled:=False; MainForm.N12121.Enabled:=False; MainForm.N5.Enabled:=False; MainForm.N48.Enabled:=False; MainForm.N52.Enabled:=False; MainForm.N51.Enabled:=False; MainForm.N33.Enabled:=False; MainForm.N7.Enabled:=False; MainForm.N4.Enabled:=False; MainForm.N23.Enabled:=False; MainForm.N6.Enabled:=False; MainForm.N22.Enabled:=False; MainForm.N24.Enabled:=False; MainForm.N1.Enabled:=False; MainForm.N8.Enabled:=False; MainForm.N9.Enabled:=False; MainForm.N28.Enabled:=False; MainForm.N11.Enabled:=False; MainForm.N2.Enabled:=False; MainForm.N55.Enabled:=False; MainForm.N17.Enabled:=False; MainForm.N18.Enabled:=False; MainForm.N5.Enabled:=False; MainForm.N48.Enabled:=False; MainForm.N52.Enabled:=False; MainForm.N51.Enabled:=False; MainForm.N33.Enabled:=False;
if Edit1.Text<>Query1.FieldByName('密码').AsString then begin
ShowMessage('['+Query1.FieldByName('姓名').AsString+']的口令错误.'); Edit1.SetFocus; End Else
陕西科技大学毕业论文(设计说明书) 40
begin
Name:=Query1.FieldByName('权限').AsString; MainForm.EnabledKey(Name); //设置操作员权限
MainForm.StatusBar1.Panels[1].Text:='用户['+Query1.FieldByName('姓名').AsString+']'; DYYLBrose.StatusBar1.Panels[1].Text:='用户['+Query1.FieldByName('姓名').AsString+']'; User_Close:=3; Timer1.Enabled:=False; Close; end; end; end;
procedure TUser.ListView1Click(Sender: TObject); //选择操作员 var List:Array[0..1]of TListItem; begin
List[0]:=ListView1.Selected; if List[0]<>Nil then begin
Query1.Locate('姓名',List[0].Caption,[loCaseInsensitive]); //查询姓名,但是如果有从名的按第一个算. end; end;
procedure TUser.Timer1Timer(Sender: TObject); begin
FlashWindow(Application.Handle,True); //闪烁项目一次 FlashWindow(Handle,True); //闪烁窗体一次 end;
procedure TUser.Edit1KeyPress(Sender: TObject; var Key: Char); begin
if key=#13 then BitBtn1.Click; //回车焦点移“登陆“按钮 end;
代码1-3
小型饭店信息管理系统 41
procedure TYYCXFX.BitBtn2Click(Sender: TObject); //打印营业信息 begin
If Query1.Active = True Then begin
If Query1.RecordCount <> 0 Then //记录不为空 begin
DYYLBrose.Show; //调用打印
QuickRep1.Preview; End
else ShowMessage('没有数据无法打印.'); End Else
ShowMessage('没有数据无法打印.'); End;
procedure TYYCXFX.BitBtn4Click(Sender: TObject); //查看结帐单据的酒菜信息 begin
If Query1.Active = True Then //如果组件处于激活状态 If Query1.RecordCount <> 0 Then //记录不为空
If Not Assigned(CKJZDJDJCXX) Then //判断引用过程是否为空 begin
CKJZDJDJCXX:=TCKJZDJDJCXX.Create(Self); CKJZDJDJCXX.Query1.Close; CKJZDJDJCXX.Query1.SQL.Clear;
CKJZDJDJCXX.Query1.SQL.Add('Select * From 月点菜信息表 Where 结帐编号 = :A'); //选择当月点菜信息
CKJZDJDJCXX.Query1.ParamByName('A').AsInteger:=Query1.FieldByName('结帐编号').AsInteger;
CKJZDJDJCXX.Query1.Open; CKJZDJDJCXX.Query2.Close; CKJZDJDJCXX.Query2.SQL.Clear;
CKJZDJDJCXX.Query2.SQL.Add('Select * From 员工信息表 Where 员工编号 = :A'); //选择员工信息
CKJZDJDJCXX.Query2.ParamByName('A').AsInteger:=CKJZDJDJCXX.Query1.FieldbyN
陕西科技大学毕业论文(设计说明书) 42
ame('服务员编号').AsInteger;
CKJZDJDJCXX.Query2.Open;
CKJZDJDJCXX.Label24.Caption:=CKJZDJDJCXX.Query2.FieldByName('员工编号').AsString; //显示员工编号
CKJZDJDJCXX.Label26.Caption:=CKJZDJDJCXX.Query2.FieldByName('姓名').AsString; //显示员工姓名
CKJZDJDJCXX.Query2.Close; CKJZDJDJCXX.Query2.SQL.Clear;
CKJZDJDJCXX.Query2.SQL.Add('Select * From 房间台号信息表 where 编号 = :A'); //选择房台信息
CKJZDJDJCXX.Query2.ParambyName('A').AsInteger:=Query1.FieldByName('房间台号').AsInteger;
CKJZDJDJCXX.Query2.Open;
CKJZDJDJCXX.Label4.Caption:=Query1.FieldByName('房间台号').AsString; CKJZDJDJCXX.Label8.Caption:=CKJZDJDJCXX.Query2.FieldByName('类型说明').AsString;
CKJZDJDJCXX.Label6.Caption:=CKJZDJDJCXX.Query2.FieldByName('房台名称').AsString;
CKJZDJDJCXX.Label10.Caption:=CKJZDJDJCXX.Query2.FieldByName('餐饮部门').AsString;
CKJZDJDJCXX.Label12.Caption:=CKJZDJDJCXX.Query2.FieldByName('服务费').AsString;
CKJZDJDJCXX.Label14.Caption:=CKJZDJDJCXX.Query2.FieldByName('简要说明').AsString;
CKJZDJDJCXX.Query2.Close; CKJZDJDJCXX.Query2.SQL.Clear;
CKJZDJDJCXX.Query2.SQL.Add('Select Sum(数量) From 月点菜信息表 Where 状态 = :A and 结帐编号 = :B');
CKJZDJDJCXX.Query2.ParamByName('A').AsString:='点单';
CKJZDJDJCXX.Query2.ParamByName('B').AsInteger:=Query1.FieldByName('结帐编号').AsInteger;
CKJZDJDJCXX.Query2.Open;
CKJZDJDJCXX.Label16.Caption:=CKJZDJDJCXX.Query2.Fields[0].AsString; //点单记录数
CKJZDJDJCXX.Query2.Close;
小型饭店信息管理系统 43
CKJZDJDJCXX.Query2.SQL.Clear;
CKJZDJDJCXX.Query2.SQL.Add('Select Sum(数量) From 月点菜信息表 Where 状态 = :A and 结帐编号 = :B');
CKJZDJDJCXX.Query2.ParamByName('A').AsString:='赠单';
CKJZDJDJCXX.Query2.ParamByName('B').AsInteger:=Query1.FieldByName('结帐编号').AsInteger;
CKJZDJDJCXX.Query2.Open;
CKJZDJDJCXX.Label18.Caption:=CKJZDJDJCXX.Query2.Fields[0].AsString; //赠单记录数
CKJZDJDJCXX.Query2.Close; CKJZDJDJCXX.Query2.SQL.Clear;
CKJZDJDJCXX.Query2.SQL.Add('Select Sum(合计) From 月点菜信息表 Where 状态 = :A and 结帐编号 = :B');
CKJZDJDJCXX.Query2.ParamByName('A').AsString:='点单';
CKJZDJDJCXX.Query2.ParamByName('B').AsInteger:=Query1.FieldByName('结帐编号').AsInteger;
CKJZDJDJCXX.Query2.Open;
CKJZDJDJCXX.Label20.Caption:=CKJZDJDJCXX.Query2.Fields[0].AsString; //点单金额
CKJZDJDJCXX.Query2.Close; CKJZDJDJCXX.Query2.SQL.Clear;
CKJZDJDJCXX.Query2.SQL.Add('Select Sum(合计) From 月点菜信息表 Where 状态 = :A and 结帐编号 = :B');
CKJZDJDJCXX.Query2.ParamByName('A').AsString:='赠单';
CKJZDJDJCXX.Query2.ParamByName('B').AsInteger:=Query1.FieldByName('结帐编号').AsInteger;
CKJZDJDJCXX.Query2.Open;
CKJZDJDJCXX.Label22.Caption:=CKJZDJDJCXX.Query2.Fields[0].AsString; //赠单金额
if
Length(CKJZDJDJCXX.Label12.Caption)=0
then
CKJZDJDJCXX.Label2.Caption:=CKJZDJDJCXX.Label20.Caption
Else if
Length(CKJZDJDJCXX.Label20.Caption)=0
then
CKJZDJDJCXX.Label2.Caption:=CKJZDJDJCXX.Label12.Caption
Else
陕西科技大学毕业论文(设计说明书) 44
CKJZDJDJCXX.Label2.Caption:=FloatToStr(StrToFloat(CKJZDJDJCXX.Label12.Caption)+StrtoFloat(CKJZDJDJCXX.Label20.Caption));
CKJZDJDJCXX.Label28.Caption:=Query1.FieldByName('结帐编号').AsString; CKJZDJDJCXX.Query2.Close;
CKJZDJDJCXX.ShowModal; //调入点菜信息浏览窗口 end;
end;
procedure TYYCXFX.QuickRep1Preview(Sender: TObject); begin
DYYLBrose.QRPreview1.QRPrinter:=QuickRep1.QRPrinter; end;
procedure TYYCXFX.FormClose(Sender: TObject; var Action: TCloseAction); begin
YYCXFX.Release; //释放 YYCXFX:=Nil; end;
procedure TYYCXFX.BitBtn3Click(Sender: TObject); begin
Close; //退出营业查询分析
end; end.
代码1-4
procedure TYG_GZGL.BitBtn6Click(Sender: TObject); //保存个人工资修改 begin
If TLCYGLXT.YGGZXXB.Modified Then //如果出于编辑状态 begin
DBEdit1.Enabled:=False; DBEdit2.Enabled:=False; DBEdit3.Enabled:=False;
DBEdit4.Enabled:=False;
DBEdit5.Enabled:=False;
小型饭店信息管理系统 45
TLCYGLXT.YGGZXXB.Post; //保存修改 end; end;
procedure TYG_GZGL.DBEdit1KeyPress(Sender: TObject; var Key: Char); //
处理DBEdit1控件的键盘操作
begin
if key=#13 then PerForm(WM_NEXTDLGCTL,0,0) //回车 Else
if key=#8 then key:=#8 //退格键 Else
if (key<'0') or (key>'9') then key:=#0; //屏蔽非数字键 end;
procedure TYG_GZGL.BitBtn7Click(Sender: TObject); //统一标准工资修改 begin
Edit6.Enabled:=True; Edit2.Enabled:=True; Edit3.Enabled:=True; Edit4.Enabled:=True; Edit5.Enabled:=True; Edit2.Setfocus; end;
procedure TYG_GZGL.BitBtn8Click(Sender: TObject); //保存统一工资修改
begin
Edit6.Enabled:=False; Edit2.Enabled:=False; Edit3.Enabled:=False; Edit4.Enabled:=False; Edit5.Enabled:=False; end;
procedure TYG_GZGL.SpeedButton1Click(Sender: TObject); //统一更新工资
修改
begin
陕西科技大学毕业论文(设计说明书) 46
Query1.Close; Query1.SQL.Clear;
Query1.SQL.Add('update 工资信息表 set 奖金=:A,加班费=:B,其它费用=:C,扣
除费用说明=:D,');
Query1.SQL.Add('扣除费用=:E,合计=基本工资+奖金+加班费+其它费用-扣除费
用');
If Length(Edit2.Text) = 0 Then begin
Query1.Params[0].AsFloat:=0; End Else
Query1.Params[0].AsFloat:=StrToFloat(Edit2.Text); If Length(Edit3.Text) = 0 Then begin
Query1.Params[1].AsFloat:=0; End Else
Query1.Params[1].AsFloat:=StrToFloat(Edit3.Text); If Length(Edit4.Text) = 0 Then begin
Query1.Params[2].AsFloat:=0; End Else
Query1.Params[2].AsFloat:=StrToFloat(Edit4.Text); If Length(Edit5.Text) = 0 Then begin
Query1.Params[3].AsString:='空'; End Else
Query1.Params[3].AsString:=Edit5.Text; If Length(Edit6.Text) = 0 Then begin
Query1.Params[4].AsFloat:=0; End Else
小型饭店信息管理系统 47
Query1.Params[4].AsFloat:=StrToFloat(Edit6.Text);
Query1.ExecSQL;
end;
procedure TYG_GZGL.SpeedButton2Click(Sender: TObject); //打印工资 begin Query2.Close; Query2.SQL.Clear;
Query2.SQL.Add('Select * From 工资信息表'); Query2.Open; DYYLBrose.Show; QuickRep1.Preview; end;
procedure TYG_GZGL.QuickRep1Preview(Sender: TObject); //预览报表 begin
DYYLBrose.QRPreview1.QRPrinter:=QuickRep1.QRPrinter; end;
procedure TYG_GZGL.BitBtn1Click(Sender: TObject); //查询
var a,b,c:integer; d:String; begin
If Length(Edit1.Text) = 0 Then //如果查询信息为空 begin
ShowMessage('请输入查询的[编号或姓名]信息'); Edit1.SetFocus; End
Else //如果查询信息不为空 begin
a:=Length(Edit1.Text); c:=0;
for b:=1 to a do begin
D:=COPY(edit1.text,b,1); //获取指定数量的字符串 if (D='0') or (D<='9') then //如果指定字符为数字
陕西科技大学毕业论文(设计说明书) 48
begin
c:=c+1; //累计输入的数字位数 end; end;
If c = Length(Edit1.Text) Then //输入员工编号 begin //查询 if
TLCYGLXT.YGXXB.Locate('
员
工
编
',StrTOInt(Edit1.Text),[loCaseInsensitive]) then
begin
DBGrid1.SetFocus; DBGrid1.SelectedIndex:=0; End Else begin
ShowMessage('对不起,没有找到。');
end; End
Else //输入员工姓名 begin
if TLCYGLXT.YGXXB.Locate('姓名',Edit1.Text,[loPartialKey]) //按员工姓名查询
begin
DBGrid1.SetFocus; DBGrid1.SelectedIndex:=1; End Else begin
ShowMessage('对不起,没有找到。'); end; end; end; end;
procedure TYG_GZGL.Edit5KeyPress(Sender: TObject; var Key: Char); begin
号
then
小型饭店信息管理系统 49
if key=#13 then Edit6.SetFocus; end;
procedure TYG_GZGL.SpeedButton3Click(Sender: TObject); //确认本月工资发
放
var a,c:real; b:integer; begin
if MessageDLg('确认开始发放本月工资吗?',mtCustom,[mbYes,mbNo],0)=mrYes
then
begin
Query3.Close; Query3.SQL.Clear;
Query3.SQL.Add('Select Sum(合计) From 工资信息表'); //合计总工资 Query3.Open;
c:=Query3.Fields[0].AsFloat; //合计总工资 Query3.Close; Query3.SQL.Clear;
Query3.SQL.Add('Select * From 公司资金表'); Query3.Open; Query3.Last;
a:=Query3.FieldByName('资金').AsFloat; b:=query3.FieldByName('编号').AsInteger; Query3.Close; Query3.SQL.Clear;
Query3.SQL.Add('insert 公司资金表(编号,更新日期,资金,更新说
明)values(:A,:B,:C,:D)');
If Length(IntToStr(b)) = 0 Then //没有数据 begin
Query3.Params[0].AsInteger:=1; //编号为1
Query3.Params[2].AsFloat:=-c; //公司资金为负合计总工资 End Else begin
Query3.Params[0].AsInteger:=b+1; //编号加1
//关闭窗体 陕西科技大学毕业论文(设计说明书) 50
Query3.Params[2].AsFloat:=a-c; //公司资金减总工资 end;
Query3.Params[1].AsDateTime:=Date; //更新日期 Query3.Params[3].AsString:='发薪水'; //说明 Query3.ExecSQL; //更新公司资金表 ShowMessage('完毕!!'); SPEEDBUTTON3.Enabled:=False; end; end;
procedure TYG_GZGL.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TLCYGLXT.YGXXB.Close; TLCYGLXT.YGGZXXB.Close; YG_GZGL.Release; YG_GZGL:=nil; end;
正在阅读:
小型饭店信息管理系统论文03-30
电力系统继电保护作业11-08
开学第一课活动方案:安全教育4篇03-31
英语元音和辅音的分类08-14
西瓜作文250字07-14
想对你说作文450字07-01
通报格式范文02-18
汽轮机运行与检修专业行业汽轮机运行值班员高级技师试卷02-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 小型
- 饭店
- 论文
- 信息
- 众网友微博推荐图书100种
- 认真核算系统指标占用系数努力提高有线电视质量指标
- V-Ray基础教学教程—VR反射材质-金币 - 图文
- 昔阳县交警大队纪律作风整顿实施方案
- 数据结构实验四:顺序表的排序实验
- 心理健康教育与咨询中心内设机构管理办法
- 毛概课后答案 复习资料 高教版
- 轮机自动化 第一章 第三节 调节规律347题
- 最新--宁夏中考政治真题及答案 精品推荐
- 《读你、懂你》班会课教案设计
- 运十飞机结构分析 - 图文
- 霓虹灯广告屏装置PLC控制梯形图的设计与调试
- 初一全科目课件教案习题汇总
- 2006-2007七年级第二学期英语期中测试题
- 浙江省温州中学2015年高三物理自主招生模拟试卷 - 图文
- 八年级语文下册第一单元第1课《藤野先生》课堂教学实录冀教版
- 象棋教学计划
- 生物信号处理(yuanshi) - 图文
- 2019年干部科工作计划范文
- 微机原理课程设计指导书