《数据库课程设计报告-餐饮管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告-餐饮管理系统.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库课程设计报告-餐饮管理系统 数据库课程设计报告 (餐饮管理系统) 系别电子信息系 专业名称计算机科学与技术 班级学号* 学生姓名* 指导教师* 成绩 2022年7 月 1 日 1 概述 随着人民生活水平的提高,越来越多的人到餐馆里就餐,使得餐饮业有了更多的发展机会,但同时餐饮业的竞争也在不断的加剧。要想在竞争激烈的市场上立于不败之地,好的管理是必不可少的。加强管理不能只重视人为因素,技术因素也是非常重要的,好的管理方法如果引入了先进的技术手段,即引入计算机技术会使管理走上一个新的台阶。 目前,餐饮业发展迅速,各类管理系统应用而生。有针对大饭店、大酒店的酒店管理系统,这类系统的开发已经非常
2、成熟。然而,为数众多的小餐饮企业却没有一个合适的管理系统,因此开发此类管理系统是十分必要的。 1.1 设计题目及实现目标 设计题目:基于C#语言Windows窗体界面的餐饮管理系统; 实现目标: (1)系统采用人机交互的方式,界面美观友好,信息查询方便,数据存储安全; (2)实现对餐饮顾客开台、点菜、账目查询和结账等操作; (3)对数据输入的数据进行数据检验,尽可能的避免人为错误; (4)对消费账目进行自动结算; (5)实现对消费的历史记录进行查询; (6)系统应最大限度的实现以维护性和易操作性。 1.2 开发环境简介 开发IDE:Microsoft Visual Studio 2022; 开
3、发语言:C#.net; 数据库:SQL Server 2022; 开发环境:Windows 7; 开发周期:10天; 开发人数:4人。 2 需求分析 2.1 系统功能描述 从顾客角度来看,能实现即时点菜、结账、取消开台等功能;从管理员角度可实现即时营业情况,记录员工信息、桌台信息、菜单信息并实现增删改等基本信息功能;不同的用户有不同的权限,系统管理员有所有的功能权限,经理拥有除系统维护功能以外的所有功能权限,一般用户只能对查看餐馆运行情况,客户点菜结账等基本功能,但不可以看菜单基本信息和人员基本信息等。 2.2 系统功能结构描述 餐饮管理系统属于C/S模式的系统,其功能结构图如图1所示: 图1
4、 餐饮管理系统功能结构图 系统功能介绍: (1)在进入系统时,根据用户输入的内容判断用户的合法身份。合法用户分为普通用户,经理和系统管理员,其中系统用户拥有所有的权限,经理拥有系统维护以外的所有权限,普通用户拥有辅助工具、系统设置、退出、开台、点菜、结账等权限; (2)桌台信息管理可以进行桌台的增加、删除、修改和查询; (3)职员信息管理可以进行职员的增加、删除、修改和查询; (4)菜品信息管理可以进行菜品的增加、删除、修改和查询; (5)辅助工具可对记事本、日历、计算器进行调用,方便快捷; (6)系统维护是系统管理员所拥有的功能,可以对其它用户的权限进行赋值,并可进行系统维护和系统备份; (
5、7)系统设置下的密码修改可以方便用户对自己密码的重置,系统锁定可以对当前的系统进行锁定,使系统不能进行其它操作; (8)点击桌面上的图标,可以对桌台进行开台、点菜、取消开台、消费查询、结账等操作,采用图形化界面,方便、直观; (9)界面友好,并实时给予用户操作提示。 3 数据库逻辑结构设计 本餐饮管理系统涉及到的表有:系统用户表,用于保存所有用户信息;职员表,用于保存所有职员信息;菜品表,用于保存餐馆所有菜品的信息;桌台表,用于保存餐馆中所有桌台的信息;顾客消费信息表,用于保存顾客消费的信息以便于消费查询和结账。总共有5张表,根据业务和用户需求各个系统用例的不同,表格各不相同,下面是本系统数据
6、库的详细设计。 3.1数据库E-R图 图2 用于登录信息表E-R图图3 菜谱信息表E-R图 图4 服务员信息表E-R图 图5 桌台信息表E-R图 、 图6 消费信息表E-R图 图7 数据库CMDB关系图 3.2 数据库逻辑设计 根据设计好的E-R图在数据库中创建各表,系统数据库中各个表的结构如下: 字段名数据类型长度主键是否可以为空说明User_id varchar 50 是否用户名 其中,前4张表是系统中的实体表,表5是消费表,其ID为消费流水号,由系统自动生成,用作表的主键,这样可以避免不同顾客的消费号重复。表2,3,4的主键分别 分别用作表5消费表的外键,用于关联与顾客消费相关的信息。
7、4 程序核心代码及控件描述 由于餐饮管理系统对数据库的访问比较频繁,为此,设计一个公共类databaselink.cs,用于建立对数据的连接,当其它模块需要对数据库访问时,调用此模块,这样可以减小程序的代码量,使程序的可移植性更加良好。代码如下: class DataBaseLink public static SqlConnection DataConn() string str = server=localhost;uid=sa;pwd=0000;database=CMDB; SqlConnection sqlconn = new SqlConnection(str); return sq
8、lconn; 4.1用户登录模块设计 为了使系统的安全性得到保障,登录模块是必不可少的,只有系统的合法用户才能登录系统。并且在用户登录时其身份和权限也被验证和。本系统的登录模块只需输入用户名和密码,单击按钮即可进行验证。主要用到TextBox和Button控件,分别用于用户名和密码输入,登录和取消选择。 核心代码: if (textBoxPwd.Text = ) MessageBox.Show(请输入密码, 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning); else /数据库连接 SqlConnection conn = PublicClas
9、s.DataBaseLink.DataConn(); conn.Open(); SqlCommand cmd = new SqlCommand(select count(*) from Users where User_id= + textBoxUserName.Text + and User_pwd= + textBoxPwd.Text + ,conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); if (i 0) /用户身份验证,并验证权限 cmd = new SqlCommand(select * from Users where User
10、_id= + textBoxUserName.Text + , conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); string UserPower = sdrUser_power.ToString().Trim(); conn.Close(); FormMain main = new FormMain(); main.Power = UserPower; s = this.textBoxUserName.Text; main.Times = DateTime.Now.ToShortDateString(); main.Sho
11、w(); this.Hide(); else MessageBox.Show(用户名或密码错误!); 运行结果显示: 图8 用户登录界面 4.2基础信息模块设计 餐饮管理的基础信息模块,包括桌台信息、职员信息和菜品信息,各个小模块用到的知识点都是一样的,主要功能是实现桌台、职员和菜品的增删改查功能。下面以职员信息的设计为例介绍此模块的功能设计。此模块主要用到Button、TextBox、ComboBox 和DataGridView控件。分别用于功能选择,信息写入显示、信息选择和总体信息显示等功能。 职员信息模块核心代码如下: (1) DataGridView控件显示核心代码 private v
12、oid BindData() /数据库连接并读取数据 SqlConnection conn = PublicClass.DataBaseLink.DataConn(); SqlDataAdapter sda = new SqlDataAdapter(select Waiter_id,Waiter_name,Waiter_sex,Waiter_age,Waiter_card,Waiter_tel,Waiter_salary from Waiters order by Waiter_id desc,conn); DataSet ds = new DataSet(); sda.Fill(ds); d
13、ataGridView1.DataSource = ds.Tables0; (2)执行保存功能的核心代码 private void button3_Click(object sender, EventArgs e) Int32 salary; /判断工资输入的合法性 if (Int32.TryParse(textBoxSalary.Text, System.Globalization.NumberStyles.Integer, System.Globalization.NumberFormatInfo.CurrentInfo, out salary) SqlConnection conn =
14、PublicClass.DataBaseLink.DataConn(); conn.Open(); SqlCommand cmd = new SqlCommand(select count(*) from Waiters where Waiter_id= + textBoxId.Text + , conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); /如果数据库中已存在此Waiter_id的记录,则修改 if (i 0) cmd = new SqlCommand(update Waiters set Waiter_id= + textBoxId
15、.Text + ,Waiter_name= + textBoxName.Text + ,Waiter_sex= + comboBoxSex.SelectedItem.ToString() + ,Waiter_age= + textBoxAge.Text + ,Waiter_card= + textBoxCard.Text + ,Waiter_tel= + textBoxTel.Text + ,Waiter_salary= + salary + where Waiter_id= + textBoxId.Text + , conn); cmd.ExecuteNonQuery(); conn.Clo
16、se(); BindData(); else if (textBoxId.Text = ) MessageBox.Show(没有填入数据!); else /如果无此记录,则删除 cmd = new SqlCommand(insert into Waiters(Waiter_id,Waiter_name,Waiter_sex,Waiter_age,Waiter_card,Waiter_tel,Waiter_salary) values( + textBoxId.Text + , + textBoxName.Text + , + comboBoxSex.SelectedItem.ToString(
17、) + , + textBoxAge.Text + , + textBoxCard.Text + , + textBoxTel.Text + , + textBoxSalary.Text + ), conn); cmd.ExecuteNonQuery(); conn.Close(); BindData(); else MessageBox.Show(工资必须为数字); (3)执行删除功能的核心代码 private void button6_Click(object sender, EventArgs e) /数据库连接 SqlConnection conn = PublicClass.Data
18、BaseLink.DataConn(); conn.Open(); /删除数据 SqlCommand cmd = new SqlCommand(delete from Waiters where Waiter_id=+dataGridView1.SelectedCells0.Value.ToString()+,conn); cmd.ExecuteNonQuery(); conn.Close(); /删除后列表显示 BindData(); 运行结果显示: 图9 职员信息管理运行界面图10 桌台管理运行界面 图11 菜品管理运行界面 4.3辅助工具模块设计 辅助工具栏目中日历主要用到MonthCa
19、lendar控件,用于日历的显示。记事本和计算器则直接调用系统的这些功能。本部分没有用到数据库的知识,但在餐饮管理系统中起到了工具的作用,为操作者带来了方便。核心代码如下: private void日历ToolStripMenuItem_Click(object sender, EventArgs e) FormCalender calender = new FormCalender(); calender.ShowDialog(); private void记事本ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(notepad.exe); private void计算器ToolStripMenuItem_Click(object sender, EventArgs e)