资源描述
XXXXXXXXX学院 毕 业 论 文论文题目:基于ASP技术餐厅点菜管理系统的设计与实现 学 生: X X 指导教师: X X 院 系: 信 息 工 程 系 专 业: 软件技术2008级1班 2010年11月25摘要二十一世纪是信息高度交流与发展的时代,随着人类社会的进步与发展,越来越多的信息已无法通过手工记录、人工管理来实现,信息在社会经济中发挥着越来越重要的作用。餐厅点菜管理系统是一个信息化管理软件,可以实现餐厅的点菜、订餐、员工管理等各项业务的信息化管理,整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,减少了人工操作的麻烦和误差,能更好地提高企业的管理模式,实现自动化。在大多数的餐饮场所点菜、查看菜谱等是人工完成的。这就需要通过大量的手工完成,速度慢,耗费人力多,而且极易出错,导致工作效率低,造成人力物力的极大浪费。为了节省人力和时间,避免不必要的错误,通过对此作认真细致的调查研究后,决定开发本系统。写作本论文目的在于在现行餐饮管理的基础上,建立科学的计算机餐饮管理系统数据库,用计算机工作代替以往大量的人工劳动,提高工作效率,促进餐饮自动化,适应当今科学技术飞速发展的需要。在整个数据库系统操作中起到相互联系、相互制约的作用,可根据需要随时打开、运行、处理、关闭。该系统同时设有初始设置、系统维护等几个功能,通过对多个数据库文件的控制操作,可实现查询、录入、修改、删除和打印等功能。关键词:C#,餐饮管理, ASP目录摘要- 1 -目录- 2 -第1章 绪论11.1 选题背景11.2 选题目的11.3 系统实现技术11.4 开发工具与语言简介11.4.1 ASP简介11.4.2 SQL2005数据库2第2章 需求分析32.1系统需求32.1.1功能需求32.2 小结4第3章 系统概要43.1总体设计43.2模块设计和功能分配53.3数据库的设计53.3.1食物信息表63.3.2食物类别信息表63.3.3顾客消费信息表63.3.4桌台信息表73.3.5用户和职员信息表73.4配置数据源83.5小结8第4章 详细设计与实现94.1 登录页面的设计与实现94.2 餐厅管理系统的设计与实现10 4.2.1桌台基本信息页面14 4.2.2职员信息页面17 4.2.3权限管理页面194.3 普通界面的设计与功能194.3.1口令设置页面194.3.2系统备份页面20 4.3.3系统恢复页面20 4.3.4系统锁定页面20 4.3.5帮助页面204.4小结22结论23参考文献24致谢24第1章 绪论1.1选题背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好餐厅点菜管理系统而设计的。1.2 选题目的本系统是针对餐厅点菜管理系统介绍进行设计的, 目的主要是全面展示餐厅点菜管理系统内容及环境,全面管理管理餐厅信息,为每位员工提供优质的服务。 培养学生独立完成课题的工作能力及从文献获取知识的能力,提高计算机运用水平,掌握运用软件工程思想开发管理信息系统的一般方法及各种规范,为毕业后走上工作岗位打下良好基础。1.3 系统实现技术 该系统是使用流行的软件开发程序SQL2005 数据库 和ASP环境C#1.4 开发工具与语言简介1.4.1 ASP简介 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点: (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; (2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试; (3)服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; (5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等。 (6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。 ASP也不仅仅局限于与HTML结合制作WEB网站,而且还可以与XHTML和WML语言结合制作WAP手机网站。但是其原理也是一样的。1.4.2 SQL2005 数据库 1SQL2005数据库简介SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。2SQL2005数据库的优点SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。SQL为许多任务提供了命令,其中包括: 查询数据 在表中插入、修改和删除记录 建立、修改和删除数据对象 控制对数据和数据对象的存取 保证数据库一致性和完整性 以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。第2章 需求分析软件需求分析是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。需求分析阶段要解决的问题,是让用户和开发者共同明确将要开发的是一个什么样的系统。具体而言,需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合,建立分析模型(Analysis);第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”(简称“需求说明”)来把用户的需求表达出来。2.1系统需求 餐厅点菜管理系统的目标是能更快、更好、更方便、更安全的有利于饭店对餐桌的各方面进行管理及查看和修改让管理者是可以及时看到了解情况。解决餐桌和点菜者的不方便之处。2.1.1功能需求1,菜谱管理 实现菜谱添加、修改、删除、查询功能,可对菜谱设置所属菜类、单价、状态、菜量类型;2,菜类设置 实现菜类添加、修改、删除功能。可在添加菜谱时管理菜类信息。 3,餐台管理 实现餐台添加、修改、删除、查询功能,可对餐台设置容纳人数;4,餐区设置 实现餐区添加、修改、删除功能。可在添加餐台时管理餐区信息。5,分店管理 实现分店的添加、修改、删除、查询功能;6,管理员管理 实现管理员添加、修改、删除功能,可对管理员设置所属分店和用户类型(营业员、分店管理员、总管理员);7,前台营业员收银营业员登录后,可集中在此实现开台、点菜、订台、收银、打印等相关操作,也可执行客户换台操作,餐桌有三种状态,即:空闲中、已订中、营业中,点击餐桌即可开台点菜。8,营业报表、点菜报表、月营业报表对比 管理层可查看所有时间的营业报表,包括时间、消费金额、餐区等。点菜报表主要针对菜谱,包括点菜数量与总金额,绘制成三维图表,供管理层查看,为管理酒店提供帮助。2.2 小结 本章主要介绍了系统的需求分析过程,主要有功能需求和界面需求,详细的阐述了系统具有的功能,并作了详细的说明,采用面向对象的分析方法,这样对于读者的理解也更加简化了。就实际情况而言,在高系统配置、高网络带宽很容易得到保证的情况下,最需要考虑的是系统的性能需求。这样详细的需求分析可以使系统的性能需求得到完全保证,需求分析是软件开发的重要阶段,为以后的详细设计打下坚实的基础。第3章 系统概要 系统概要是要明确系统的数据结构和软件结构,总体设计是给出内部软件和外部系统部件之间的接口定义,后面是各个功能模块说明。3.1总体设计经过需求分析后,可以得出系统的总体处理数据流程图,如图3-1图3-1总体处理流程图总体需求分析后,可以得出系统的总体处理数据流程图给出了一个简单的处理流程,在该流程图中可以看到该系统所实现的一些功能:桌台信息、职员信息、权限管理、日历、口令设置借等功能。3.2模块设计和功能分配每一个功能的实现都转交给一个模块,该模块有的是一个新的模块,有的是本模快。在管理模块中,要根据登录情况对登录用户进行识别,不同的权限拥有不同的功能,管理员用户能够查询桌台的使用情况、系统状态等信息,管理职员信息。 3.3数据库的设计系统的数据库是用SQL2005实现的.通过系统分析,确定此系统需要6个表: 1 食物信息表,2 食物类别信息表, 3 顾客消费信息表,4 桌台信息表,5 用户信息表,6 用户和职员信息表,数据库的名称为db_MrCy.mdb。3.3.1食物信息表 图3-2 食物信息表记录餐厅有哪些食物。3.3.2食物类别信息表 图3-3 食物类别信息表记录食物的类别。3.3.3 顾客消费信息表 图 3-4顾客消费信息表本表是一个暂时存储的信息表。3.3.4桌台信息表 图 3-5桌台信息表 对桌台的管理。3.3.5用户和职员信息表 用户信息表 图 3-6 用户信息表职员信息表 图 3-7 职员信息表 对职员的管理。3.4配置数据源1.计算机安装SQL2005 如下图登陆界面开始程序MICROSOFT SQL2005SQL Server3.5小结本章对于系统的功能做了更加详细的分析及说明,为下一个阶段的详细设计打下了坚实的基础。在概要设计中主要对库表的设计及各个表的结构和功能作了详细地阐述,另外对于本系统所需用到的sql2005也作了详细的描述,这样就便于在详细设计中理解。概要设计在软件工程设计中起着承上启下的作用,是系统分析过程中所不可缺少的一部分。第4章 详细设计与实现模块是软件结构的基础,软件结构的好坏完全由模块的属性体现出来,把软件模块化的目的是为了降低软件的复杂性,使软件设计、测试、调试、维护等工作变得简单,随着模块数目的增加,接口连接这些模块的工作量也随之增加,所以合理化布局是此程序的重中之重.此程序的每一个功能的实现都转交给一个页面,该页面有的是新的页面,有的是本页面.在管理模块中,根据登录情况对登录用户进行识别,不同的局限有不同的功能,读者能够实现一些基本的功能,而管理员能够管理所有的功能。4.1 登录页面的设计与实现此页面主要为管理员的登录,页面如图所示: 图4-1登录界面代码如下:private void btnSubmit_Click(object sender, EventArgs e) if (txtName.Text.Trim() = ) MessageBox.Show(用户名不能为空!, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; SqlConnection con = new SqlConnection(Data Source=.;Initial Catalog=db_MrCy;Integrated Security=True); string sql = (select * from tb_User where UserName= + txtName.Text + and UserPwd= + txtPwd.Text + ); SqlCommand com = new SqlCommand(sql, con); con.Open(); SqlDataReader dr = com.ExecuteReader(); if (dr.Read() frmMain fM = new frmMain(); this.Hide(); fM.Show(); else MessageBox.Show(你输入的用户名和密码不正确,请重新输入); dr.Close(); private void btnConcel_Click(object sender, EventArgs e) if (MessageBox.Show(确定退出系统吗?, 提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) = DialogResult.OK) Application.Exit(); 4.2 餐厅管理系统的设计与实现此页面主要设置以下的功能:基础信息、辅助工具、系统维护、系统设置、帮助、退出。页面如图所示: 图4-2餐厅管理系统的主界面代码如下: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(sdrRoomName.ToString(), 1); else lvDesk.Items.Add(sdrRoomName.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 = sdrRoomZT.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 = sdrRoomZT.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) 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) About ab = new About(); 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) 4.2.1桌台基本信息页面 图4-3桌台基本信息界面代码如下:public partial class frmDesk : Form public frmDesk() InitializeComponent(); private void button5_Click(object sender, EventArgs e) BindData(); private void BindData() SqlConnection conn = BaseClass.DBConn.CyCon(); SqlDataAdapter sda = new SqlDataAdapter(select RoomName,RoomJC,RoomBJF,RoomWZ,RoomType,RoomBZ,ID from tb_Room order by ID desc, conn); DataSet ds = new DataSet(); sda.Fill(ds); dataGridView1.DataSource = ds.Tables0; private void frmDesk_Load(object sender, EventArgs e) private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) txtname.Text = dataGridView1.SelectedCells0.Value.ToString(); txtjc.Text = dataGridView1.SelectedCells1.Value.ToString(); txtbjf.Text = dataGridView1.SelectedCells2.Value.ToString(); txtwz.Text = dataGridView1.SelectedCells3.Value.ToString(); txtlx.Text = dataGridView1.SelectedCells4.Value.ToString(); txtbz.Text = dataGridView1.SelectedCells5.Value.ToString(); button2.Enabled = true; button6.Enabled = true; private void button7_Click(object sender, EventArgs e) this.Close(); private void button6_Click(object sender, EventArgs e) SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand(delete from tb_Room where RoomName= + dataGridView1.SelectedCells0.Value.ToString() + , conn); cmd.ExecuteNonQuery(); conn.Close(); BindData(); private void button2_Click(object sender, EventArgs e) button1.Enabled = false; button3.Enabled = true; button4.Enabled = true; txtjc.Enabled = true; txtbjf.Enabled = true; txtwz.Enabled = true; txtlx.Enabled = true; txtbz.Enabled = true; private void button4_Click(object sender, EventArgs e) button1.Enabled = true; button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; button6.Enabled = false; txtname.Enabled = false; txtjc.Enabled = false; txtbjf.Enabled = false; txtwz.Enabled = false; txtlx.Enabled = false; txtbz.Enabled = false; private void button3_Click(object sender, EventArgs e) SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd=new SqlCommand(select count(*) from tb_Room where RoomName=+txtname.Text+,conn); int i=Convert.ToInt32(cmd.ExecuteScalar(); if (i 0) cmd = new SqlCommand(update tb_Room set RoomName= + txtname.Text + ,RoomJC= + txtjc.Text + ,RoomBJF= + txtbjf.Text + ,RoomWZ= + txtwz.Text + ,RoomType= + txtlx.Text + ,RoomBZ= + txtbz.Text + where ID= + dataGridView1.SelectedCells6.Value.ToString() + , conn); cmd.ExecuteNonQuery(); conn.Close(); BindData(); button1.Enabled = true; button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; button5.Enabled = true; button6.Enabled = false; button7.Enabled = true; txtname.Enabled = false; else cmd = new SqlCommand(insert into tb_Room(RoomName,RoomJC,RoomBJF,RoomWZ,RoomType,RoomBZ) values( + txtname.Text + , + txtjc.Text + , + txtbjf.Text + , + txtwz.Text + , + txtlx.Text + , + txtbz.Text + ), conn); cmd.ExecuteNonQuery(); conn.Close(); BindData(); button1.Enabled = true; button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; button5.Enabled = tr
展开阅读全文