图形面积的计算与存储 课设 V1.0.doc_第1页
图形面积的计算与存储 课设 V1.0.doc_第2页
图形面积的计算与存储 课设 V1.0.doc_第3页
图形面积的计算与存储 课设 V1.0.doc_第4页
图形面积的计算与存储 课设 V1.0.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

沈阳理工大学课程设计专用纸 I 摘 要 本设计从 win32 控制台应用和 MFC 两种方式设计出面积的计算方法 运用 Shape 基类派生出五个派生类 分别运用五种计算方法实现对不同多边形面积进行计算 在 上述结果计算完成后 对上述结果进行文件保存为 txt 文件 关键词 类模板 开放地址法 MFC 工程 vs2010 codeblock 沈阳理工大学课程设计专用纸 II 目 录 1 需求分析 1 2 算法基本原理 1 2 1 面积算法原理 1 2 2 文件保存原理 1 3 类设计 1 3 1 类的概述 1 3 2 类的实现 2 4 基于控制台的应用程序 5 4 1 主函数设计 5 4 2 运行结果及分析 7 5 基于 MFC 的应用程序 9 5 1 图形界面设计 9 5 2 程序代码设计 12 5 3 运行结果及分析 15 结 论 18 参考文献 19 沈阳理工大学课程设计专用纸 0 1 需求分析 写一个程序 定义抽象基类 Shape 由它派生出 5 个派生类 Circle 圆形 Squre 正方形 Rectangle 矩形 Trapezoid 三角形 用虚函数分别计算几种 图形面积 并求它们的和 要求用基类指针数组 使它的每个元素指向一个派生类对 象 要求将计算的各种图形面积以及它们和的结果存到磁盘文件 ShapeArea txt 中 本设计需要一个基类 五个派生类 分别计算圆形 正方形 矩形 三角形的面积 还有一个类计算前几个和然后通过文件保存 保存到固定的文件中 2 算法基本原理 2 1 面积算法原理 1 设圆的半径为 x 面积 x x 3 14 2 设正方形的边长为 x 面积 x x 3 设矩形的短边为 x 长边为 y 面积 x y 4 设三角形的三条边为 x y z 面积 x x a x b x c x x y z 2 5 总面积计算公式为 总面积 圆面积 正方形面积 矩形面积 三角形面积 2 2 文件保存原理 包含 fstream h 头文件 用 fstream ofstream 函数打开 Shapearea txt 文件 然后运用 fout 输出流对文件进行存储 运用 fout flush 保存文件 最后 fclose 关闭文 件 实现文件的保存 3 类设计 3 1 类的概述 类模板就是设计一种类的框架 可以适用不同的数据类型 只是一种类的抽象 因此 利用类模板可以针对不同的数据类型定义出具有共性的一组类 沈阳理工大学课程设计专用纸 1 定义形式如下 template class 类名 类声明体 与函数模板类似 通过使用类模板可以使得所定义的类中的某些数据成员某些成 员函数的参数某些成员函数的返回值都可以是任意的数据类型 包括基本类型和自定 义类型 本设计采用的是类模板 建立一个 shape 基类 派生出 Circle 圆 类 Squre 正方形 类 Oblong 矩形 类 Triangle 三角形 类和 Add 总面积 类 在 shape 基类中 定义虚函数 area 用来计算面积 shapeName 用来输出面积 在剩余各类中 对 area 函数和 shapeName 函数进行详细运算 并且输出 3 2 类的实现 Shape h 文件 实现类的声明 include include include include using namespace std class Shape 抽象基类 Shpae public virtual double area 0 virtual void shapeName class Circle public Shape 圆形 沈阳理工大学课程设计专用纸 2 Circle public Circle radius 0 Circle double r radius r Circle void shapeName cout 圆的面积 double area return 3 14 radius radius private double radius class Squre public Shape 正方形 Squre public Squre sidea 0 Squre double a sidea a void shapeName cout 正方形面积 double area return sidea sidea private double sidea class Oblong public Shape 矩形 Rectangle public Rectangle sidea 0 sideb 0 Oblong double a double b sidea a sideb b void shapeName cout 矩形面积 double area return sidea sideb private 沈阳理工大学课程设计专用纸 3 double sidea double sideb class Triangle public Shape 三角形 Triangle public Triangle sidea 0 sideb 0 sidec 0 Triangle double a double b double c sidea a sideb b sidec c void shapeName cout 三角形面积 double area double s sidea sideb sidec 2 double m s s sidea s sideb s sidec return sqrt m private double sidea double sideb double sidec class Add public Shape 总面积 Add public Add double a double b double c double d Size a b c d void shapeName cout 总面积 double area return Size private double Size 沈阳理工大学课程设计专用纸 4 经过公有派生 Circle 圆 类 Squre 正方形 类 Oblong 矩形 类 Triangle 三角形 类 Add 总面积 类获得了除构造函数 析构函数之外的 Shape 类的全部成员 由于基类的成员是公有和保护类型 因此在派生类中的成员函数中 基类继承来的成员全部可以访问 并且在每类的 area 函数中均计算出各类的面积 并且可以返回 4 基于控制台的应用程序 4 1 主函数设计 main cpp 主函数 include include include include include using namespace std int main Shape pt 4 double r a b c cout r Circle c1 r pt 0 pt 0 shapeName cout area endl cout r Squre c2 r pt 1 沈阳理工大学课程设计专用纸 5 pt 1 shapeName cout area endl cout a cout b Rectangle c3 a b pt 2 pt 2 shapeName cout area endl cout a cout b cout c Triangle c4 a b c pt 3 pt 3 shapeName cout area area pt 1 area pt 2 area pt 3 area pt 4 pt 4 shapeName cout area endl ofstream fout ShapeArea txt fout 圆形面积 area endl fout 正方形面积 area endl fout 矩形面积 area endl fout 三角形面积 area endl fout 总面积 area endl 沈阳理工大学课程设计专用纸 6 fout flush fout close cout 文件存储成功 在程序的主函数部分 要用户输入圆 正方形 矩形 三角形面积 然后构造 Circle 圆 类 Squre 正方形 类 Oblong 矩形 类 Triangle 三角形 类 Add 总面积 五个类 分别计算五个类面积 然后将文件输出 并且保存到 ShapeArea txt 中 4 2 运行结果及分析 程序运行的结果如图 1 所示 第一步生成圆类并且计算出圆的面积 图 1 计算圆面积运行结果 图 2 为第二步生成正方形类并且计算出正方形的面积 沈阳理工大学课程设计专用纸 7 图 2 计算正方形面积运行结果 图 3 为第三步生成矩形类并且计算出矩形的面积 图 3 计算矩形面积运行结果 图四为第四步生成三角形类并且计算出三角形的面积 第五步生成总面积类 沈阳理工大学课程设计专用纸 8 并且计算出总面积 并且保存文件 图 4 计算三角形面积和总面积运行结果 5 基于 MFC 的应用程序 MFC MicrosoftFoundationClasses 是微软基础类库的简称 是微软公司实现的一个 c 类库 主要封装了大部分的 windows API 函数 vc 是微软公司开发的 c c 的集 成开发环境 所谓集成开发环境 就是说利用它可以编辑 编译 调试 而不是使用 多种工具轮换操作 灵活性较大 本设计采用 vs2010 进行 mfc 设计 具有更加人性化 的优点 开发周期可以缩短 5 1 图形界面设计 首先在 VS2010 中建立 MFC 应用程序工程 名称为 面积计算器 V1 1 并在向导的 应用程序类型 中选择 基于对话框 即建立基于对话框的应用程序 如图 5 6 所示 沈阳理工大学课程设计专用纸 9 图 5 建立 MFC 应用程序工程 图 6 建立基于对话框的应用程序 将对话框资源中的默认对话框利用工具箱改造成如图 7 所示界面 沈阳理工大学课程设计专用纸 10 图 7 面积计算器程序界面设计 图 6 所示的界面中包含了 9 个 Static Text 控件 3 个 Button 控件 和 12 个 Edit Box 控件 控件的基本信息列表如下表 1 所示 沈阳理工大学课程设计专用纸 11 表 1 控件基本信息 控件类别控件 ID控件 Caption说明 圆 正方形 矩形 三角形 和 半径 边长 两边长 Static Text IDC STATIC 三边长 IDC BUTTON ADD 计算计算面积 IDC BUTTON SAVE 保存保存结果到 ShapeArea txtBotton IDC BUTTON QUIT 退出 Edit Box IDC EDIT CIRCLE 输入圆的半径 IDC EDIT SQURE 输入正方形边长 IDC EDIT RECTANGLE A 输入矩形边长 IDC EDIT RECTANGLE B 输入矩形边长 IDC EDIT TRIANGLE A 输入三角形一条边 IDC EDIT TRIANGLE B 输入三角形一条边 IDC EDIT TRIANGLE C 输入三角形一条边 IDC EDIT CRICLE S 输出圆面积 IDC EDIT SQURE S 输出正方形面积 IDC EDIT RECTANGLE S 输出矩形面积 IDC EDIT TRIANGLE S 输出三角形面积 IDC EDIT ADD S 输出总面积 5 2 程序代码设计 为了能够将对话框界面上的控件能够与代码联系起来 需要为 12 个 Edit Box 控件 添加成员变量 选择类向导 如图 8 所示 沈阳理工大学课程设计专用纸 12 图 8 成员变量设置界面 下面是编写代码的重要阶段 可以利用 win32 控制台应用的类 输入输出需要自 己重新编写 主要代码如下 面积计算器 V1 1Dlg cpp 实现文件 include Shape h include Shape pt 5 void C 面积计算器 V11Dlg OnBnClickedButtonAdd TODO 在此添加控件通知处理程序代码 沈阳理工大学课程设计专用纸 13 UpdateData TRUE Circle c1 m Circle pt 0 Squre c2 m Squre pt 1 Oblong c3 m Rectangle A m Rectangle B pt 2 Triangle c4 m Triangle A m Triangle B m Triangle C pt 3 Add c5 pt 0 area pt 1 area pt 2 area pt 3 area pt 4 if m Triangle A m Triangle B m Triangle C m Triangle A m Triangle C m Triangle B m Triangle B m Triangle A m Triangle C m Triangle B m Triangle C m Triangle A m Triangle C m Triangle A m Triangle B m Triangle C m Triangle B m Triangle C m Triangle B m Triangle A m Triangle C m Triangle C m Triangle A m Triangle B MessageBox T 三角形数据输入有误 m Cricle Shape pt 0 area m Squre Shape pt 1 area m Rectangle Shape pt 2 area m Triangle Shape pt 3 area m Add pt 4 area UpdateData FALSE 沈阳理工大学课程设计专用纸 14 void C 面积计算器 V11Dlg OnBnClickedButtonSave TODO 在此添加控件通知处理程序代码 ofstream fout ShapeArea txt UpdateData TRUE fout 圆形面积 m Cricle Shape endl fout 正方形面积 m Squre Shape endl fout 矩形面积 m Rectangle Shape endl fout 三角形面积 m Triangle Shape endl fout 总面积 m Add endl fout flush fout close UpdateData FALSE MessageBox T 文件保存成功 void C 面积计算器 V11Dlg OnBnClickedButtonQuit TODO 在此添加控件通知处理程序代码 PostMessage WM CLOSE 5 3 运行结果及分析 运行程序后 首先出现的界面如图 9 所示 沈阳理工大学课程设计专用纸 15 图 9 程序初始运行界面 单击计算按钮后 程序进行计算 运行结果如图 10 所示 图 10 计算面积后的界面 沈阳理工大学课程设计专用纸 16 单击保存按钮 程序将结果保存在 ShapeArea txt 中 如图 11 所示 图 11 保存文件后的界面 单击退出按钮后 程序能够正常实现退出 沈阳理工大学课程设计专用

温馨提示

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

评论

0/150

提交评论