中南大学(C++实践报告)_第1页
中南大学(C++实践报告)_第2页
中南大学(C++实践报告)_第3页
中南大学(C++实践报告)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学 本科生课程设计 实践 设计报告 程序设计基础 题 目 MFC 课程设计 学生学号 学生姓名 指导教师 学 院 专业班级 计算机基础教学实验中心 2015 年 06 月 14 日 一 引言 MFC Microsoft Foundation Class Library 微软基础类库 是微软基 Windows 平台下的 C 类库集合 MFC 包含了所有与系统相关的类 其中封装了大多数的 API Application Program Interface 函数 提供了应用程序框架和开发应用程序的工具 如应用程序向导 类向导 可视化资源设计等高效工具 用消息映射处理消息响应 大大简化了 Windows 应用程序的 开发工作 使程序员可以从繁重的编程工作中解脱出来 提高了工作效率 程序设计实践旨在课堂学习的基础上帮助学生掌握 C 应用系统的开发方法和技巧 在系 统学习完 C 程序设计 这门课程后 通过实践对几个小型 C 应用程序实例设计与实现 过程分析 帮助学生利用 C 开发应用系统的一般方法和步骤 掌握 MFC 的基本知识 这次实践采用学生上机与老师集体辅导的方式 以完成老师下发的 C 语言课程设计任务 书 为要求和目的 运用课堂上学习的 C 基础知识 采用 Visual C MFC 编程系统 以全 新的角度和感知去认识 C 语言在编程方面的优越性 在实践过程中 基于对话框的 MFC 应用程序 达到了解基本控件 如静态文本框 命令按钮 编辑框 列表框 组合框等的 使用的目的 还有理解 Windows 应用程序采用 消息传递 事件驱动 的运行机制 本次实践的任务主要分为两个部分 使用 Visual C MFC 编程实现以下功能 输入一元二次方程 ax2 bx c 0 的系数 a b c 计算并输出两个根 x1 x2 编写一个能对列表框进行项目添加 修改和删除操作的应用程序 编写一个程序 绘制 2 2 之间的 sin 曲线 用定时器控制蝴蝶在窗口中飞舞 等共 10 道 将第一部分中选择 3 5 题 做一个综合程序 要求有登陆界面和调用各部分的功能 总体设计 本次实践的主要目的就是了解和掌握运用 MFC 编程的一般思想和具体的操作步骤 实践主 要是基于 MFC 的多文档对话框和单文档视图 通过实践完成第一大部分的任务之后 还要 完成第二部分的综合题目 第二部分的任务由学生自主发挥 自主找资料 询问同学和老 师 第一部分的任务比较简单 具体的就不再描述 关于第二部分 我做了一个基于对文档对 话框 首页为一个登陆页面 需要输入用户名和密码才能登陆 登陆后的页面是把第一大 部分的几个题目连接起来 达到预览的目的 三 详细设计 实践前首先要认识 AppWizard 的工作环境 其项目工作区一共有三个选项卡分别为 ResourceView ClassView FileView 中间是对话框设计界面 右边是控件工具栏 实践过程中 我们是先完成第一大部分的任务 虽然在第一次上机实践前 我仔细地阅读 了老师给我们下发的资料 并且结合 C 程序设计实践教程 了解相关知识 但是在实践 时结果不理想 主要是对创建对话框程序的步骤没有掌握 在经过几次尝试失败后 总结 其一般步骤为 1 建立基于对话框的 MFC 应用程序框架 2 放置控件 3 设置 控件属性 4 为控件连接变量 即为控件命名 5 添加并且编写消息处理函数 基于对话框的 MFC 程序设计 对各种控件的了解和使用显得特别重要 这里就不一一详细 介绍它们的功能 控件控制栏一个有 26 个控件图标 每一个图标都可以看做一个对象 消 息便是通过函数对它们进行操作 每一个控件都有两个重要而且必不可少的基本属性 ID 和标题 ID 便是该控件的标识 某些函数需要通过 ID 对控件进行操作 了解一定相关知识后 对课程实践有了很大的帮助 其中 输入一元二次方程 ax2 bx c 0 的系数 a b c 计算并输出两个根 x1 x2 这个题目比较复杂 而且与 C 连续很紧密 其中的有这样的语句 m x1 b sqrt b b 4 a c 2 a m x2 b sqrt b b 4 a c 2 a 这就是我们在课堂上学习的 C 基本语句 在实践过程中考验学生的灵活运用能力 完成 这个题目的关键是把每个编辑框 控件 连接好变量和选的数据类型 接下来的就是编写 消息处理函数 这道题很全面地体现了 MFC 的 消息传递 事件驱动 的思想 在操作步 骤方面也在很多地方得到了实践 MFC 编程除了基于多文本对话框以外 还有很重要的一部分是基于单文档界面的应用程序 如 Windows 自带的 Notepad 程序 在本次实践的第一大部分的后 5 个小题就是基于单文档 的 那么首先要对其有一定的了解 文档 视图结构的思想是将数据的管理与显示分离 其 中文档用于管理应用程序的数据 而视图是用户界面 用于显示 打印文档中的数据 并 管理与用户的交互 SDI 具有文档 视图结构的应用程序框架 该框架包括应用程序类 窗 口框架类 文档类和视图类 编程的任务是在文档类和视图类中添加适当的代码 其中文 档类中一个重要的成员函数是 OnNewDocument 用户在此添加代码完成对数据的初始化 而视图类中最重要的成员函数是 OnDraw 通过在该函数中添加代码实现窗口内容的输出 本次实践是对单文档的典型实例 包括 利用画笔 画刷等工具及位图处理的方法实现文字和图形的输出 利用定时器控件制作动画程序 对鼠标和键盘进行编程的基本方法 文件 字体 颜色等几种通用对话框的使用方法及自定义对话框的设计 调用方法 菜单的设计方法 虽然进行充分的准备 实践中还是遇到了很多的困难和问题 在完成题目 用定时器控制 蝴蝶在窗口中飞舞 时 主要的问题就是在插入蝴蝶图片的 尝试了几次都没有编译成功 最终再询问同学后 才知道是要把 GIF 格式的图片分割成一帧一帧 然后才能插入 最后 用定时器控制 达到动态的效果 在完成了第一大部分的任务后 第二部分的综合题是一个不小的挑战对我来说 要靠自己 去网上或者图书馆查找资料 在经过一番准备后 最终决定做一个相对简单的基于多文档 对话框的登陆界面 把几个原来的程序文件连接起来 但是在这个过程中 完全要靠自己 一步一步去探索 当然也遇到了各种各样的困难和挑战 关键是在连接各部分对话框 经过不断的实验 不断的调试程序 总结的操作步骤如下 1 创建工程 MFC Application exe 工程命名按要求命名 2 工程建立后有如图对 话框 将途中的静态文本框和按钮都删掉 留下空白 再使用静态文本 编辑框 按钮和 静态图片重新排版 并进行命名 注意静态图框应该第一个布置 不然运行时图片会将其 他控件覆盖 3 右击密码对应的编辑框 选择属性 选样式中的密码 4 在 Dialog 上右击选择插入 DIG 重复插入 4 个 依次作为菜单 题目 1 题目 2 和题目 3 的对话框 并对其分别创建类 以菜单对话框为例 改一下表头为 菜单 在对话框空白处双击 点 OK 创建类 并对其命名 假如命名为 MyMenu 5 回到登录界面的对话框 双击登录 控件 出现如图按钮 点击 OK 在顶端添加 include MyMenu h 并 OnButton1 下添加 以下代码 CString c user c password m user GetWindowText c user m password GetWindowText c password if c user IsEmpty c password IsEmpty MessageBox 用户名或密码不能为空 用户登录信息 return if c user 123 dlg DoModal 这两段代码是用于调用菜单对话框 else MessageBox 用户名或密码不正确 提示 MB ICONINFORMATION return 对对话框添加背景图片 在如下图文件上右击 选择引入 然后导入已准备好的 bmp 格式 的图片 然后选择登录界面的静态图框右击 进行如图操作 这样图片就加入了 它会改 掉按钮和编辑框 这没关系 运行后会显示出来的 7 通过以上操作 已经做好了登录 界面和实现和登录界面与菜单对话框的连接 现在进行菜单对话框的编辑 将原有的按钮 删除 自己加入按钮并命名 8 双击题目 1 点 OK 在代码页的顶端加入如图代码 并在 OnButton1 下加入以下代码 CT1 dlg dlg DoModal 其他的按相同操作 四 设计总结 为期为两周的课程实践中 我体会颇多 学到的东西也很多 我懂得了如何运用 MFC 编写 可视化界面的应用程序 加强了对 C 的认识 复习了以前的知识 自己的逻辑思考能力 解决问题的能力也提高了不少 从而对 Microsoft Visual C 有了更加深刻的认识和体会 在这次课程设计实践过程中我还懂得了一些程序开发的重要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论