肯得基点餐系统(可视化编程)

xiaoxiao2021-02-28  9

 

1.前言 1

1.1项目背景 1

1.2开发环境 1

2.项目内容 1

2.1需求分析 1

2.2总体设计 1

2.3详细设计 1

2.3.1单点餐品 1

2.3.2套餐模块 12

2.3.3活动设计 19                                   

2.4系统测试 20

3.总结 27

3.1主要问题及解决方案 27

3.2体会 27

参考文献 28

1前言

1.1项目背景:

随着计算机技术的飞速发展,我国的餐饮业已经呈现出高速发展的趋势。但是,大多数餐饮的日常管理任然采用的是手工管理的方式,整体的科技水平较低,

传统的手工管理无论是在工作效率、人员成本还是提供决策信息方面都已经很难适应现代化经营管理的要求,因此制约了餐饮行业的规模化发展和整体服务水平的提升。针对餐饮行业的现有的手工点餐的工作,结合计算机,设计出KFC点餐系统,实现点餐工作的电子化,快速的完成点餐,在节省时间的同时也避免了人为错误。通过不断地技术手段个管理制度上的创新,来赢得顾客的信任,使整个操作流程更加迅速简洁、人工化、智能化。

1.2开发环境:VC++6.0

2 项目内容

2.1需求分析:

参考肯得基官网的信息模拟肯得基的收银系统,合理使用C++、结合设计模式(2种以上)至少实现以下功能:

1)正常餐品的结算和找零;

2)基本套餐的结算和找零;

3)使用优惠券购买餐品的结算和找零;

4)在一定时间段内参与店内活动(自行设计或参考官网信息);

5)模拟打印小票的功能(写到文件中)。  

2.2总体设计:

本次程序设计,我们小组是基于可视化的界面进行的程序设计,系统由单品菜单、套餐、活动等三个模块组成,规划系统功能模块如下:

1)单点餐品:包括点餐、删除点错的餐品、清空所有已点餐品、使用优惠券、会员卡、 结账、打印小票、退出程序和向其他的功能模块跳转;

2)套餐:包括点餐、选择是否删除点错或多点的餐品、结账、实收多少、找零、打印小票和关闭套餐界面;

3)活动:参与活动,可以享受各种优惠活动,使用会员卡或使用优惠券;

4)设计原则:单一职责原则,高内聚,低耦合;

5)设计模式:工厂模式

1) 套餐对话框中所使用的控件属性说明如表1-2所示:

                  1-2控件属性说明

ID

控件类型

成员变量

函数

说明

IDC_BUTTON_taocan1

CButton

m_taocan1

OnBUTTONtaocan1

套餐A

IDC_BUTTON_taocan2

CButton

m_taocan2

OnBUTTONtaocan2

套餐B

IDC_BUTTON_taocan3

CButton

m_taocan3

OnBUTTONtaocan3

套餐C

IDC_BUTTON_taocan4

CButton

m_taocan4

OnBUTTONtaocan4

套餐D

IDC_BUTTON_zongjia

CButton

m_button2

OnBUTTONzongjia

总价

IDC_shanchutaocan

CButton

m_button3

Onshanchutaocan

删除

IDC_BUTTON_xiaopiao

CButton

m_button1

OnBUTTON_xiaopiao

小票

IDC_BUTTONqueding

NULL

NULL

OnBUTTONqueding

确定

IDC_EDIT_heji

CString

m_sum

NULL

合计

IDC_EDIT_pay

Int

m_pay

NULL

实收

IDC_EDIT_zhaoling

Int

m_zhaoling

NULL

找零

IDC_LIST_taocan

CListBox

m_LISTtaocan

NULL

列表框

系统时间调用

为对话框的类中新建windows消息\事件,WM_CREATEWM_TIMERDoDataExchange(CDataExchange* pDX)函数中设置定时器,再在OnTimer 函数中添加代码,如下

SetTimer(1,1000,NULL);     //设置定时器

void CKFCDlg::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default

//调用系统时间

SYSTEMTIME st;

    GetLocalTime(&st);

    CString str_time;

    str_time.Format("%d/%d/%d  %d:%d:%d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);

    SetDlgItemText(IDC_STATICTIME,str_time);

    CDialog::OnTimer(nIDEvent);

总结

主要问题及解决方案

1)问题:单点餐品的结账,计算总价

  解决方案:我们在一开始计算总价的时候,原本打算在对话框上放3个静态文本,3个编辑框,2个按钮,点击按钮,计算总价,完成应收、实收、找零的功能。但是不知道怎样将列表控件中的每一列的值相加,再显示在编辑框中,不停的修改、调试,但结果一直不理想,于是我们将这个过程简化,将结果直接在MessageBox中显示,同时将结果显示在小票中,完成结账功能。

2)问题:小票打印

 解决方案:原本来说,一个顾客点餐,即使是既购买了单点餐品,又购买了套餐,也只需要打印一次小票就好,但由于程序中,单点餐品和套餐是两个对话框,两个类之间的变量相互调用错综复杂,于是我们就分在在两个对话框中个各设置了打印小票得到功能,然后将小票都显示在一个文件中。

体会

这次程序设计,肯得基点餐系统,我们小组选用的是利用VC++6.0MFC的可视化来程序设计的。

虽然在大一的时候已经学习过VC++这门课程,但是由于当时没有对课程的内容仔细研究,对这门功课上机操作没有大量的练习,因此在这次程序设计开始的时候就遇到了难题。我们在对话框中添加各种控件,基本搭建好程序的框架界面,去图书馆借阅了与VC++可视化相关的书籍,不会的时候就一步一步尝试着往下做,遇到错误不能逃避,努力去解决,去不停地调试错误,修改错误,向别人请教。

这次的肯得基点餐系统的程序设计,使我明白:

1):在一开始不要着急,要有计划、有目的,先构思好大概方向,心中有底,才能更有把握;

2):团队的合做很是重要,在程序设计遇到分歧时,应该互相商量,实践操作,找到最适合的解决办法;

3):学会学习,可以参考,但一定要有自己的特色;

4):程序设计的过程就是不断地出错和纠错的过程,所以千万不能气馁,遇到困难不停的寻找解决方案,去图书馆借阅相关书籍参考、上网查询资料、向老师同学请教、要不耻下问;

5):认识到自己的不足,也认识到自己和别人的差距在哪里,今后的学习生活中一定要吸取教训,努力学习好专业知识,为以后打好坚实的基础。

参考文献

1. 王育坚.Visual C++面向对象编程(第3版).北京.清华大学出版社,2013. 273~294

2. 郑莉,董渊,何江舟.C++语言程序设计.4版.北京:电子工业出版社,2012.99~103

3. 谭浩强.C++面向对象程序设计(第2版).北京:清华大学出版社,2015.249~264

4. 阎光伟,彭文,徐琳茜.基于案例的Visual C++程序设计教程.北京:清华大学出版社,2012.230~257

5. 龚尚福,贾鹏涛.C/C++语言程序设计.西安电子科技大学出版社,2012.216~224

 

转载请注明原文地址: https://www.6miu.com/read-1400061.html

最新回复(0)