最新C#课程设计餐饮管理系统(DOC).doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC#课程设计餐饮管理系统(DOC)分类号 密级郑州科技学院C#课程设计 设计(论文)题目: 餐饮管理系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学与技术2班学 生 姓 名: 简奇 学 号: 201015048 指 导 教 师: 王玉萍 2013年1月8日目 录第一部分 引言21.1课题意义31.2课题内容4 第二部分 需求分析42.1需求分析52.2系统结构52.3系统设计5第三部分 总体设计63.1餐饮结构图63.2基本业务图7第四部分 核心代码实现74.1登录模块实现74.2主框架实现114.3 日历模块实现204.4菜单模块22第五部分 结束语295.1主要305.2进一步改进方向31第六部分 参考文献31第一部分 引言1.1 课题意义近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。酒店作为传统的餐饮企业也存在这些问题,进货,库存有人工管理,客人点单需服务员记录并送至厨房,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理该企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。改革开放二十多年来,我国餐饮业发展迅猛,日新月异,各种风味特色,各种经营形式,各种组织结构的餐饮企业星罗棋布,但“竞争激烈,生意难作”也成了餐饮业的“流行脖。更新经营方式,拓展大众市场,建全餐饮业的“软硬”件设施,发展餐饮信息渠道是我国餐饮业应探索的主旋律。所以,社会化,科学化,集锦化21世纪的发展方向。当今世界已进入了在计算机信息管理领域中激烈竞争的时代,应用计算机已经变得十分普遍了,如同我们离不开的自行车、汽车一样。我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中立于不败之地。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。越来越多的管理人员意识到信息管理的重要性。所以说科学化是二十一世纪餐饮业的主流目前,国内的餐饮管理系统几种情况是:中国的软件系统大多源自管理信息系统(MIS),从部门业务需求的角度出发设计。管理信息系统设计的初衷是服务于学校内绝大多数的业务操作人员,将业务操作人员的重复性劳动予以初场户动化,即从管理理论抽象出理想化的业务管理模式,在基于该业务模式的摹础上实现低层次的数据处理或业务流程电子化。管理信息系统的设计,是根据中小型学校业务单元的需求来编写的,一般无法满足多体制、多元化、多董组织结构的大型学校数据处理需求。与国外同类应用系统及解决方案相比较,目前中国的管理软件还有一些缺憾:第一,很多是从管理信息系统演变而来,虽然目前国内的管理软件已将模块功能扩展至学校管理或人才资本管理相关的整个业务领域,但系统在整体性、前瞻性和集成性方面仍有欠缺。1.2 课题内容本课题是设计一个基于C#的餐饮管理系统。本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标:系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。实现对消费账目自动结算。实现对消费的历史记录进行查询,支持模糊查询。系统应最大限度地实现易维护性和易操作性。第二部分 需求分析2.1需求分析作为餐饮管理系统,首先需要具有餐饮管理员可以运用系统来进行登记的功能。在进行登记后,餐饮管理员就可以登录了,在登录以后可以对现有的信息的查看、修改等。由于餐饮管理系统是信息管理系统,利用计算机网络的巨大潜在力量、数据信息的理念,从而减少人、物及财等方面上的消耗,完成合理的资源分配。其开发的功能主要包括:本课题是设计一个基于.NET的餐饮管理系统。确的餐饮管理依据与辅助决策数据。2.2 系统结构根据以上对餐饮管理系统的功能需求分析。现对餐饮管理系统分析。 2.3系统设计不管是管理员还是普通餐饮管理员登录系统都要进行正确的判断后,才能登入到系统,登录活动图如图4-2所示:第三部分 总体设计3.1餐饮结构图餐饮管理系统基础信息辅助系统维护系统帮助退出桌台信息职员信息日历计算器记事本权限管理系统备份系统恢复口令设置锁定系统关于退出系统3.2业务流程图是否登陆基本主窗体是否管理员基本登陆辅助工具退出帮助系统维护基础信息系统设置第四部分 核心代码实现41登录模块实现using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Linq;using System.Windows.Forms;using System.Data.SqlClient;namespace MrCy public partial class frmLogin : Form public frmLogin() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) txtName.Focus(); private void txtPwd_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = 13) btnSubmit_Click(sender, e); private void btnSubmit_Click(object sender, EventArgs e) if (txtName.Text = "") MessageBox.Show("请输入用户名", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (txtPwd.Text = "") MessageBox.Show("请输入密码", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); else SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand("select * from tb_User where UserName='" + txtName.Text + "' and UserPwd='" + txtPwd.Text + "'", conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (sdr.HasRows) sdr.Close(); cmd = new SqlCommand("select * from tb_User where UserName='" + txtName.Text + "'", conn); SqlDataReader sdr1 = cmd.ExecuteReader(); sdr1.Read(); string UserPower = sdr1"power".ToString().Trim(); conn.Close(); frmMain main = new frmMain(); main.power = UserPower; main.Names = txtName.Text; main.Times = DateTime.Now.ToShortDateString(); main.Show(); this.Hide(); else MessageBox.Show("用户名或密码错误"); private void btnConcel_Click(object sender, EventArgs e) if (MessageBox.Show("确定退出系统吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) = DialogResult.OK) Application.Exit(); 登陆界面如图4.2主框架实现using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Linq;using System.Windows.Forms;using System.Data.SqlClient;namespace MrCy public partial class frmMain : Form public frmMain() InitializeComponent(); public SqlDataReader sdr; public string power; public string Names; public string Times; private void frmMain_Load(object sender, EventArgs e) switch (power) case "0": toolStripStatusLabel13.Text = "超级管理员" break; case "1": toolStripStatusLabel13.Text = "经理" break; case "2": toolStripStatusLabel13.Text = "一般用户" break; toolStripStatusLabel10.Text = Names; toolStripStatusLabel16.Text = Times; if (power = "2") 系统维护SToolStripMenuItem.Enabled = false; 基础信息MToolStripMenuItem.Enabled = false; if (power = "1") 系统维护SToolStripMenuItem.Enabled = false; private void AddItems(string rzt) if (rzt = "使用") lvDesk.Items.Add(sdr"RoomName".ToString(), 1); else lvDesk.Items.Add(sdr"RoomName".ToString(), 0); private void 开台ToolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; frmOpen openroom = new frmOpen(); openroom.name = names; openroom.ShowDialog(); else MessageBox.Show("请选择桌台"); private void frmMain_Activated(object sender, EventArgs e) lvDesk.Items.Clear(); SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand("select * from tb_Room", conn); sdr = cmd.ExecuteReader(); while (sdr.Read() string zt = sdr"RoomZT".ToString().Trim(); AddItems(zt); conn.Close(); private void 点菜ToolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; frmDC dc = new frmDC(); dc.RName = names; dc.ShowDialog(); else MessageBox.Show("请选择桌台"); private void 消费查询ToolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; frmSerch serch = new frmSerch(); serch.RName = names; serch.ShowDialog(); else MessageBox.Show("请选择桌台"); private void 结账ToolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; frmJZ jz = new frmJZ(); jz.Rname = names; jz.ShowDialog(); else MessageBox.Show("请选择桌台"); private void lvDesk_DoubleClick(object sender, EventArgs e) frmDetails details = new frmDetails(); details.TableName = lvDesk.SelectedItems0.SubItems0.Text; details.ShowDialog(); private void lvDesk_Click(object sender, EventArgs e) string names = lvDesk.SelectedItems0.SubItems0.Text; SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand("select * from tb_Room where RoomName='" + names + "'", conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); string zt = sdr"RoomZT".ToString().Trim(); sdr.Close(); if (zt = "使用") this.contextMenuStrip1.Items0.Enabled = false; this.contextMenuStrip1.Items1.Enabled = true; this.contextMenuStrip1.Items3.Enabled = true; this.contextMenuStrip1.Items5.Enabled = true; this.contextMenuStrip1.Items6.Enabled = true; if (zt = "待用") this.contextMenuStrip1.Items0.Enabled = true; this.contextMenuStrip1.Items1.Enabled = false; this.contextMenuStrip1.Items3.Enabled = false; this.contextMenuStrip1.Items5.Enabled = false; this.contextMenuStrip1.Items6.Enabled = false; conn.Close(); private void 取消开台toolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand("update tb_Room set RoomZT='待用',Num=0 where RoomName='" + names + "'", conn); cmd.ExecuteNonQuery(); cmd = new SqlCommand("delete from tb_GuestFood where zhuotai='" + names + "'", conn); cmd.ExecuteNonQuery(); conn.Close(); frmMain_Activated(sender, e); else MessageBox.Show("请选择桌台"); private void 桌台信息ToolStripMenuItem1_Click(object sender, EventArgs e) frmDesk desk = new frmDesk(); desk.ShowDialog(); private void 职员信息ToolStripMenuItem1_Click(object sender, EventArgs e) frmUser users = new frmUser(); users.ShowDialog(); private void 日历ToolStripMenuItem1_Click(object sender, EventArgs e) frmCalender calender = new frmCalender(); calender.ShowDialog(); private void 记事本ToolStripMenuItem1_Click(object sender, EventArgs e) System.Diagnostics.Process.Start("notepad.exe"); private void 计算器ToolStripMenuItem1_Click(object sender, EventArgs e) System.Diagnostics.Process.Start("calc.exe"); private void 权限管理ToolStripMenuItem1_Click(object sender, EventArgs e) frmQxGl qx = new frmQxGl(); qx.ShowDialog(); private void 系统备份ToolStripMenuItem1_Click(object sender, EventArgs e) frmBF bf = new frmBF(); bf.ShowDialog(); private void 系统恢复ToolStripMenuItem1_Click(object sender, EventArgs e) sdr.Close(); sdr.Dispose(); frmHF hf = new frmHF(); hf.ShowDialog(); private void 口令设置ToolStripMenuItem1_Click(object sender, EventArgs e) frmPwd pwd = new frmPwd(); pwd.names = Names; pwd.ShowDialog(); private void 锁定系统ToolStripMenuItem1_Click(object sender, EventArgs e) frmLock locksystem = new frmLock(); locksystem.Owner = this; locksystem.ShowDialog(); private void 关于ToolStripMenuItem1_Click(object sender, EventArgs e) AboutBox1 ab = new AboutBox1(); ab.ShowDialog(); private void 退出系统ToolStripMenuItem1_Click(object sender, EventArgs e) if (MessageBox.Show("确定退出本系统吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) = DialogResult.OK) Application.Exit(); private void 系统维护SToolStripMenuItem_Click(object sender, EventArgs e) private void lvDesk_SelectedIndexChanged(object sender, EventArgs e) private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) private void contextMenuStrip1_Opened(object sender, EventArgs e)