




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计面向对象程序设计 课程设计课程设计题 目: 模拟自动售货机 院 系: 数学与计算科学 专 业: 信息与计算科学 姓名学号: 1 指导老师: 日 期: 2015 年 1 月 8 日面对对象程序设计课程设计报告2摘 要随着社会的发展和不断进步,人们的物质文化与精神文化都在明显的提高,各种各样的高科技产品也应运而生并慢慢融入人们的生活,如信用卡支付、手机、地铁等等,当然,还有随处可见的自动售货机。我基于自己所学,设计了一款饮料自动售货机。该售货机操作简单,适合广大民众生活。这个自动售货机是在 Windows 环境下用 Microsoft Visual Studio 2008 工具,基于 MFC 框架设计的,可以实现初始化界面,让界面美观简洁。程序通过CRC 卡分析,建立 UML 类图,把程序功能具体化,用需求分析与方案论证,从而实现自动售货机的开发过程。关键字:自动售货机 MFC CRC 卡 UML 类图面对对象程序设计课程设计报告3AbstractWith the development of society and progress, peoples material culture and spiritual culture are obviously improved, a variety of high-tech products also arises at the historic moment and slowly into peoples lives, such as credit card payments, mobile phone, the subway and so on, of course, and the everywhere vending machine. I use my learned knowledge, designed a drinks vending machine. The vending machine operation is simple, so it is suitable for the general public life. This vending machine is in the Windows environment using Microsoft Visual Studio 2008 tools, and based on the MFC framework to design, it can implement initialization interface, and let the interface beautiful and concise. The program through the analysis of CRC card to establish a UML class diagram, let the program function is specific, it also using demand analysis and scheme comparison to realize the development process of the vending machine.Key words: The vending machine MFC CRC card UML class diagrams面对对象程序设计课程设计报告4目 录摘 要 .2Abstract .3目 录 .4引言 .5一、课程设计内容 .51.1、题目要求 .51.2、课程设计目的 .61.3、CRC 分析过程陈述 .61.4、UML 类图 .7二、设计分析 .72.1、界面初始化 .72.1.1、关于对话框设置 .72.1.2、关于按钮设置 .82.2、出售商品设置 .92.3、售货机工作员设置 .15三、运行结果 .163.1、投币操作 .163.1.1、金额充足显示 .163.1.2、金额不足显示 .163.2、继续投币操作 .173.3、退币操作 .183.4、停止售卖 .183.4.1、金额上限停止显示 .193.4.2、商品售完显示 .19四、心得体会 .20五、参考文献 .21面对对象程序设计课程设计报告5引言本次课设是用 C+语言编写一个模拟自动售货机程序,要求用户从售货机商品列表选择某一商品并投入硬币。如果金额足够,则提供相应商品;如果金额不够,或者该商品已售完,则将硬币退回。维护售货机的工作人员可以为其添加商品或者取走售货款项。为了让设计界面更优美,我选择用 MFC 来设计,并让程序能实现当售货机金额达到 5000 元时,将停止买卖,工作人员必须取走货款,在金额不够,退还硬币时要提示差多少钱,允许多次投币,由用户决定是继续投币还是退还硬币等操作。一、课程设计内容1.1、题目要求编写一个程序模拟自动售货机。可以通过向售货机中投入硬币来购买商品。用户从售货机商品列表选择某一商品并投入硬币。如果金额足够,则提供相应商品;如果金额不够,或者该商品已售完,则将硬币退回。维护售货机的工作人员可以为其添加商品或者取走售货款项。利用 CRC 卡片设计类和类中的方法,同时给出 UML 图并实现该程序。扩展功能:1)当售货机金额达到 5000 元时,将停止买卖,工作人员必须取走货款。2)在金额不够,退还硬币时要提示差多少钱,允许多次投币,由用户决定是继续投币还是退还硬币。面对对象程序设计课程设计报告61.2、课程设计目的本次课程设计是为了检验我们在面对对象程序设计的学习过程中所学到知识,提高和加强我们的计算机应用及软件开发能力,要 求 我 们 达 到 熟 练 掌 握 C+语言的基本知识和程序调 试 技 能 ; 基本掌握面向对象程序设计的基本思路和方法;培养我们独立分析问题、解决问题、查阅资料与及自学的能力,让我们能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1.3、 CRC 分析过程陈述程序中有 Buy Dialog 和 About Dialog 两个类 ,前者用于用户购买商品,后者用于管理员登录、取款、添加货物操作。Buy DialogThe purchase of goods About DialogAbout DialogThe administrator loginWithdrawalsAdd the goodsBuy Dialog面对对象程序设计课程设计报告71.4、 UML 类图二、设计分析设计思想:利用 VS 2008 软件中的 Windows MFC 编程功能,创建一个对话框程序,利用控件菜单在对话框中创建若干按钮控件,作为售货机的十二个按钮以及其他功能的按钮,再添加一个编辑框,作为售货机的显示模块。调整控件的位置和布局,尽量使售货机界面美观实用。利用类向导功能为相应的控件创建成员变量及成员函数,在相应的函数位置添加函数功能实现代码,然后进行编译调试,修改程序,进一步完善售货机功能。通过设置一些标志变量,根据具体的变量值,来判断应该进行的操作,然后将结果传递给编辑框的变量,通过更新消息显示结果。 2.1、界面初始化2.1.1、关于对话框设置设计应用程序“关于”菜单项的 CAboutDlg 对话框和 CBuyDlg 对话框面对对象程序设计课程设计报告8class CAboutDlg : public CDialogpublic:CAboutDlg();enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX);CBuyDlg:CBuyDlg(CWnd* pParent /*=NULL*/): CDialog(CBuyDlg:IDD, pParent), m_inValue(0), m_outValue(0), m_shuchu(_T(“)m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CBuyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_INMONEY, m_inValue);DDX_Text(pDX, IDC_OUTMONEY, m_outValue);DDX_Text(pDX, IDC_SHUCHU, m_shuchu);DDX_Control(pDX, IDC_SHUCHU, m_cshow);2.1.2、关于按钮设置给 12 个按钮赋值,即为每一个商品的数量赋值,设计按钮的激活与禁止。int a122=0,5,1,3,2,4,3,5,4,6,5,7,6,8,7,9,8,10,9,6,10,4,11,3;int b122=0,5,1,3,2,4,3,5,4,6,5,7,6,8,7,9,8,10,9,6,10,4,11,3;void CBuyDlg:xian()/按钮激活EnableWindow(IDC_KELE,TRUE);EnableWindow(IDC_XUEBI,TRUE);EnableWindow(IDC_CHENGZHI,TRUE);EnableWindow(IDC_DOUJIANG,TRUE);面对对象程序设计课程设计报告9EnableWindow(IDC_CHUNNAI,TRUE);EnableWindow(IDC_KUANGQUANSHUI,TRUE);EnableWindow(IDC_MAIDONG,TRUE);EnableWindow(IDC_GUOZHI,TRUE);EnableWindow(IDC_XIANNAI,TRUE);EnableWindow(IDC_QIAOKELI,TRUE);EnableWindow(IDC_YINGYANG,TRUE);EnableWindow(IDC_GUOLIDUO,TRUE);void CBuyDlg:jinzhi()/按钮禁止EnableWindow(IDC_KELE,FALSE);EnableWindow(IDC_XUEBI,FALSE);EnableWindow(IDC_CHENGZHI,FALSE);EnableWindow(IDC_DOUJIANG,FALSE);EnableWindow(IDC_CHUNNAI,FALSE);EnableWindow(IDC_KUANGQUANSHUI,FALSE);EnableWindow(IDC_MAIDONG,FALSE);EnableWindow(IDC_GUOZHI,FALSE);EnableWindow(IDC_XIANNAI,FALSE);EnableWindow(IDC_QIAOKELI,FALSE);EnableWindow(IDC_YINGYANG,FALSE);EnableWindow(IDC_GUOLIDUO,FALSE);2.2、出售商品设置设计输入金额时,累加输入和销售商品的金额,并用 switch 语句判断此时售货机是否还有存货,在满足售卖条件下售卖饮料,若某商品已售完,则使对应按钮变暗;若金额小于所要买的商品,提示差额。void CBuyDlg:panduan(int i,float price)UpdateData(TRUE);m_cshow.PostMessage(WM_VSCROLL,SB_BOTTOM,0);float number;number = m_inValue+m_in;/金额输入累加m_in=0;面对对象程序设计课程设计报告10if(number=price)number=number-price;switch(i)case 0:if(a010)m_shuchu+=“可乐购买成功!rn“;a01-;b01-;if(a01)=0)/数量等于 0EnableWindow(IDC_KELE,FALSE);/让按钮变灰色m_shuchu+=“可乐已经售完,请选择其他商品!rn“;elseEnableWindow(IDC_KELE,FALSE);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-新疆-新疆农业技术员五级(初级工)历年参考题库含答案解析(5套)
- 酒店前期运营规划方案(3篇)
- 休闲用地设计方案(3篇)
- 黑龙江省哈尔滨市2025届高三第四次模拟生物试题(解析版)
- 鱼池养鱼风险评估方案(3篇)
- 河南省焦作市2025届高三下学期4月期中测试生物试题(解析版)
- 电力配电施工方案(3篇)
- 药房医保使用方案(3篇)
- 燃气小镇规划方案(3篇)
- 2025年钢筋翻样师技能理论考试题及答案
- 装修砸墙安全协议书
- 电力建设火力发电工程智慧工地技术规范
- 国企金融考试题及答案
- 2025淄博市沂源县南麻街道社区工作者考试真题
- 2025+CSCO肿瘤治疗所致血小板减少症(CTIT)诊疗指南解读
- 装修项目可行性研究报告
- 中国迎宾踏板行业市场前景预测及投资价值评估分析报告
- 2025-2030中国速凝剂行业市场深度调研及竞争格局与投资研究报告
- 2025年创伤救治理论知识试题及答案
- 留置导尿管术操作流程
- 中职生单招语文必背古诗文(35篇)
评论
0/150
提交评论