ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:1.27MB ,
资源ID:14577308      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14577308.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++课程设计报告18561551Word下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++课程设计报告18561551Word下载.docx

1、幸运521.基本功能描述 (1)首先点击运行程序,进入到程序主界面。当用户在没有点击“开始”按钮之前,点击确定按钮时,系统将弹出对话框,提示“请先单击开始按钮开始选择商品”;当用户在点击“开始”按钮后,即启动计时器,系统将随机给出一件商品并在界面上显示商品的名称,用户即可根据这些信息对商品进行估价。 (2)游戏开始后,在规定时间内,用户在没有输入价格的情况下,单击确定按钮,系统将弹出对话框,提示“请先输入商品价格,再进行提交”;当输入估计的价格并单击“确定”按钮,系统将会弹出一个消息框用来提示估价是猜对啦、高啦或是低啦,在弹出的消息框中单击“确定”按钮后,即可以再次进行估价。用户对同一商品的估

2、价的次数不得超过6次。超过6次后系统将弹出对话框提示,“你的猜测次数已经大于6次,将自动进入到下一件商品的估价!”,单击“确定”按钮后自动进入下一件商品的估价。 (3)游戏过程中,如果对当前的成绩不是很满意,可以点击重新开始,系统会重新启动定时器,并将随机给出一件商品并在界面上显示商品的名称,即可以重新对商品进行估价,上一局游戏的成绩将被清零。当点击“查看最高纪录”按钮,系统将弹出对话框,显示“最多猜中次数”及“姓名”。 (4)当计时结束时,系统将弹出对话框,提示“时间到了,游戏结束”,此时,如果用户创造了最高纪录,系统将自动弹出对话框,用户可在弹出的对话框内输入姓名,点击确定,系统将保存最高

3、纪录并退出。2.设计思路首先利用MFC应用程序向导制作基本对话框的界面,按照自己预先设计的样式进行界面的制作。确定按钮的个数,位置;编辑框的个数,位置,部分编辑框的属性需设置为只读;静态文本框的提示文字、位置等等。其次,给每一个控件修改ID以便于自己的识别。做好界面以后,可以按照如下的程序流程图来编写程序: 主程序 子程序2 图1 幸运52游戏程序流程图 程序设计的思路是按照程序需要实现的功能来进行。第一,要确定哪些控件需要关联消息响应函数,每一个函数该如何编写,实现该功能的函数是否为MFC类库中的函数;第二,要分清楚各函数之间的调用关系,以及函数的带参数情况。第三,要区分哪些是基本功能,需要

4、优先实现,哪些是附加功能,在基本功能之后实现。在对话框类头文件中设定三个数组,分别用来存储商品的图片(Bitmap12)、名称(name12)和价格(price12);在构造函数中完成相应的初始化,在初始化函数中设定计时器初值与范围。“开始”按钮关联的函数中,启动计时器,自动调用OnTimer(),并产生一个随机数num,作为商品名称数组与图片数组的下标,使界面上显示对应商品的名称与图片。“确定”按钮对应的函数中,将用户的估价与商品的真实价格进行比较,高于、低于或等于均弹出对话框给出提示。在OnTimer()中实现进度条的前进,当计时结束后,取存取最高纪录文本中的次数与本轮正确次数相比较,若本

5、轮正确次数大于历史成绩,弹出一个对话框,要求用户输入自己的姓名,并将该次数存储在score.txt文件中,姓名则存储在name.txt文件中。在“查看最高纪录”按钮关联的函数中,打开上述两个文档,按设定的格式输出文件里面的内容。在“重新开始”按钮对应函数中,重新设置进度条初值为0,清零上一局游戏的成绩并调用“开始”按钮所关联的函数。如果用户希望结束游戏则可以单击“取消”按钮,游戏结束。3.软件设计3.1设计步骤 (1)打开Microsoft Visual C+ 6.0应用程序,在File菜单下选择NEW,创建MFC AppWizard(exe)工程,键入的工程名为tanglei,在应用程序类型

6、中选择基本对话框,其他属性直接选用默认,单击“确定”完成对话框的创建。最后弹出新建工程信息对话框,该对话框列出了关于新建的应用程序项目文件的相关信息。单击确定,应用程序向导所有的工作就全部完成了,此时向导为用户生成了一个可执行的应用程序框架。图2 选择基于对话框,其他默认,单击“完成”(2)初始化界面,在对话框中添加所需的控件,如按钮,文本,编辑框,菜单,Picture控件,进度条,将它们放置在相应的位置上。根据需要对其属性进行修改,添加对应的控件变量,并建立类向导,在相应的地方添加响应函数。图3 添加控件并设定属性 (3)在实现文件.cpp中添加实现功能所需要的各种函数,并添加相应的代码,同

7、时在头文件中添加对各种函数及变量的声明。 (4)对完成后的程序进行调试,修改其中的错误,直到程序运行不再报错,并能够实现所要求的各项功能。当遇到不懂的报错可以用英语电子词典翻译错误以帮助分析。3.2界面设计(1)初始化界面如下所示:图4 主界面初始显示图(2)主对话框控件设置如下:表1 主界面对话框控件表控件名称控件类型属性(ID)对应变量类型对应变量名开始按钮IDC_BEGIN确定IDC_YESCButtonm_yes取消IDC_CANCEL查看最高记录IDC_CHECK重新开始IDC_AGAIN文字标识静态文本IDC_STATIC剩余时间进度条IDC_PROGRESS1商品名称只读编辑框I

8、DC_TITLECstringm_title商品价格编辑框IDC_PRICEintm_price本论正确次数显示IDC_TRUEm_true当前错误次数显示IDC_FALSEm_false图片显示位图IDC_PICTURE(3)主界面按钮响应函数表如下:表2 主界面按钮响应函数表响应函数名称CTangleiDlg:OnBegin( )OnYes( )OnCancel( )查看最该记录OnCheck( )OnAgain( ) (4)打破纪录对话框界面如下所示:图5 打破纪录对话框显示图(5)打破纪录对话框控件设置如下:表3 输入姓名对话框控件表IDOK退出IDCANCELIDSTATIC姓名输入

9、IDNAMEm_name3.3关键功能的实现 (1)输入焦点的控制:当运行程序时或比较价格后应该设置焦点使得光标在在估价输入框上,在OnBegin()函数中采用GetDlgItem(IDC_PRICE)-SetFocus()实现。这样每一次按下“确定”按钮都会将焦点设定在估价输入编辑框内。 (2)设计初始界面:首先生成一个基于对话框的基本框架,再添加控件例如按钮,编辑框,位图,进度条等,并设置属性,然后为相关控件关联变量,为具有操作功能的按钮添加必要的消息响应函数。 (3)随机显示某一种商品:首先引入13张位图资源,ID号设置为IDB_BITMAP0到IDB_BITMAP12,其中图像控件的I

10、D设为IDB_BITMAP12,这样在游戏未开始时即显示该宣传图片。然后,在对话框类的声明文件中定义三个数组,分别存储商品的名称、价格和图片;接着在对话框类的构造函数中为名称和价格数组初始化,并采用LoadBitmap( )实现位图的加载来完成图片数组的初始化,并使同一商品在三个数组中对应的下标相同;利用srand(time(NULL);num=rad( )%12产生一个0到11的随机数,将此随机数作为数组的下标,选择所要选择的商品的三种属性。 (4)计时:游戏开始时在OnBegin()函数中调用SetTimer(NULL)函数启动计时器并主动调用OnTimer(UINT nIDEvent)函

11、数对进度条进行设置。其中SetTimer()函数第一个参数表示计时器的ID号,第二个参数表示时间步长,以毫秒为单位,本程序设定100ms为步长,每隔步长时间就发送一个WM_TIMER消息;收到此消息,程序会自动执行OnTimer函数,每执行一次此函数就会让进度条前进一步;设定进度条共有300步,则游戏设定的总时间为30s。 (5)对估价的判断与正确次数、错误次数的统计:取用户输入估价与真实价格进行比较,若估价与真实价格不符,则弹出提示消息框提示“高啦”还是“低啦”并使错误次数i加1,再比较i与6的大小,i6即一件商品的估价次数已达到六次,此时将i清零,并使猜错次数的变量error加1,且前台更

12、新显示;若估价与真实价格相等,则使正确次数j加1同时使错误次数i为0,接着调用OnBegin()函数显示下一种商品。 (6)对历史最高纪录的处理:历史最高纪录不仅仅只是程序本次运行的最高纪录,而应该是程序以往运行与本次运行共同的历史最高纪录,若在程序中设定两个变量用来存储最多猜中次数与姓名,在退出程序时,变量会被消毁,因此实现不了此功能。为此,在工程文件夹中创建两个文本文档分别为score.txt与name.txt,分别用来存储最高纪录的次数和姓名。每轮游戏计时结束时将读取score.txt中内容与本轮正确次数j比较,若j大于其中内容,便弹出一个对话框要求用户输入自己的名字,并将输入的姓名替代

13、name.txt中的内容,同时将j代替score.txt中的内容。 (7)查看最高纪录:当用户查看最高纪录时,分别从score.txt和name.txt中读取最高纪录次数与姓名,在对话框中予以显示。 (8)重新开始游戏:当用户重新开始游戏时,将变量i、j和error清零,对进度条重新进行设置,使其初值为0,再调用“开始”按钮对应的CTangleiDlg:OnBegin()函数。4.结论与心得体会这次课程设计总的来说对我起到了很大的锻炼作用,时间上来说还是比较紧张的,刚开始画出程序流程图还是比较轻松的。之后的两天时间便是程序设计与调试了,虽然已经学习过VC+语言,MFC编程这块也讲到了一些,但是

14、课程学习距现在的课程设计有一段时间了,有些东西只是有些印象,当真正用起来的时候,还是有些不熟练,其间,有查阅了一些资料和课件PPT,主要是对控件该关联什么类型的变量,以及这些变量该如何使用,对一些具有操作功能的按钮关联消息响应函数后,如何编写这些函数的实现代码以及各个函数之间的调用是难点。系统提供的类的函数是相当多的,想要把它们全部弄懂然后在开始编写程序几乎是不可能的。只能是用到哪个函数再去具体的了解它,这样上手比较快,学习积极性也较高。这次的课程设计的题目是采用抽签的方式来选定的,当选到幸运52之后,自己对幸运52还是有一点的了解的,而且本次的课程设计的要求也只是要实现基本的功能。刚开始做程序界面还是比较轻松的,在设置控件的ID号时,尽量用其英文名来设置,这样识别起来很方便。之后,在对控件进行关联变量时,就有些犯难了,不知

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

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