欢迎来到天天文库
浏览记录
ID:51586775
大小:577.50 KB
页数:45页
时间:2020-03-24
《c语言经典案例.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、案例二十九复数的四则运算本案例知识要点复数类的定义“+”、“”、“*”、“/”运算符重载输出函数的设计第页共45页一、案例需求案例描述第页共45页案例效果图案例的设计效果和运行结果分别如图(a)和图(b)所示。(a)设计效果(b)运行结果第页共45页功能说明进行加“”,减“”,乘“*”,除“/”运算符重载,根据输入的两个复数对象输出其运算结果。当第二个复数b的实部和虚部同时为0时,不能进行除法运算,需要给出提示。设计输出函数,对于计算结果的虚部为负数的情况进行处理。例如,22i不要输出为22i。第页共45
2、页二、案例分析根据案例需求,需要利用MFC环境定义一个菜单、一个输入对话框类,提供两个复数的输入界面;另外定义一个complex类,在complex类中定义数据成员,包括实部值和虚部值;定义成员函数,声明友元加号运算符重载函数、友元减号运算符重载函数、友元乘号运算符重载函数、友元除号运算符重载函数、实部值获取函数和虚部值获取函数。最后在视图区输出两个复数的运算结果。本案例的重点是使用运算符重载函数来进行复数对象的四则运算,因为在MFC环境中不能重载输入和输出运算符,需要独立设计复数输出函数。本案例的难点在于复数的虚部
3、计算结果为负数时的输出函数设计。第页共45页三、案例设计1.类的设计本案例需要设计一个类complex,其结构如图所示。complex类图第页共45页(1)数据成员doublereal;复数实部。doubleimag;复数虚部。(2)函数成员complex();默认构造函数。complex(double,double);带参构造函数。friendcomplexoperator+(complex&c1,complex&c2);友元运算符重载函数“+”。friendcomplexoperator(complex&c1,
4、complex&c2);友元运算符重载函数“-”。第页共45页friendcomplexoperator*(complex&c1,complex&c2);友元运算符重载函数“*”。friendcomplexoperator/(complex&c1,complex&c2);友元运算符重载函数“/”。doublegetr();读出实部值函数。doublegeti();读出虚部值函数。第页共45页2.对话框的设计在资源视图ResourceView中右击Dialog选项,选择InsertDialog命令,在对话框内添加静态文
5、本StaticText和文本框EditBox控件并修改属性,对话框的设计结果如图所示。第页共45页设计对话框第页共45页双击对话框,弹出Addingaclass对话框,保持默认值添加一个新类Creatanewclass,单击【OK】按钮。在弹出的对话框中填写对话框类名inputdlg,单击【OK】按钮。在“查看”菜单下选择ClassWizard命令,切换到MemberVariable选项卡。添加成员变量的名称和类型,m_ar和m_ai是复数a的实部和虚部;m_br和m_bi,是复数b的实部和虚部。设计结果如图所示。第
6、页共45页对话框类成员变量的设计结果第页共45页3.菜单设计在资源视图ResourceView中单击Menu目录,双击IDR_MAINFRAME选项,修改命令,设置菜单complex的ID为ID_MENUcomplex。从“查看”菜单中打开类向导MFCClassWizard,在ObjectIDs列表框中选择ID_MENUcomplex选项,在Classname下拉列表框中选择CExample4View选项,在Message列表框中选择COMMAND选项后,单击【AddFunction】按钮,弹出对话框,默认菜单成员函
7、数的名称为OnMENUcomplex(),单击【OK】按钮,则在Memberfunctions列表框中添加了成员函数,该函数是CExample4View类的成员函数,单击【EditCode】按钮可以对函数进行编辑。第页共45页为了实现复数对象的输出,在Example4View类中定义了output()函数。该函数在Example4View.h文件中的声明为:voidoutput(complexnum,CStringsign,inty);在Example4View.cpp文件中的定义为:voidCExample4Vie
8、w::output(complexnum,CStringsign,inty)当第二个复数的实部和虚部同时为0时,不能进行除法运算,因此在对话框inputdlg中添加了OnOK()函数,该函数是inputdlg类的成员函数,单击【EditCode】按钮可以对其进行编辑。第页共45页菜单调用流程图第页共45页四、案例实现第页共45页第页共45页第页
此文档下载收益归作者所有