《c语言经典案例》-公开·课件设计.pptVIP

  • 1
  • 0
  • 约2.46千字
  • 约 45页
  • 2018-12-03 发布于广西
  • 举报
案例二十九 复数的四则运算 本案例知识要点 复数类的定义 “+”、“?”、“*”、“/”运算符重载 输出函数的设计 一、案例需求 案例描述 案例效果图 案例的设计效果和运行结果分别如图(a)和图(b)所示。 功能说明 进行加“?”,减“?”,乘“*”,除“/”运算符重载,根据输入的两个复数对象输出其运算结果。 当第二个复数b的实部和虚部同时为0时,不能进行除法运算,需要给出提示。 设计输出函数,对于计算结果的虚部为负数的情况进行处理。例如,2?2i不要输出为2??2i。 二、案例分析 根据案例需求,需要利用MFC环境定义一个菜单、一个输入对话框类,提供两个复数的输入界面;另外定义一个complex类,在complex类中定义数据成员,包括实部值和虚部值;定义成员函数,声明友元加号运算符重载函数、友元减号运算符重载函数、友元乘号运算符重载函数、友元除号运算符重载函数、实部值获取函数和虚部值获取函数。最后在视图区输出两个复数的运算结果。 本案例的重点是使用运算符重载函数来进行复数对象的四则运算,因为在MFC环境中不能重载输入和输出运算符,需要独立设计复数输出函数。本案例的难点在于复数的虚部计算结果为负数时的输出函数设计。 三、案例设计 1.类的设计 本案例需要设计一个类complex,其结构如图所示。 (1)数据成员 double real; 复数实部。 double imag; 复数虚部。 (2)函数成员 complex(); 默认构造函数。 complex(double,double); 带参构造函数。 friend complex operator + (complex c1,complexc2); 友元运算符重载函数“+”。 friend complex operator ? (complex c1,complexc2); 友元运算符重载函数“-”。 friend complex operator * (complex c1,complexc2); 友元运算符重载函数“*”。 friend complex operator / (complex c1,complexc2); 友元运算符重载函数“/”。 double getr(); 读出实部值函数。 double geti(); 读出虚部值函数。 2.对话框的设计 在资源视图Resource View中右击Dialog选项,选择Insert Dialog命令,在对话框内添加静态文本Static Text和文本框Edit Box控件并修改属性,对话框的设计结果如图所示。 设计对话框 双击对话框,弹出Adding a class对话框,保持默认值添加一个新类Creat a new class,单击【OK】按钮。在弹出的对话框中填写对话框类名inputdlg,单击【OK】按钮。在“查看”菜单下选择Class Wizard命令,切换到Member Variable选项卡。添加成员变量的名称和类型,m_ar和m_ai是复数a的实部和虚部;m_br和m_bi,是复数b的实部和虚部。设计结果如图所示。 对话框类成员变量的设计结果 3.菜单设计 在资源视图Resource View中单击Menu目录,双击IDR_MAINFRAME选项,修改命令,设置菜单complex的ID为ID_MENUcomplex。 从“查看”菜单中打开类向导MFC ClassWizard,在Object IDs列表框中选择ID_MENUcomplex选项,在Class name下拉列表框中选择CExample4View选项,在Message列表框中选择COMMAND选项后,单击【Add Function】按钮,弹出对话框,默认菜单成员函数的名称为OnMENUcomplex(),单击【OK】按钮,则在Member functions列表框中添加了成员函数,该函数是CExample4View类的成员函数,单击【Edit Code】按钮可以对函数进行编辑。 为了实现复数对象的输出,在Example4View类中定义了output()函数。该函数在Example4View.h文件中的声明为: void output(complex num,CString sign,int y); 在Example4View.cpp文件中的定义为: void CExample4View::output(complex num,CString sign,int y) 当第二个复数的实部和虚部同时为0时,不能进行除法运算,因此在对话框inputdlg中添加了OnOK()函数,该函数是inputdlg类的成员函数,单击【Edit Code】按钮可以对其进行编辑。 菜单调用流程图 四、案例实现 五

文档评论(0)

1亿VIP精品文档

相关文档