方波生成器 项目报告书 课程:C++ 专业年级:12级机械动力类 姓 名:陈玉帛 学 号: 5120209040 指导教师: 何其昌 2013年12月12
方波生成器 项目报告书 课 程: C++ 专业年级: 12 级机械动力类 姓 名: 陈玉帛 学 号: 5120209040 指导教师: 何其昌 2013 年 12 月 12
目录 1问题定义与可行性研究… …3 1.1问题定义 3 1.2可行性研究… .3 2需求分析.… 2.1功能需求 .5 2.1.1功能描述 5 2.1.2功能示意图… 5 2.2性能需求.… 10 3概要设计与详细设计 11 3.1概要设计 11 3.2详细设计… ,11 4系统实现与单元测试… …12 4.1源程序代码 12 4.2单元测试效果图 .27 5总结… etteee,32 参考文献32
目 录 1 问题定义与可行性研究........................................................3 1.1 问题定义.......................................................................3 1.2 可行性研究...................................................................3 2 需求分析................................................................................ 4 2.1 功能需求.......................................................................5 2.1.1 功能描述............................................................. 5 2.1.2 功能示意图......................................................... 5 2.2 性能需求.....................................................................10 3 概要设计与详细设计..........................................................11 3.1 概要设计.....................................................................11 3.2 详细设计.....................................................................11 4 系统实现与单元测试..........................................................12 4.1 源程序代码.................................................................12 4.2 单元测试效果图.........................................................27 5 总结...................................................................................... 32 参考文献.................................................................................... 32
1问题定义与可行性研究 本章分两部分,问题定义和可行性研究。问题定义阶段主要研究 我们所学的知识能做什么项目,而可行性研究给出了制作方波生成器 的可行性。 1.1问题定义 通过开发方波生成器来练习本学期所学过的知识:例如,从最基 本的C++程序语句,格式,再逐步到函数的应用,数组的应用,文件 的操作,类的应用,最后应用微软公司提供的一个类库:MFC,掌握 MC操作和使用的基本方法 1.2可行性研究 通过本本学期知识的学习已具备开发一款方波生成器的能力, 基本原理构造一个函数,利用sin函数组成方波函数,该方波生 成器可以调节方波的频率,幅值和实际用sn组合的阶数
1 问题定义与可行性研究 本章分两部分,问题定义和可行性研究。问题定义阶段主要研究 我们所学的知识能做什么项目,而可行性研究给出了制作方波生成器 的可行性。 1.1 问题定义 通过开发方波生成器来练习本学期所学过的知识:例如,从最基 本的 C++程序语句,格式,再逐步到函数的应用,数组的应用,文件 的操作,类的应用,最后应用微软公司提供的一个类库:MFC,掌握 MFC 操作和使用的基本方法 1.2 可行性研究 通过本本学期知识的学习已具备开发一款方波生成器的能力, 基本原理构造一个函数,利用 sin 函数组成方波函数,该方波生 成器可以调节方波的频率,幅值和实际用 sin 组合的阶数
2需求分析 本章给出了方波生成器应该具备的功能,并给出了功能示意图, 最后提出了实现该方波生成器应该具备的条件。 2.1功能需求 2.1.1功能描述 (I)利用sin函数组成方波函数 方波函数可以有多个sin函数总成,sin函数阶数越多,方波越接近 真实方波. (2)通过调节模块可以改变方波的频率。 (3)通过调节模块可以改变方波的幅值。 (4)通过勾选模块可以调节是否绘制方波。 (⑤)通过坐标网格可以对方波相关参数进行测算。 (6)通过存盘按钮可以保存波形图片
2 需求分析 本章给出了方波生成器应该具备的功能,并给出了功能示意图, 最后提出了实现该方波生成器应该具备的条件。 2.1 功能需求 2.1.1 功能描述 (1)利用 sin 函数组成方波函数 方波函数可以有多个 sin 函数总成,sin 函数阶数越多,方波越接近 真实方波. (2)通过调节模块可以改变方波的频率。 (3)通过调节模块可以改变方波的幅值。 (4)通过勾选模块可以调节是否绘制方波。 (5)通过坐标网格可以对方波相关参数进行测算。 (6)通过存盘按钮可以保存波形图片
2.1.2功能示意图 各模块间的调用关系如下图: (1)绘制方波 开始 标曲线是 否不选中 结束 绘制1500毫秒. 获取CDC指针 2000毫秒的低 电平 生成方波画笔 绘制下降沿 加载国笔 绘制高电平 绘制0毫秒-500 秒的低电平 绘制上升沿
2.1.2 功能示意图 各模块间的调用关系如下图: (1)绘制方波
(2)合成方波 开如 生成曲线是 否不选中 结束 Y 计算需要绘制 的点数 逐点绘制 为坐标点分配 生成合成波画 空间 笔 <<绘制点数 获取CDC指针 计算该点对应 i+t 的时间 计算该点得坐 调用合成公式 标 计算幅值
(2)合成方波
(3)绘制坐标轴 开始 获取CDC指针 生成内部网格 生成坐标轴西 画笔 笔 加载坐标轴面 加载网格画笔 笔 绘制与Y轴平 绘制坐标轴 行的网格线 绘制与Y轴平 行的网格线 绘制刻度线 绘制与X轴平 行的网格线 绘制刻度值 绘制与X轴平 行的网格线 结束
(3)绘制坐标轴
4)界面绘制总流程 开始 绘制坐标系 是否是首次会 制 结束 N 绘制方波 绘制合成波
4)界面绘制总流程
(5)文件保存 开始 获取当前窗口 的大小 获取当期窗口 的HDC指针 创建位图,并 与窗口HDC指 针关联 生成当前窗口 指对应的内存 指针 内存指针与位 图指针绑定 将界面上的图 像信息抓屏幅 值到内存 输出到C盘文件 中,名字用当 前时间命名 释放各种DC指 针 结束
(5)文件保存
2.2 性能需求 本项目是一个方波生成器,运行环境为VC++2010,项目运行速 率正常,可以满足用户需求。 1、时间特性要求:响应时间要低于5秒 2、便捷性:运用了可视化编程,调节简单,可以随时存储,有助于 人机交互,更人性化。程序的运行,符合正常的操作习惯,程序 功能明了简洁!
2.2 性能需求 本项目是一个方波生成器,运行环境为 VC++2010,项目运行速 率正常,可以满足用户需求。 1、时间特性要求:响应时间要低于 5 秒 2、便捷性:运用了可视化编程,调节简单,可以随时存储,有助于 人机交互,更人性化。程序的运行,符合正常的操作习惯,程序 功能明了简洁!