餐饮管理系统代码Word下载.docx
《餐饮管理系统代码Word下载.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统代码Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
新的应用程序开发模型意味着越来越多地解决方案依赖于新出现的网络标准,例如HTML,XML,SOAP等。
现存的开发工具往往都是早于Internet出现的,或者是在我们所熟知的网络还处于孕育期时出现的。
所以,它们一般无法很好地支持最新的网络技术。
C#程序员可以在Microsoft
.NET平台上事半功倍的构建应用程序的扩展框架。
C#包含了内置的特性,使任何组件可以轻松转化为XML网络服务,通过Internet被任何操作系统上运行的任何程序调用。
更突出的是,XML网络服务框架可以使现有的XML网络服务对程序员来说就和C#对象一样。
这样,程序员就可以方便地使用他们已有的面向对象的编程技巧来开发利用现有的XML网络服务。
还有一些精细的特性,使得C#成为一流的网络编程工具。
例如,XML正逐渐成为在网络上传输结构化数据的标准。
这种数据集合往往非常小。
为提高性能,C#允许把XML数据直接映射到struct数据类型,而不是class。
这样对处理少量的数据非常有效。
消除大量程序错误
即使是专家级的C++程序员也常会犯一些最简单的小错误——比如忘了初始化变量,但往往就是这些小错误带来了难以预料的问题,有些甚至需要很长时间来寻找和解决。
一旦一个程序作为产品来使用,就算最简单的错误纠正起来也可能要付出极其昂贵的代价。
C#的现代化设计能够消除很多常见的C++编程错误。
例如:
1.
资源回收减轻了程序员内存管理的负担。
2.
C#中变量由环境自动初始化。
3.
变量是类型安全的。
这样,程序员编写与维护那些解决复杂商业问题的程序就更方便了。
对版本的更新提供内在的支持降低了开发成本
更新软件组件是一项很容易出错的工作,因为代码的修改可能无意间改变原有程序的语义。
为协助开发者进行这项工作,C#为版本的更新提供内在的支持。
例如,方法重载必须显式声明。
这样可以防止编码错误,保证版本更新的灵活性。
还有一个相关的特性就是对接口和接口继承的内在支持。
这些特性使得C#可以开发复杂的框架并且随着时间不断发展更新它。
总体来说,这些特性使得开发程序项目的后续版本的过程更加健壮,从而减少后续版本的开发成本。
商业过程和软件实现的更好对应
企业的商业计划要付诸现实,必须在抽象的商业过程和实际的软件实现之间建立紧密地对应。
不过大多数语言都很难做到这点。
例如,如今的程序员们一般使用代码注释来注明哪个类对应于某个抽象的商业对象。
C#语言允许类型定义的,扩展的元数据。
这些元数据可以应用于任何对象。
项目构建者可以定义领域特有的属性并把他们应用于任何语言元素-类,接口等等。
然后,开发人员可以编程检查每个元素的属性。
这样,很多工作都变得方便多了,比如编写一个小工具来自动检查每个类或接口是否被正确定义为某个抽象商业对象的一部分,或者只是创建一份基于对象的领域特有属性的报表。
定制的元数据和程序代码之间的紧密对应有助于加强程序的预期行为和实际实现的之间的对应关系。
扩展交互性
作为一种自动管理的,类型安全的环境,C#适合于大多数企业应用程序。
但实际的经验表明有些应用程序仍然需要一些底层的代码,要么是因为基于性能的考虑,要么是因为要与现有的应用程序接口兼容。
这些情况可能会迫使开发者使用C++,
即使他们本身宁愿使用更高效的开发环境。
C#采用以下对策来解决这一问题:
1.
内置对组建对象模型(COM)和基于Windows?
的API的支持;
2.允许有限制地使用纯指针(Native
Pointer)。
在C#中,每个对象都自动生成为一个COM对象。
开发者不再需要显式的实现IUnknown和其他COM接口.这些功能都是内置的.类似的,C#可以调用现有的COM对象,无论它是由什么语言编写的。
C#包含了一个特殊的功能,使程序可以调用任何纯API。
在一段特别标记的代码中,开发者可以使用指针和传统C/C++特性,如手工的内存管理和指针运算。
这是其相对于其它环境的极大优势。
这意味着C#程序员可以在原有的C/C++代码的基础上编写程序,而不是彻底放弃那些代码。
无论是支持COM还是纯API的调用,都是为了使开发者在C#环境中直接拥有必要的强大功能。
一、问题及难点所在
1.数据库操作。
包括ACCESS数据库中数据表的制作,在程序中利用ADO技术进行数据的查询,检索,增加删除等操作,以及数据库。
2.模块之间的连接问题。
模块之间相互联系,进行数据交换,必须兼顾数据安全性和各个类之间的连接性的问题。
3.系统安全性问题,由于数据库中存在金额等重要数据,必须对每个用户的访问权限加以限制,并可以修改用户权限。
二、
需求分析
随着现代社会的发展,餐饮行业作为服务业的龙头企业规模不断扩大,一个大型酒店的餐饮服务部门往往服务许多客人,而一个企业的经营管理人员往往分工明确,一个人或几个人无法完成如此繁杂的账目统计和餐饮结账等工作,传统的算账、记账等人工操作系统已经不能再适应现代企业的发展。
为了使餐饮系统可以得到高效运转,伴随着计算机的普及,因此需要专业的餐饮管理系统来完成工作。
我的课程设计就是在此背景下完成的,本套餐饮管理系统有着完整的客人消费流程,餐馆的经理和营业员均可已使用该系统,该系统解决了人工计算餐饮费用的各种不利因素,实现科学的点菜和结账管理,省时省力,适合大多数中小型餐馆使用,市场前景广阔。
三、
概要设计
首先,要实现餐饮管理的功能,需要设计五个功能模块,分别为开台,点菜,加减菜,结账,数量选择等模块。
然后先进行对话框的设计,分别设计IDD_diancai,IDD_jiacai,IDD_jiezhangdlg,IDD_kaitai,IDD_SHULIANG这五个对话框,在对话框上摆放控件,给控件修改ID号码,同时给各个对话框建立一个类,分别为CDiancaidlg,CJiacaidlg,CJiezhangdlg,CKaitaidlg,CSLdlg,并根据需要利用类向导为控件关联成员变量,建立成员函数和消息响应函数。
其次,要增加系统的安全性能,实现管理员的登录功能,为管理员设置权限,分为经理和营业员两种,分别对不同权限的人开放不同的模块,在登录之前将所有功能都屏蔽。
设计登录、注册和账户权限管理对话框,并为每个对话框设置类,给控件添加成员变量,编写代码。
本系统使用ACCESS数据库对数据进行存储,利用ADO技术访问数据库,实现数据的检索,查询,插入,删除,更改等功能。
在数据库中设计了四张数据表,分别为caishiinfo存放菜式信息,Login存放用户名和密码信息,paybill存放账单信息,TableUSE存放桌子使用情况的信息。
然后再MFC程序中可以通过ADO语句来访问和操作数据库实现功能。
对界面进行美化,使用MFC皮肤给应用程序添加自己喜欢的皮肤,给对话框添加FALSH插件进行美化。
六、代码
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
System.Text;
using
System.Windows.Forms;
using
System.Collections;
namespace
餐饮管理系统
{
public
partial
class
frmManagement
:
Form
...{
ArrayList
RoomStatus
=
new
ArrayList();
ArrayList
VipClass
new
ArrayList();
public
frmManagement()
...{
InitializeComponent();
}
private
void
房间类型BindingNavigatorSaveItem_Click(object
sender,
EventArgs
e)
this.Validate();
this.房间类型BindingSource.EndEdit();
this.房间类型TableAdapter.Update(this.dieteticManagementDataSet.房间类型);
private
void
frmManagement_Load(object
sender,
EventArgs
e)
...{
this.管理员TableAdapter.Fill(this.dieteticManagementDataSet.管理员);
this.vipTableAdapter.Fill(this.dieteticManagementDataSet.Vip);
33
this.餐牌TableAdapter.Fill(this.dieteticManagementDataSet.餐牌);
this.食品类别TableAdapter.Fill(this.dieteticManagementDataSet.食品类别);
this.餐房TableAdapter.Fill(this.dieteticManagementDataSet.餐房);
this.房间类型TableAdapter.Fill(this.dieteticManagementDataSet.房间类型);
VipClass.Add("
普通会员"
);
VipClass.Add("中级会员"
VipClass.Add("
高级会员");
RoomStatus.Add("
可供"
);
RoomStatus.Add("
预订"
RoomStatus.Add("
占用"
RoomStatus.Add("
停用"
RoomStatus.Add("
脏台");
性别ComboBox.Items.Add("
男"
性别ComboBox.Items.Add("
女"
级别ComboBox.Items.Clear();
foreach
(string
s
in
VipClass)
级别ComboBox.Items.Add(s);
餐台状态ComboBox.Items.Clear();
foreach
(string
in
RoomStatus)
餐台状态ComboBox.Items.Add(s);
string[]
sdata
Program.DBOpertor.GetRoomClass();
房间类型ComboBox.Items.Clear();
for
(int
i
=
0;
i
<
sdata.Length;
i++)
房间类型ComboBox.Items.Add(sdata[i]);
}
void
餐房BindingNavigatorSaveItem_Click(object
sender,
EventArgs
...{
this.Validate();
this.餐房BindingSource.EndEdit();
this.餐房TableAdapter.Update(this.dieteticManagementDataSet.餐房);
private
void
Add_Click(object
sender,
EventArgs
e)
...{
//new
frmAddAndModification(餐房DataGridView,
this.dieteticManagementDataSet.餐房).Show();
frm餐房
f=new
frm餐房(this.dieteticManagementDataSet.餐房,"
Add"
foreach
(string
RoomStatus)
f.餐台状态ComboBox.Items.Add(s);
string[]
sdata
Program.DBOpertor.GetRoomClass();
(int
sdata.Length;
f.房间类型ComboBox.Items.Add(sdata[i]);
f.ShowDialog();
//
f.Dispose();
private
void
Delete_Click(object
sender,
EventArgs
...{
if
(MessageBox.Show("
确定要删除吗?
"
删除确定"
,
MessageBoxButtons.YesNo)
==
DialogResult.Yes)
...{
string
no
餐房DataGridView.CurrentRow.Cells[0].Value.ToString();
this.dieteticManagementDataSet.餐房.Rows.Find(no).Delete();
}
private
void
Modification_Click(object
sender,
EventArgs
e)
string
餐房DataGridView.CurrentRow.Cells[0].Value.ToString();
(frm餐房
f
new
frm餐房(this.dieteticManagementDataSet.餐房.Rows.Find(no),
Modification"
))
...{
foreach
(string
RoomStatus)
f.餐台状态ComboBox.Items.Add(s);
string[]
sdata
Program.DBOpertor.GetRoomClass();
0;
sdata.Length;
f.房间类型ComboBox.Items.Add(sdata[i]);
f.ShowDialog();
button1_Click(object
EventArgs
using
(frm房间类型
new
frm房间类型(this.dieteticManagementDataSet.房间类型,"
f.ShowDialog();
private
button2_Click(object
sender,
EventArgs
(MessageBox.Show("确定要删除吗?
",
"删除确定"
MessageBoxButtons.YesNo)
==
DialogResult.Yes)
string
房间类型DataGridView.CurrentRow.Cells[0].Value.ToString();
this.dieteticManagementDataSet.房间类型.Rows.Find(no).Delete();
void
button3_Click(object
sender,
EventArgs
string
房间类型DataGridView.CurrentRow.Cells[0].Value.ToString();
using
(frm房间类型
frm房间类型(this.dieteticManagementDataSet.房间类型.Rows.Find(no),
Modification"
...{
f.ShowDialog();
private
商品类型添加_Click(object
sender,
EventArgs
...{
(frm商品类型
new
frm商品类型(this.dieteticManagementDataSet.食品类别,
Add"
f.ShowDialog();
商品类型删除_Click(object
EventArgs
(MessageBox.Show("
MessageBoxButtons.YesNo)
DialogResult.Yes)
string
商品类型DataGridView.CurrentRow.Cells[0].Value.ToString();
this.dieteticManagementDataSet.食品类别.Rows.Find(no).Delete();
private
商品类型修改_Click(object
sender,
EventArgs
...{
string
no
商品类型DataGridView.CurrentRow.Cells[0].Value.ToString();
using
(frm商品类型
frm商品类型(this.dieteticManagementDataSet.食品类别.Rows.Find(no),
"Modification"
f.ShowDialog();
private
商品类型保存_Click(object
EventArgs
this.Validate();
this.食品类别