C# 餐馆管理系统
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• KeyPress 和KeyDown 、KeyPress之间的区别 之间的区别
• • • • • • • • • (一)键事件按下列顺序发生: 键事件按下列顺序发生: KeyDown KeyPress KeyUp 触发后, (二)KeyDown触发后,不一定触发 触发后 不一定触发KeyUp,当KeyDown 按 , 下后,拖动鼠标,那么将不会触发KeyUp事件。 事件。 下后,拖动鼠标,那么将不会触发 事件 (三)定义 KeyDown:在控件有焦点的情况下按下键时发生。 :在控件有焦点的情况下按下键时发生。 KeyPress:在控件有焦点的情况下按下键时发生。(下面会说和 :在控件有焦点的情况下按下键时发生。 下面会说和 KeyDown 的区别 的区别) KeyUp:在控件有焦点的情况下释放键时发生。 :在控件有焦点的情况下释放键时发生。
• 1、系统功能结构
2、系统业务流程 、
3、数据库设计 、
在开发餐饮系统之前,分析该系统的数据量, 在开发餐饮系统之前,分析该系统的数据量,由于 系统管理餐饮方面的数据较多,商品信息, 系统管理餐饮方面的数据较多,商品信息,消费信 以及账目清单会占用较大的空间,因此选择SQL 息、以及账目清单会占用较大的空间,因此选择SQL 2000数据库存储这些信息 数据库存储这些信息, SERVER 2000数据库存储这些信息,数据库命名为 db_Mrcy,在数据库中创建5 db_Mrcy,在数据库中创建5个数据表用于存储不同 的信息。 的信息。
C#项目C#项目-餐饮管理系统 项目
软件工程系 危孟君 weimengjun@
• 项目展示 • • • • 项目展示思考的问题 (1)主窗体的界面应该如何呈现 ) (2)窗体初始化,窗体参数 )窗体初始化, (3)父子窗体之间参数的传递 )
主 目 录
• • • • • • • •
系统功能结构 系统业务流程 数据库设计 登陆模块设计 主窗体设计 开台ቤተ መጻሕፍቲ ባይዱ块设计 点菜模块设计 结账模块设计
• 简单开台界面
• C#中KeyData、KeyCode、KeyValue和KeyChar的区别 中 、 、 和 的区别 • KeyCode最为常用,记录了键盘上按了哪个键,当使用组 最为常用, 最为常用 记录了键盘上按了哪个键, 合键时如ctrl+a,其值是 合键时如 ,其值是"A"; ; • KeyValue则是 则是KeyCode的数字值,当使用组合键时如 的数字值, 则是 的数字值 ctrl+a时,其值为 (A),注意不是 (a); ),注意不是 时 其值为65( ),注意不是97( ); • KeyData可以记录组合键,当使用组合键时如 可以记录组合键, 可以记录组合键 当使用组合键时如ctrl+a时,其 时 值为"A,ctrl"; 值为 ; • 注意:这三个属性对于字母键只记录其大写的值(不管你是 注意:这三个属性对于字母键只记录其大写的值( 否开启了caplock或是按下 或是按下shift键),如果一定要区分到底 否开启了 或是按下 键),如果一定要区分到底 是大小写,可以使用KeyChar来判断。 来判断。 是大小写,可以使用 来判断
• • • • • •
餐饮管理系统( ) 餐饮管理系统(2) 本次课知识点和学习目标 登陆模块 主窗体模块 可变菜单 状态栏( 状态栏(statusStrip) ) 快捷菜单( 快捷菜单(contextMenuStrip) )
• 4、登录模块
• 为了使系统的安全性各到保障,大多数系统 为了使系统的安全性各到保障, 都开发登录模块。只有通过登陆模块, 都开发登录模块。只有通过登陆模块,才能 对登录用户进行验证, 对登录用户进行验证,只要系统的合法用户 服务才可以进入系统的主界面。这也是设计 服务才可以进入系统的主界面。 管理系统软件之前,必须考虑的问题, 管理系统软件之前,必须考虑的问题,整个 登陆模块的实现过程非常简单。 登陆模块的实现过程非常简单。相信大家会 很快掌握。 很快掌握。
1、数据表 tb_food 、
2、数据表 tb_foodtype 、
3、数据表 tb_guestfood 、
4、数据表 tb_room 、
5、数据表 tb_user 、
• 新增知识:ImageList控件(1) 新增知识:ImageList控件( 控件
• ImageList控件提供了一个集合,可以用于存储在窗体的其 ImageList控件提供了一个集合, 控件提供了一个集合 他控件中使用的图像。 他控件中使用的图像。可以在图像列表中存储任意大小的图 但在每个控件中,每个图像的大小必须相同。 像,但在每个控件中,每个图像的大小必须相同。 • ImageList是一个在运行期间不显示它本身的控件。在把它 ImageList是一个在运行期间不显示它本身的控件。 是一个在运行期间不显示它本身的控件 拖放到正在开发的窗体上时,它并不是放在窗体上, 拖放到正在开发的窗体上时,它并不是放在窗体上,而是放 在它的下面,其中包含所有的组件。 在它的下面,其中包含所有的组件。这个功能可以防止不是 用户界面一部分的控件妨碍窗体设计器。 用户界面一部分的控件妨碍窗体设计器。这个控件的处理方 式与其他控件相同,但不能移动它。 式与其他控件相同,但不能移动它。 • 可以在设计和运行期间给ImageList添加图像。如果知道在 可以在设计和运行期间给ImageList添加图像。 ImageList添加图像 设计期间需要显示哪些图像,就可以单击Images Images属性右边的 设计期间需要显示哪些图像,就可以单击Images属性右边的 按钮,添加这些图像。 按钮,添加这些图像。
1在设计时通过statusstrippanel集合编辑器2在运行时通过向statusstrippanelcollection类进行添加2确定单击了哪一个面板若要通过对statusstrip控件进行编程来响应用户的单击操作可以使用panelclick事件中的selectcase语句该事件包含一个参数面板参数该参数包含对单击的statusstrippanel对象的引用使用该引用可以确定单击的面板的索引从而可以相应地进行编程使用过word程序的人都知道在word程序窗口的不同位置单击右键会出现不同弹出菜单这个弹出菜单叫快捷菜单
• • • • • • •
餐饮管理系统( ) 餐饮管理系统(3) 本次课知识点和学习目标 开台模块 点菜模块 可变快捷菜单 目录树( TreeView )控件 目录树( 数据列表(dataGridView)控件 数据列表 控件 数据集(DataSet)数据表 数据表(DataTable) 数据集 数据表
• 快捷菜单 快捷菜单(ContextMenu) • 使用过Word程序的人都知道,在Word程序 程序的人都知道, 使用过 程序的人都知道 程序 窗口的不同位置单击右键, 窗口的不同位置单击右键,会出现不同弹出 菜单,这个弹出菜单叫快捷菜单。 菜单,这个弹出菜单叫快捷菜单。接下来介 绍如何为应用程序增加快捷菜单。 绍如何为应用程序增加快捷菜单。快捷菜单 和主菜单的属性、事件和方法基本一致, 和主菜单的属性、事件和方法基本一致,只 是快捷菜单没有顶级菜单项, 是快捷菜单没有顶级菜单项,因此这里就过 多介绍了。 多介绍了。
• 新增知识点2:listView控件 新增知识点2 listView控件 • ListView控件可用4种不同视图(详细资料、大图标、 ListView控件可用 种不同视图(详细资料、大图标、 控件可用4 列表、小图标)中的一种显示一些项的集合, 列表、小图标)中的一种显示一些项的集合, ListView控件的外观与 控件的外观与Windows ListView控件的外观与Windows 资源管理器的文件 列表外观相似。 列表外观相似。 • 列表视图通常用于显示数据,用户可以对这些数据 列表视图通常用于显示数据, 和显示方式进行某些控制。 和显示方式进行某些控制。还可以把包含在控件中 的数据显示为列和行(像网格那样) 的数据显示为列和行(像网格那样),或者显示为一 或者显示为图标表示。 列,或者显示为图标表示。
listView常用属性(1) listView常用属性( 常用属性
listView常用属性(2) listView常用属性( 常用属性
listView常用属性(3) 常用属性( ) 常用属性
• 方法 方法Clear:从控件中移除所有项的内容。 :从控件中移除所有项的内容。 • 方法DragDropEffects DoDragDrop(object 方法 data,DragDropEffects allowEffects): • 开始拖放操作,参数 开始拖放操作,参数data是要传送的数据,可以是 是要传送的数据, 是要传送的数据 可以是String、 、 Bitmap、IDataObject、Metafile类的对象,或者是实现序列 类的对象, 、 、 类的对象 化的数据等。参数2确定哪些拖动操作可以发生 确定哪些拖动操作可以发生, 化的数据等。参数 确定哪些拖动操作可以发生,可以是 DragDropEffects.Copy、All、Link、Move、None、Scroll。 、 、 、 、 、 。 • 事件 事件ItemDrag:鼠标开始拖动产生的事件。 :鼠标开始拖动产生的事件。 • 事件 事件DragEnter:鼠标进入拖动目的控件产生的事件。 :鼠标进入拖动目的控件产生的事件。 • 事件 事件DragDrop:鼠标进入拖动目的控件,并抬起鼠标产生 :鼠标进入拖动目的控件, 的事件。 的事件。 • 事件 事件SelectedIndexChanged:当列表视图控件中选定的项的 : 索引更改时发生。 索引更改时发生。
• 窗口 窗口load事件和 事件和activated 事件的区别 事件和 • load为加载窗体时的操作, 为加载窗体时的操作, 为加载窗体时的操作 • activated是将该窗体设为当前活动窗体时候 是将该窗体设为当前活动窗体时候 的操作(就是将窗体显示在最前面。) 的操作(就是将窗体显示在最前面。)
• 登陆界面示例
5、主窗体模块 主窗体模块
• 在餐饮管理系统中主窗体模块是由 部分组成的。 在餐饮管理系统中主窗体模块是由3部分组成的 部分组成的。 • 第一部分是位于主窗体模块上端的系统菜单,主要实现链接 第一部分是位于主窗体模块上端的系统菜单, 是位于主窗体模块上端的系统菜单 系统功能菜单。 系统功能菜单。 • 第二部分是位于主窗体模块中间的桌台显示,主要用于显示 第二部分是位于主窗体模块中间的桌台显示, 是位于主窗体模块中间的桌台显示 餐厅中所有的桌台情况,包括桌台是否已使用、 餐厅中所有的桌台情况,包括桌台是否已使用、已使用桌台 的客人数量等信息,方便用户对桌台的管理; 的客人数量等信息,方便用户对桌台的管理; • 第三部分是位于主窗体模块下端的状态栏,主要用于显示系 第三部分是位于主窗体模块下端的状态栏, 是位于主窗体模块下端的状态栏 统当前状态信息。 统当前状态信息。
• 6、开台模块设计 、
• 当顾客要进行消费的时候,首先要看一下是 当顾客要进行消费的时候, 否还有可用的桌台。如果还有空闲的桌台, 否还有可用的桌台。如果还有空闲的桌台, 那么就要为顾客开台,只有要开台之后, 那么就要为顾客开台,只有要开台之后,才 能为顾客点菜、查询和结账。 能为顾客点菜、查询和结账。所以开台模块 在整个系统工程中是非常重要的。 在整个系统工程中是非常重要的。
1、向状态栏添加面板 、 StatusStrip控件内的可编程区域由 StatusBarPanel 类的实例 控件内的可编程区域由 组成, 组成, 添加这些实例的方式是: 添加这些实例的方式是: (1)在设计时通过 StatusStripPanel 集合编辑器 ) (2)在运行时通过向 StatusStripPanelCollection 类进行添加 ) 2、确定单击了哪一个面板 、 控件进行编程来响应用户的单击操作, 若要通过对 StatusStrip控件进行编程来响应用户的单击操作, 控件进行编程来响应用户的单击操作 可以使用 PanelClick 事件中的 Select Case 语句 该事件包含一个参数(面板参数), ),该参数包含对单击的 该事件包含一个参数(面板参数),该参数包含对单击的 StatusStripPanel 对象的引用 使用该引用可以确定单击的面板的索引, 使用该引用可以确定单击的面板的索引,从而可以相应地进 行编程
主 窗 体 截 图
5.1、 StatusStrip(状态栏) 、 (状态栏)
StatusStrip 控件用作窗体中的一块区域,通 控件用作窗体中的一块区域, 常显示在窗口的底部, 常显示在窗口的底部 , 应用程序可在该区域中显示 各种状态信息, 各种状态信息 , StatusStrip 控件上可以有状态栏 面板, 用以显示指示状态的文本或图标, 面板 , 用以显示指示状态的文本或图标 , 通过将 ShowPanels 属 性 设 置 为 false , 并 将 状 态 栏 的 Text 属性设置为希望出现在状态栏中的文本,可在 属性设置为希望出现在状态栏中的文本, 状态栏中显示一个消息