C#网上订餐管理系统资料.doc_第1页
C#网上订餐管理系统资料.doc_第2页
C#网上订餐管理系统资料.doc_第3页
C#网上订餐管理系统资料.doc_第4页
C#网上订餐管理系统资料.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

郑州科技学院C#课程设计 设计(论文)题目: 网上订餐管理系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学与技术2班 学 生 姓 名: 余楠楠 学 号: 201015070 指 导 教 师: 王玉萍 2013年6月4日 摘 要 二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会。中国的网民充分领略到“畅游天地间,网络无极限” 所带来的畅快。随着Internet的飞速发展,使得网络的应用日益的广泛。如电子商务,电子政务,网上医疗,网上娱乐,网络游戏,网络教学等。 本文主要研究如何开发餐饮管理系统,解释了开发餐饮管理系统的必要性和重要性,系统的开发在.net平台上进行,结合后端的SQL Server 2005数据库技术,用C#.net进行编码,开发出一个符合企业需要,比较实用的信息管理系统。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考许多资料,在指导老师的帮助下,详细分析了企业管理系统的几个主要设计阶段:需求分析、概要设计和详细设计,同时给出了系统实现的具体思想方案,并列举了实际工程中的实例创建过程、方法和效果。该系统开发由系统需求分析阶段、概念设计阶段、逻辑设计阶段、数据库实施阶段、系统调试和测试阶段、参考文献、附录等阶段组成。关键词:餐饮管理现代化,人工管理,功能模块,存储过程摘 要21. 课题的提出、现状及研究意义42.1 系统需求分析52.2 功能需求52.3系统功能模块图63 系统设计73.1 系统总体结构73.2 数据库设计73.2.1 E-R图设计83.2.2 数据库详细设计11 4 系统实现134.1 系统数据库连接实现134.2 系统主要模块实现144.2.1系统登录模块主要代码如下:144.2.2系统主界面模块实现主要代码如下:154.2.3系统客户订餐实现主要代码如下:194.2.4更改个人信息模块主要代码如下:214.2.5查询订单信息模块224.2.6添加菜品以及菜品类型244.2.6添加员工信息模块255调试及分析275.1主要界面275.2 调试336结束语347.参考文献351. 课题的提出、现状及研究意义近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。XX酒店作为传统的餐饮企业也存在这些问题,进货,库存有人工管理,客人点单需服务员记录并送至厨房,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理该企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。 目前,国内的餐饮管理系统几种情况是: 管理信息系统设计的初衷是服务于学校内绝大多数的业务操作人员,将业务操作人员的重复性劳动予以初场户动化,即从管理理论抽象出理想化的业务管理模式,在基于该业务模式的摹础上实现低层次的数据处理或业务流程电子化。 与国外同类应用系统及解决方案相比较,目前中国的管理软件还有一些缺憾:第一,很多是从管理信息系统演变而来,虽然目前国内的管理软件已将模块功能扩展至学校管理或人才资本管理相关的整个业务领域,但系统在整体性、前瞻性和集成性方面仍有欠缺。 2.系统需求分析2.1 系统需求分析 作为网上订餐管理系统,首先需要具有管理员可以运用系统来进行登记的功能。 管理员拥有所有权限 。在进行登记后,员工就可以登录了,在登录以后可以对现有的信息的查看、修改等。其次,非系统用户要登录系统必须注册且需与账号进行绑定,账号可为银行卡亦可为支付宝账号。用户登录可以登录进行订餐,并查看相关信息,进行相关操作。由于网上订餐管理系统是信息管理系统,利用计算机网络的巨大潜在力量、数据信息的理念,从而减少人、物及财等方面上的消耗,完成合理的资源分配。2.2 功能需求 v 管理员登录系统添加员工 v 管理员查看交易记录信息,查看所有用户信息v 管理员可以查看菜单,查看个人信息并修改个人信息v 员工登录查看并及时更新菜单,添加菜品类型v 员工查看今日订单,查看个人信息以及修改个人信息v 非该系统用户必须注册方可登录v 系统用户登录可以订餐,v 用户修改个人信息,查看个人交易记录 2.3系统功能模块图 网上订餐管理系统用户操作基础信息管理员操作员工操作更改个人信息查询个人订单记录注册 订餐用户信息添加员工查询所有用户信息查询所有交易记录更新菜单信息查看今日订单更新个人信息 关于关于注册 订餐订餐查看个人订单修改个人信息关于3 系统设计3.1 系统总体结构根据以上对网上订餐管理系统的功能需求分析。现对餐饮管理系统分析。管理员登录系统添加用工信息,可以查询所有订单记录,可以查询所有用户信息,包括(员工,用户,管理员信息)。只有管理员将该员工加入用户表,员工才可以登录该系统,员工可以查询今日订单,更新菜单信息 ,添加新的菜品类型。非系统用户需注册信息方可登陆,系统用户可以订餐,并实现支付功能,该用户注册时需与卡绑定,用户可以更改个人信息,查询个人订单情况。3.2 数据库设计在开发网上订餐管理系统之前,分析了改系统的数据量,该系统数据量主要有菜单信息,用户信息,员工信息,交易记录信息会占用较大的的的空间,所以选择用Microsoft SQLServer2005数据库来存储这些信息 ,在数据库中创建了5个表来存储相关信息。3.2.1 E-R图设计user表用户信息,包括管理员,员工主要是厨师,用户等相关信息;chushi表存储出示相关信息;caidan表存储菜品相关信息;jiaoyirecord存储交易相关信息,包括交易时间、用户等信息;card表存储银行卡的相关信息。 user表 E-R图设置如图1用户名用户密码类型用户(user)卡号 图1Chushi 表E-R图设置如图2类型厨师(user)厨师ID 图2 Caidan表E-R图如图3菜单编号销量厨师编号菜单名称菜单(caidan)菜品价格菜品类型 图3Jiaoyirecord表ER图如图4用户名菜品名称交易时间交易记录价格 图4 Card表E-R图如图5卡编号卡密码卡信息(card)卡金额 图53.2.2 数据库详细设计 由以上分析可得知数据库需要用户表,厨师表,菜单表,交易记录,卡信息表。经深入思考理解,得到各表主键、外键,以及各表之间的联系,建立关系数据库如下:用户表如图6: 图6 厨师表如图7: 图7菜单表如图8: 图8交易记录表如图9: 图9卡信息表如图10: 图104 系统实现4.1 系统数据库连接实现在系统开发过程中,采用三层架构模式开发,因为要多处涉及到对数据库的连接,如果这些连接都在各个C#.NET程序中去实现,那样将会非常繁琐,代码重复量比较大,因此,为了简化这些连接操作,在开发时设计了一个可重用的类help.cs,把对数据库的操作都封装在在这个类中,需要用到时生成对象调用便可, help. cs文件的主要代码由如下所示:class help Static public string str = Data Source=A0DF1AA4BE8D4FC;Initial Catalog=DingCan;Integrated Security=True; static public SqlConnection conn=new SqlConnection (str); static public SqlDataAdapter adp; static public string username = ; static public string userpsw = ; static public string usertype = ; static public string usercard = ; static public int cardvalue=0;/账号金额 static public int userzhifu=0;/支付金额 static public string dingname = ;/订单中的菜品名称 static public ComboBox caiType1;/添加菜品类型时放菜品类型的 static public int chaType = 0;4.2 系统主要模块实现4.2.1系统登录模块主要代码如下:private void Form1_Load(object sender, EventArgs e) /生成随机的验证码 string s = ; Random rd=new Random (); for (int i = 0; i 0&(txt_yan .Text =label4 .Text) help.username = txt_nam.Text; help.userpsw = txt_psw.Text; string str=ds.Tables001.Rows03.ToString (); help.usertype=str.Trim(); MainFrame mf = new MainFrame(); mf.ShowDialog(); this.Hide(); private void button3_Click(object sender, EventArgs e) Form2 f2 = new Form2(); f2.ShowDialog(); 4.2.2系统主界面模块实现主要代码如下: 该模块调用了系统实现的所有功能。 private void MainFrame_Load(object sender, EventArgs e) string sql = select * from caidan ; help.adp = new SqlDataAdapter(sql, help.conn); DataSet ds = new DataSet(); ds.Clear(); help.adp.Fill(ds, 001); dataGridView2.DataSource = ds.Tables001.DefaultView; toolStripStatusLabel1.Text = 欢迎 + help.username + 登录系统 ; toolStripStatusLabel3.Text = 总共用+ds.Tables 001.Rows.Count .ToString ()+条记录; if (help.usertype = 员工) 添加员工ToolStripMenuItem.Enabled = false; 查看所有用户信息ToolStripMenuItem.Enabled = false; 查看所有订单ToolStripMenuItem.Enabled = false; if (help.usertype = 用户) 添加员工ToolStripMenuItem.Enabled = false; 添加菜单ToolStripMenuItem.Enabled = false; 删除菜品ToolStripMenuItem.Enabled = false; 查看今日订单ToolStripMenuItem.Enabled = false; 查看所有用户信息ToolStripMenuItem.Enabled = false; 查看所有订单ToolStripMenuItem.Enabled = false; private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) private void 订餐ToolStripMenuItem_Click(object sender, EventArgs e) for (int i = 0; i dataGridView2.SelectedRows.Count; i+) help.dingname +=ataGridView2.SelectedRowsi.Cells1.Value.ToString() + ; help.userzhifu += Convert.ToInt32(dataGridView2.SelectedRowsi.Cells3.Value.ToString(); dingcan dc = new dingcan(); dc.gengmf += new dingcan.gengMF(dc_gengmf); dc.ShowDialog(); private void byprice_Click(object sender, EventArgs e) string sql = select * from caidan order by 菜品价格(元) asc; help.adp = new SqlDataAdapter(sql, help.conn); DataSet ds = new DataSet(); ds.Clear(); help.adp.Fill(ds, 001); dataGridView2.DataSource = ds.Tables001.DefaultView; MessageBox.Show(完成); public void dc_gengmf() string sql = select * from caidan ; help.adp = new SqlDataAdapter(sql, help.conn); DataSet ds = new DataSet(); ds.Clear(); help.adp.Fill(ds, 001); dataGridView2.DataSource = ds.Tables001.DefaultView; private void bySell_Click(object sender, EventArgs e) string sql = select * from caidan order by 销量 desc; help.adp = new SqlDataAdapter(sql, help.conn); DataSet ds = new DataSet(); ds.Clear(); help.adp.Fill(ds, 001); dataGridView2.DataSource = ds.Tables001.DefaultView; MessageBox.Show(完成); private void byType_Click(object sender, EventArgs e) string sql = select * from caidan order by 菜品类型 ; help.adp = new SqlDataAdapter(sql, help.conn); DataSet ds = new DataSet(); ds.Clear(); help.adp.Fill(ds, 001); dataGridView2.DataSource = ds.Tables001.DefaultView; MessageBox.Show(完成); private void 添加员工ToolStripMenuItem_Click(object sender, EventArgs e) Addyuangong ad = new Addyuangong(); ad.ShowDialog(); private void 添加菜单ToolStripMenuItem_Click(object sender, EventArgs e) AddCaidan ac = new AddCaidan(); ac.ShowDialog(); private void 删除菜品ToolStripMenuItem_Click(object sender, EventArgs e) if (dataGridView2.SelectedRows.Count = 0) MessageBox.Show(没有选中行,请选择您要删除的菜单项!); SqlCommand cmd; help.conn.Open(); for (int i = 0; i 0) if (Convert.ToInt32(ds.Tables001.Rows02) = help.userzhifu) try int value = Convert.ToInt32(ds.Tables001.Rows02) - help.userzhifu; string text = update card set 账号金额= + value.ToString() + where 账号编码= + textBox1.Text + ; SqlCommand cmd = new SqlCommand(text, help.conn); help.conn.Open(); if (cmd.ExecuteNonQuery() = 1) MessageBox.Show(交易成功!); help.conn.Close(); /生成交易记录 string time = DateTime.Now.ToString(); string text1 = insert into jiaoyirecord values( + help.username + , + help.dingname + , + help.userzhifu + , + time + ); SqlCommand cmd1 = new SqlCommand(text1, help.conn); help.conn.Open(); cmd1.ExecuteNonQuery(); help.conn.Close(); /更新销量 string sqlstr = select * from caidan where 菜品名称= + help.dingname + ; SqlDataAdapter adp = new SqlDataAdapter(sqlstr, help.conn); ds = new DataSet(); ds.Clear(); adp.Fill(ds, 002); int count=Convert.ToInt32 (ds.Tables002.Rows 05.ToString ()+1 ; string text2 = update caidan set 销量= + count.ToString() + where 菜品名称= + help.dingname + ; SqlCommand cmd2 = new SqlCommand(text2, help.conn); help.conn.Open(); cmd2.ExecuteNonQuery(); MessageBox.Show(1); help.conn.Close(); genggai();/更新MainFrame中的DataGridView1中的销量值 catch (Exception ex) MessageBox.Show(ex.Message); else if(MessageBox .Show (textBox1 .Text+账号金额不够,请换一个账号,提醒,MessageBoxButtons .YesNo )=DialogResult .Yes ) textBox1.Text = ; textBox2.Text = ; 4.2.4更改个人信息模块主要代码如下:该模块利用全局变量来记录登录人的名字,密码,账号等信息,以实现更改信息。private void gaiPerMsg_Load(object sender, EventArgs e) textBox1.Text = help.username; textBox2.Text = help.userpsw; private void button1_Click(object sender, EventArgs e) if (textBox5.Text = textBox6.Text) SqlCommand cmd = new SqlCommand(); cmd.CommandText = update user set 用户名= + textBox4.Text + ,密码= + textBox5.Text + where 用户名= + help.username + ; cmd.Connection = help.conn; help.conn.Open(); cmd.ExecuteNonQuery(); help.conn.Close(); else MessageBox.Show(两次输入密码不一致,请重新输入!); textBox5.Text = ; textBox6.Text = ; 4.2.5查询订单信息模块查询订单信息模块包括个人订单查询、所有订单查询、今日订单查询,总共一个窗体,设置了一个全局变量chaType来区分是哪种查询。主要代码如下:private void ChaInfor_Load(object sender, EventArgs e) SqlDataAdapter adp; DataSet ds; if (help.chaType = 0) this.Text = 所有用户信息; try string sql = select 用户名,类型 from user; adp = new SqlDataAdapter(sql, help.conn); ds = new DataSet(); ds.Clear(); adp.Fill(ds, 001); dataGridView1 .DataSource =ds.Tables 001.DefaultView ; catch (Exception ex) MessageBox .Show (ex.Message ); if(help.chaType =1) this.Text = 今日订单; try string sql = select * from jiaoyirecord; adp = new SqlDataAdapter(sql, help.conn); ds = new DataSet(); ds.Clear(); adp.Fill(ds, 001); for (int i=0; i ds.Tables001.Rows.Count; i+) string temp = ds.Tables001.Rowsi3.ToString(); string

温馨提示

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

评论

0/150

提交评论