VC++课程设计 餐饮管理系统Word文件下载.docx

上传人:b****0 文档编号:13245267 上传时间:2022-10-08 格式:DOCX 页数:54 大小:665.54KB
下载 相关 举报
VC++课程设计 餐饮管理系统Word文件下载.docx_第1页
第1页 / 共54页
VC++课程设计 餐饮管理系统Word文件下载.docx_第2页
第2页 / 共54页
VC++课程设计 餐饮管理系统Word文件下载.docx_第3页
第3页 / 共54页
VC++课程设计 餐饮管理系统Word文件下载.docx_第4页
第4页 / 共54页
VC++课程设计 餐饮管理系统Word文件下载.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

VC++课程设计 餐饮管理系统Word文件下载.docx

《VC++课程设计 餐饮管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《VC++课程设计 餐饮管理系统Word文件下载.docx(54页珍藏版)》请在冰豆网上搜索。

VC++课程设计 餐饮管理系统Word文件下载.docx

本系统用ACCESS数据库对数据进行存储和读取,系统分为八大模块,分别为管理员登录,注册,开台,点菜,加减菜,数量选择,结账,用户权限管理等模块。

管理员分为经理和营业员两种,不同权限的人登录之后开放不同的模块,然后客人来之后先进行开台操作,然后自动跳出点菜对话框,客人点菜完成之后,在中途还可以进行加减菜的操作。

客人结账时能够显示账单明细,自动计算总金额,自动计算找零金额等。

另外设立用户权限管理模块,可以对不同注册用户进行授予不同权限的操作,从而保证系统的安全性。

工作量:

系统分析设计,对各功能模块的设计与分析,系统的实现,运行环境,运作流程等。

系统的实现部分,主要设计到前台以及后台的代码编写。

安全分析与设计。

工作计划安排:

2012年8月20日---8月21日上午:

确定课设题目,确定课设方案,功能模块设计,确定运行环境为WindowsXP下VC++6.0SP6。

2012年8月21下午---8月22日上午:

设计对话框并制作,设计类的基本功能,制作ACCESS数据库并学习连接数据库,完成了两个类的代码的编写。

2012年8月22日上午---8月22日晚上:

完成四个类代码的编写并进行调试。

2012年8月23日上午---8月23日晚上:

完成对其余两个类的编写,各模块合并运行,设计主界面风格。

2012年8月24日:

调试代码,美化界面,为程序添加注释。

VC++课程设计报告

Ø

软硬件运行环境

开发环境

●AMDAthlon™ⅡNeoProcessorK125,2GB内存,250GB硬盘

●Microsoft®

Windows™XPProfessional

VisualC++6.0

●MicrosoftOfficeAccess2003

运行环境

●Intel®

Pentium®

2及以上处理器,32M以上内存,4G以上硬盘

Windows™XP操作系统,

Microsoft®

Windows7操作系统

问题及难点所在

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插件进行美化。

框图如下:

数据库设计

1.使用ACCESS2003建立canyin.mdb的数据库,在其中添加四张数据表,分别用来存放菜式信息,用户信息,账单信息,桌号信息。

2.在CMyApp类中添加_ConnectionPtr类型的变量m_pCon用于连接数据库。

在窗口初始化函数中添加如下代码,用于连接和访问数据库。

:

CoInitialize(NULL);

//访问COM库

HRESULThr;

//函数返回值,如果这个函数执行完返回时将有包含实际意义的数字,如果立即返回将包含状态信息

try/*try关键字用来表示一个代码块,在可能发生的异常。

对于每一个try语句,必须有至少有一个相应的catch子句。

如果出现异常,c

atch子句参数进行评估,以确定它是否是能够处理特殊情况。

特殊条件下,

如果不能处理任何相应的try语句的catch子句,然后控制权转移的方法调用链和以前的所有异常类型进行评估,

直到找到一个能够处理的条件。

*/

{

hr=m_pCon.CreateInstance("

ADODB.Connection"

);

//创建连接。

CreateInstance是智能指针本身的函数

if(SUCCEEDED(hr))

{

m_pCon->

ConnectionTimeout=3;

hr=m_pCon->

Open("

Provider=Microsoft.Jet.OLEDB.4.0;

DataSource=canyin.mdb"

"

"

adModeUnknown);

//打开到数据库的连接,同步打开连接

}

}

catch(_com_errore)

CStringtemp;

temp.Format("

连接数据库错误信息:

%s"

e.ErrorMessage());

//格式化输出信息

:

MessageBox(NULL,temp,"

提示信息"

NULL);

//弹出消息提醒框

returnfalse;

连接数据库后即可在每个类中添加_ConnectionPtr类型的变量操作数据库。

详细设计

下面对各个类的设计做详细介绍。

●1、用户登录模块

流程图:

左侧插入了一个Flash插件,右侧添加控件,ID号和相应变量如下:

ID号和相应函数为:

IDOKOnOK

IDCANCELOnCancle

(1)用语句externCMyApptheApp;

引入全局变量,然后建立_RecordsetPtr的变量m_pRs用于操作数据库,设置全局变量i用于计算登录输入的次数,当登录超过三次还未输入正确用户名和密码的话就自动退出程序。

(2)登录按钮的实现

首先判断编辑框是否出现输入异常的情况,然后检索数据库确定该用户名和密码是否正确,如果连接数据库成功则在login数据表中按照关键字进行用户名和密码的匹配,如果匹配成功,则登录成功,可以进行下一步操作。

如果用户名和密码输入有误,则弹出消息框进行提示,然后初始化编辑框,再次接受用户名密码。

如果连接数据库没有成功,则弹出消息框进行提示。

在其中全局变量进行计数,如果输入超过三次则推出程序。

登录成功之后,将用户名和密码存入到theApp的成员变量中以备在theApp对所登录的用户权限进行管理。

下面为具体实现的代码:

voidCLogindlg:

OnOK()//登陆按钮的操作

{

//TODO:

Addextravalidationhere

UpdateData();

//调用函数进行数据交换

if(!

m_Uname.IsEmpty()||!

m_Upasswd.IsEmpty())//判断用户名和密码编辑框是否为空

CStringsql="

SELECT*FROMLoginWHEREUname='

+m_Uname+"

'

andUpasswd='

+m_Upasswd+"

;

//在数据表中查询是否存在该用户名和密码

try

m_pRs.CreateInstance("

ADODB.Recordset"

m_pRs->

Open((_variant_t)sql,theApp.m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

if(m_pRs->

adoEOF)

{

AfxMessageBox("

用户名或密码错误!

m_Uname="

m_Upasswd="

//初始化编辑框

i++;

//用全局变量i控制输入错误次数

UpdateData(false);

if(i==3)

{

OnCancel();

//如果输入信息超过三次就退出系统

}

}

else

theApp.name=m_Uname;

theApp.pwd=m_Upasswd;

//登陆成功后将用户名和密码保存

CDialog:

OnOK();

return;

catch(_com_errore)//无法连接数据库

CStringtemp;

temp.Format("

AfxMessageBox(temp);

return;

else

AfxMessageBox("

用户名密码不能为空"

//编辑框为空

}

(3)退出模块直接调用CDialog:

OnCancel()函数退出即可。

●2.开台模块实现

流程图:

引入全局变量,然后建立_RecordsetPtr的变量m_pRs用于操作数据库。

开台模块中在上方显示一个列表框,列表框内显示所有桌子的信息,第一栏是桌号,第二栏是“有人”或者“没人”的显示。

选择有人的桌子会自动报错,选中一个没有人的桌子,双击则会在下方的编辑框中显示选中的桌号,选

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1