1、目录 1.基本功能描述 1 2.设计思路 1 3.软件设计 3 3.1 设计步骤 3 3.2 界面设计 5 3.3 关键功能的实现 7 4.结论与心得体会 8 5.参考文献 9 6.思考题 9 7.附录 . 10 7.1 调试报告 . 10 7.2 测试结果 . 11 7.3 关键源代码 . 15 1 幸运 52 1.基本功能描述 (1)首先点击运行程序,进入到程序主界面。当用户在没有点击“开始”按钮之前, 点击确定按钮时,系统将弹出对话框,提示“请先单击开始按钮开始选择商品” ;当 用户在点击“开始”按钮后,即启动计时器,系统将随机给出一件商品并在界面上显示商 品的名称,用户即可根据这些信息
2、对商品进行估价。 (2)游戏开始后,在规定时间内,用户在没有输入价格的情况下,单击确定按钮,系 统将弹出对话框,提示“请先输入商品价格,再进行提交” ;当输入估计的价格并单击“确 定”按钮,系统将会弹出一个消息框用来提示估价是猜对啦、高啦或是低啦,在弹出的消 息框中单击“确定”按钮后,即可以再次进行估价。用户对同一商品的估价的次数不得超 过 6 次。超过 6 次后系统将弹出对话框提示, “你的猜测次数已经大于 6 次,将自动进入 到下一件商品的估价! ” ,单击“确定”按钮后自动进入下一件商品的估价。 (3)游戏过程中,如果对当前的成绩不是很满意,可以点击重新开始,系统会重新启 动定时器,并将
3、随机给出一件商品并在界面上显示商品的名称,即可以重新对商品进行估 价,上一局游戏的成绩将被清零。当点击“查看最高纪录”按钮,系统将弹出对话框,显 示“最多猜中次数”及“姓名” 。 (4)当计时结束时,系统将弹出对话框,提示“时间到了,游戏结束” ,此时,如果用 户创造了最高纪录,系统将自动弹出对话框,用户可在弹出的对话框内输入姓名,点击确 定,系统将保存最高纪录并退出。 2.设计思路 首先利用 MFC 应用程序向导制作基本对话框的界面,按照自己预先设计的样式进行 界面的制作。确定按钮的个数,位置;编辑框的个数,位置,部分编辑框的属性需设置为 只读;静态文本框的提示文字、位置等等。其次,给每一个
4、控件修改 ID 以便于自己的识 别。做好界面以后,可以按照如下的程序流程图来编写程序: 2 Y N N Y Y N N Y Y N 子程序 1 Y N 主程序 子程序 2 图 1 幸运 52 游戏程序流程图 初始化 调用子程序 1 判断估价 是否过高 提示估价高了 i+ 提示估价低了 i+ 提示估价正确 j+ i6 计时结束 提示先输入价格 开始 调用子程序 2 j记录 值 结束 开始 输入价格 判断价格 是否相等 判断价格 是否为零 i=0 error+ 开始 启动计时器, 自动 调用 Ontimer() 产生随机数 num, 显示namenum与 Bitmapnum 获取焦点 提示输 入姓
5、名 保存记录 3 程序设计的思路是按照程序需要实现的功能来进行。第一,要确定哪些控件需要关联 消息响应函数,每一个函数该如何编写,实现该功能的函数是否为 MFC 类库中的函数; 第二,要分清楚各函数之间的调用关系,以及函数的带参数情况。第三,要区分哪些是基 本功能,需要优先实现,哪些是附加功能,在基本功能之后实现。 在对话框类头文件中设定三个数组,分别用来存储商品的图片(Bitmap12) 、名称 (name12)和价格(price12) ;在构造函数中完成相应的初始化,在初始化函数中设 定计时器初值与范围。 “开始”按钮关联的函数中,启动计时器,自动调用 OnTimer(),并 产生一个随机
6、数 num,作为商品名称数组与图片数组的下标,使界面上显示对应商品的名 称与图片。 “确定”按钮对应的函数中,将用户的估价与商品的真实价格进行比较,高于、 低于或等于均弹出对话框给出提示。在 OnTimer()中实现进度条的前进,当计时结束后, 取存取最高纪录文本中的次数与本轮正确次数相比较,若本轮正确次数大于历史成绩,弹 出一个对话框,要求用户输入自己的姓名,并将该次数存储在 score.txt 文件中,姓名则存 储在 name.txt 文件中。在“查看最高纪录”按钮关联的函数中,打开上述两个文档,按设 定的格式输出文件里面的内容。在“重新开始”按钮对应函数中,重新设置进度条初值为 0,清零上一局游戏的成绩并调用“开始”按钮所关联的函数。如果用户希望结束游戏则 可以单击“取消”按钮,游戏结束。 3.软件设计 3.1 设计步骤 (1)打开 Microsoft Visual C+ 6.0 应用程序,在 File 菜单下选择 NEW,创建 MFC AppWizard(exe)工程,键入的工程名为 tanglei,在应用程序类型中选择基本对话