8.餐馆管理系统_第1页
8.餐馆管理系统_第2页
8.餐馆管理系统_第3页
8.餐馆管理系统_第4页
8.餐馆管理系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#项目-餐饮管理系统软件工程系 危孟君项目展示项目展示思考的问题(1)主窗体的界面应该如何呈现(2)窗体初始化,窗体参数(3)父子窗体之间参数的传递主目录系统功能结构系统业务流程数据库设计登陆模块设计主窗体设计开台模块设计点菜模块设计结账模块设计1、系统功能结构2、系统业务流程3、数据库设计 在开发餐饮系统之前,分析该系统的数据量,由于系统管理餐饮方面的数据较多,商品信息,消费信息、以及账目清单会占用较大的空间,因此选择SQL SERVER 2000数据库存储这些信息,数据库命名为db_Mrcy,在数据库中创建5个数据表用于存储不同的信息。1、数据表 tb_food2、数据表 tb_food

2、type3、数据表 tb_guestfood4、数据表 tb_room5、数据表 tb_user新增知识:ImageList控件(1) ImageList控件提供了一个集合,可以用于存储在窗体的其他控件中使用的图像。可以在图像列表中存储任意大小的图像,但在每个控件中,每个图像的大小必须相同。ImageList是一个在运行期间不显示它本身的控件。在把它拖放到正在开发的窗体上时,它并不是放在窗体上,而是放在它的下面,其中包含所有的组件。这个功能可以防止不是用户界面一部分的控件妨碍窗体设计器。这个控件的处理方式与其他控件相同,但不能移动它。可以在设计和运行期间给ImageList添加图像。如果知道在

3、设计期间需要显示哪些图像,就可以单击Images属性右边的按钮,添加这些图像。新增知识点2:listView控件ListView控件可用4种不同视图(详细资料、大图标、列表、小图标)中的一种显示一些项的集合,ListView控件的外观与Windows 资源管理器的文件列表外观相似。列表视图通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。还可以把包含在控件中的数据显示为列和行(像网格那样),或者显示为一列,或者显示为图标表示。listView常用属性(1)listView常用属性(2)listView常用属性(3)方法Clear:从控件中移除所有项的内容。 方法DragDropEff

4、ects DoDragDrop(object data,DragDropEffects allowEffects): 开始拖放操作,参数data是要传送的数据,可以是String、Bitmap、IDataObject、Metafile类的对象,或者是实现序列化的数据等。参数2确定哪些拖动操作可以发生,可以是DragDropEffects.Copy、All、Link、Move、None、Scroll。 事件ItemDrag:鼠标开始拖动产生的事件。 事件DragEnter:鼠标进入拖动目的控件产生的事件。 事件DragDrop:鼠标进入拖动目的控件,并抬起鼠标产生的事件。 事件SelectedI

5、ndexChanged:当列表视图控件中选定的项的索引更改时发生。窗口load事件和activated 事件的区别 load为加载窗体时的操作,activated是将该窗体设为当前活动窗体时候的操作(就是将窗体显示在最前面。) 餐饮管理系统(2)本次课知识点和学习目标登陆模块主窗体模块可变菜单状态栏(statusStrip)快捷菜单(contextMenuStrip)4、登录模块为了使系统的安全性各到保障,大多数系统都开发登录模块。只有通过登陆模块,才能对登录用户进行验证,只要系统的合法用户服务才可以进入系统的主界面。这也是设计管理系统软件之前,必须考虑的问题,整个登陆模块的实现过程非常简单。

6、相信大家会很快掌握。登陆界面示例在餐饮管理系统中主窗体模块是由3部分组成的。第一部分是位于主窗体模块上端的系统菜单,主要实现链接系统功能菜单。第二部分是位于主窗体模块中间的桌台显示,主要用于显示餐厅中所有的桌台情况,包括桌台是否已使用、已使用桌台的客人数量等信息,方便用户对桌台的管理;第三部分是位于主窗体模块下端的状态栏,主要用于显示系统当前状态信息。5、主窗体模块主窗体截图5.1、 StatusStrip(状态栏) StatusStrip 控件用作窗体中的一块区域,通常显示在窗口的底部,应用程序可在该区域中显示各种状态信息,StatusStrip 控件上可以有状态栏面板,用以显示指示状态的文

7、本或图标,通过将 ShowPanels 属性设置为 false,并将状态栏的Text 属性设置为希望出现在状态栏中的文本,可在状态栏中显示一个消息1、向状态栏添加面板StatusStrip控件内的可编程区域由 StatusBarPanel 类的实例组成,添加这些实例的方式是:(1)在设计时通过 StatusStripPanel 集合编辑器(2)在运行时通过向 StatusStripPanelCollection 类进行添加2、确定单击了哪一个面板若要通过对 StatusStrip控件进行编程来响应用户的单击操作,可以使用 PanelClick 事件中的 Select Case 语句该事件包含一

8、个参数(面板参数),该参数包含对单击的 StatusStripPanel 对象的引用使用该引用可以确定单击的面板的索引,从而可以相应地进行编程快捷菜单(ContextMenu) 使用过Word程序的人都知道,在Word程序窗口的不同位置单击右键,会出现不同弹出菜单,这个弹出菜单叫快捷菜单。接下来介绍如何为应用程序增加快捷菜单。快捷菜单和主菜单的属性、事件和方法基本一致,只是快捷菜单没有顶级菜单项,因此这里就过多介绍了。 餐饮管理系统(3)本次课知识点和学习目标开台模块点菜模块可变快捷菜单目录树( TreeView )控件数据列表(dataGridView)控件数据集(DataSet)数据表(D

9、ataTable)6、开台模块设计当顾客要进行消费的时候,首先要看一下是否还有可用的桌台。如果还有空闲的桌台,那么就要为顾客开台,只有要开台之后,才能为顾客点菜、查询和结账。所以开台模块在整个系统工程中是非常重要的。简单开台界面C#中KeyData、KeyCode、KeyValue和KeyChar的区别KeyCode最为常用,记录了键盘上按了哪个键,当使用组合键时如ctrl+a,其值是A;KeyValue则是KeyCode的数字值,当使用组合键时如ctrl+a时,其值为65(A),注意不是97(a);KeyData可以记录组合键,当使用组合键时如ctrl+a时,其值为A,ctrl;注意:这三个

10、属性对于字母键只记录其大写的值(不管你是否开启了caplock或是按下shift键),如果一定要区分到底是大小写,可以使用KeyChar来判断。KeyPress和KeyDown、KeyPress之间的区别(一)键事件按下列顺序发生:KeyDownKeyPressKeyUp(二)KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。(三)定义KeyDown:在控件有焦点的情况下按下键时发生。KeyPress:在控件有焦点的情况下按下键时发生。(下面会说和KeyDown 的区别)KeyUp:在控件有焦点的情况下释放键时发生。(四)KeyPre

11、ss 和KeyDown 、KeyPress之间的区别1.KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、菜单键、开始键和方向键外的ANSI字符KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)2.KeyPress 只能捕获单个字符KeyDown 和KeyUp 可以捕获组合键。3.KeyPress 可以捕获单个字符的大小写4.Key

12、Down和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。5.KeyPress 不区分小键盘和主键盘的数字字符。KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。6.其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。(五)系统组合键的判定在使用键盘的时候,通常会使用到CTRL+SHIFT+ALT 类似的组合键功能。对于此,我们如何来判定?通过KeyUp 事件能够来处理(这里说明一下为什么不用KeyDown,因为在判定KeyDown的时候,CTRL、SHIFT和ALT 属于一直按下状态,然后再加另外一个键是不能准

13、确捕获组合键,所以使用KeyDown 是不能准确判断出的,要通过KeyUp 事件来判定)7、点菜模块设计为顾客选定好桌台,并且邢台之后,会根据顾客的需要点菜或者购买茶水烟酒之类的消费品,在点菜模块中会显示餐厅特有一一些菜系,用户可以对不同的菜系进行选择。点菜界面示例学习:TreeView控件使用TreeView组件是由多个类来定义的,TreeView组件是由命名空间System.Windows.Forms中的TreeView类来定义的,而其中的节点(即Node),是由命名空间System.Windows.Forms中的TreeNode来定义的。所以当在程序中创建一个TreeView对象,其实只

14、是创建了一个可以放置节点的容器。而在这个容器中加入一个节点,其实就是加入了从TreeNode类中创建的一个节点对象;同样删除一个节点,也就是删除一个TreeNode节点对象。C操作TreeView组件中的一些常用方法以及具体实现: TreeView组件是一个操作起来比较麻烦的组件,但归根到底,可以总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。掌握了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。下面就分别来加以介绍。(1).加入子节点:所谓子节点,就是处于选定节点的下一级节点。加入子节点的具体过程是:首先要在TreeView组件中定位要加入的子节点的位置,然后创

15、建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add ( )方法),加入此节点对象。下面就是在treeView1组件中加入一个子节点的具体代码:/首先判断是否选定组件中的位置if ( treeView1.SelectedNode = null )MessageBox.Show ( 请选择一个节点 , 提示信息 , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;else/创建一个节点对象,并初始化TreeNode tmp ;tmp = new TreeNode ( 节点名称 ) ;/在TreeView组件中加入子节点

16、treeView1.SelectedNode.Nodes.Add ( tmp ) ;treeView1.SelectedNode = tmp ;treeView1.ExpandAll ( ) ; (2).加入兄弟节点:所谓兄弟节点,就是在选定的节点的平级的节点。加入兄弟节点的方法和加入子节点的方法基本一致,只是在最后的实现方法上有着略微的区别。加入兄弟节点的具体步骤,首先也是要确定要加入的兄弟节点所处的位置,接着定义一个节点对象,最后调用TreeView类中对兄弟节点加入的方法,加入此节点对象。加入兄弟节点和加入子节点的最大区别就在于这最后一步。希望读者能够注意。下面是在TreeView组件加

17、入一个兄弟节点的具体代码:/首先判断是否选定组件中节点的位置if ( treeView1.SelectedNode = null )MessageBox.Show ( 请选择一个节点 , 提示信息 , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;else/创建一个节点对象,并初始化TreeNode tmp ;tmp = new TreeNode ( textBox1.Text ) ;/在TreeView组件中加入兄弟节点treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;treeView1.ExpandAll ( ) ; (3).删除节点:删除节点就是删除TreeView组件中选定的节点,删除节点可以是子节点,也可以是兄弟节点,但无论节点的性质如何,必须保证要删除的节点没有下一级节点,否则必须先删除此节点中的所有下一级节点,然后再删除此节点。删除节点比起上面的二个操作要显得略微简单,具体方法是:首先判断要删除的节点是否存在下一级节点,如果不存在,就调用TreeView类中的Remove ( )方法,就可以删除节点了。下面是删除TreeView组件中节点的具体代码:/判断选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论