




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学高级程序设计实践(C+)课程设计报告题 目复数计算器学生姓名指导教师学 院信息科学与工程学院专业班级完成时间2014.7.5目录第一章需求分析3第二章概要设计3第三章详细设计3第四章调试分析6第五章测试结果6第六章课程设计总结11第七章参考文献11第八章附录11第一章需求分析程序设计任务:运用面向对象程序设计知识,利用C+语言设计和实现一个复数计算器。主要功能:(1)建立实数类、复数类(2 )实现实数、复数信息的初始化(3) 实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4) 实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的 向量角、求两个复数的夹角等运
2、算(5 )实现实数、复数信息的输出第二章概要设计含有两个类,实数Real类和复数Complex类,用于实数和复数的计算,两个 类并列关系,定义两个菜单函数,用于输出欢迎界面和功能列表,主函数可分别调 用两个类中的函数和菜单函数。对于Complex类中应用运算符重载,是它可以对复 数进行计算。第三章详细设计.Complex 类用于复数的加法,减法,乘法,除法,取模,求共轭复数,求向量角,和两个复数 夹角的计算。成员函数:(1) .构造函数和析构函数。(2) . int add();用于计算复数加法的函数。int subtraction();用于计算复数减法的函数。int qumo();用于复数取
3、模的函数。int multiplication();用于计算复数乘法的函数。int division();用于计算复数除法的函数。int square();用于计算复数平方的函数。int qiugonge();用于计算复数求共轭复数的函数。void xiangliangjiao();用于计算单个复数向量角的函数。void shuangxiangliangjiao();用于计算两个复数的向量角的函数。 void display();用于输出结果的函数。(3) .运算符重载Complex operator +(Complex &c2);对于加号运算符的重载。Complex operator -(C
4、omplex &c2);对于减号运算符的重载。Complex operator *(Complex &c2);对于乘法运算符的重载。Complex operator /(Complex &c2);对于除法运算符的重载。friend istream&operator(istream&in put,Complex &c2);对于输入运算符的重载,并把它定义为友元函数,可以使用类中定义为私有的变量。friend ostream&operatorv(ostream&output,Complex&c2);对于输出运算符的重载,并把它定义为友元函数,可以使用类中定义为私有的变量。以加法为例:Complex
5、 Complex:operator+(Complex &c2)Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;由于其中this是指向当前对象的指针,即c1,所以在语句中c1.real可写成real2.Real 类用于实数的加减乘除,平方,平方根,自增自减的操作。成员函数:(1) .构造函数和析构函数(2) . void add();用于计算实数加法的函数。void subtraction();用于计算实数减法的函数。void multiplication();用于计算实数乘法的函数void division();用于计算实数
6、除法的函数。void addself();用于实数自增的函数。void decrement();用于实数自减的函数。void square();用于计算实数平方的函数。void square_root();用于计算实数平方跟的函数。void get_real();用于输出结果。函数调用关系图结束H j -.2)?bigi计吾If 3,ex亡算 计ffi 1 2 ?AA 迎務 双请请f !冒冒 算算 八“数数 二 SMEM- 80 注要要出 二Mi X K 黛兴 It iM X K it K X if * It It K It X K it UK第四章调试分析调试过程中,起先把实数和复数的加减乘
7、除写在同一个函数中,但是这样对于后面 不同的运算选择起来不太方便,最终解决方法是把实数和复数的算法完全分开。但 是这样可能会导致程序的拖沓。程序对于实数的运算有可改进的地方,对于实数,不需定义那么多的函数,可以直 接进行计算。这样可以简化程序。第五章测试结果C:UsersvAdrr nitatorDe:Ictap-MC: Use.dm ni5t-L3tor.,Desktop -+=.H3DebL3.exe用20根 功法法法平二 选2-3.4,5-?-B. 请1-1界面WKiOf XIOiltiMItXiMItKiMatMiiMlf X 艮; iB聶输入实数15a+Jb=6按任意键继续程序1-2
8、实数加法1角旱复 方貝选加w-除主冃 ” _ ” _ ” _ 123456789話输入实部和复部 t 青站入实部和复部1 2援任意键继续程序2-1复数加法芽 f. f 二 口 Fp 口芒 9 -ttM角量向 能 a 功 方 苣法法法模畫两共 选请 123456789菽数 沖用用 沙要要岀舊输入实部和复部请输入实部和复部2 3按任意键继续程序2-2复数减法lf8tLLB功的.芬 角iMW 法法法模盂翌 谓 123456789向量甬另欠J里J用 十管号F Mi梵iK Mi釜兴算梵”-Mi it梵Mi Jt iK it- :”:疋”来從 ii:磁请输入实部和复部1 2请输入实部和复部2 3按任意键继
9、续程序2-3复数乘法2角 量 向_ 1 能 角三畳 功 方 选加纂除诵 123456789舊输入实部和复部 青站入实部和复部 1 -2按任意键继续程序欢迎傳用计算器簣诫S 用用 10 要要岀H角量向 j i 能 角w畳 功 方二 曜法法法模雪两共 选加4 请 123456789请输入实部和复部1 11.41421继续程序2-5复数取模能功 亠选加緊除ff - - L - - I6角豊夏12345678?1 1按任意犍继续程序角量向用二畳方且皐法法法模雷两共选加W-除04V123456 7 89一请输入实部和复部 鯨蠶蠶程序2-7向量角口h口口#萇昇用用 要要岀向量角&g畳 方 履法法法模需两共
10、 主启LklLRLkV 123456789角 量向一能 角二畳亠功 方 傍祛法法模雪两共 选加蒙除 主冃 - - * - - _ - - 1234567899请输入实部和复部1 2共辄为按注意键继续程序2-9共轭复数第六章课程设计总结通过这次课程设计,我学会了应用运算符重载和分文件写代码,让我更清楚的 认识了 C+的封装性,在头文件中写入声明,在源文件中写入函数定义,这样可以 使思路和代码更清晰明了。成功写成代码,让我感到喜悦,让我更有信心去学习, 也让我看出,只要肯努力,就一定会成功。虽然有很多地方又不足,但是我相信, 经过不断的练习,我还会有进步,以后可以写出更加简单方便的程序。第七章参考
11、文献谭浩强C+程序设计(第二版)第八章附录#in clude#in clude#in clude using n amespace std;class Realpublic:Real(void);Real(void);void add();void subtracti on();void multiplicati on();void divisio n();void addself();void decreme nt();void square();void square_root();void get_real();private:float a,b;Real:Real(void) Real
12、:Real(void) void Real:add()cout请输入实数 ab; couta+b=a+be ndl;void Real:subtract ion()cout请输入实数 ab; couta-b=a-be ndl;void Real:multiplicati on()cout请输入实数 ab; couta*b=a*be ndl;void Real:divisio n()cout请输入实数 ab; coutva/b=vva/bvve ndl;void Real:addself()cout请输入实数 a;cout自增为va+vendl;void Real:decreme nt()cou
13、t请输入实数 a;cout自减为a-endl;void Real:square()cout请输入实数 a;cout平方为a*ae ndl;void Real:square_root()cout请输入实数 a;cout平方根为sqrt(a)endl;class Complexpublic:Complex(void);Complex(void);Complex(double r,double i)real=r;imag=i; Complex operator +(Complex &c2);Complex operator -(Complex &c2);Complex operator *(Comp
14、lex &c2);Complex operator /(Complex &c2);friend istream&operator(istream&nput,Complex &c2);friend ostream&operator(ostream&output,Complex &c2); int add();int subtracti on();double qumo();int multiplicatio n();int divisio n();int square();int qiugo nge();void xia nglia ngjiao();void shua ngxia nglia
15、ngjiao();private:double real;double imag;Complex:Complex(void)real=0;imag=0;Complex:Complex(void)Complex Complex:operator+(Complex &c2)Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex Complex:operator -(Complex &c2)Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;Complex
16、Complex:operator *(Complex &c2)Complex c;c.real=real*c2.real-imag*c2.imag;c.imag=real*c2.imag+imag*c2.real;return c;Complex Complex:operator /(Complex &c2)Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.im
17、ag); return c;istream &operator(istrea m&in put,Complex&c)cout请输入实部和复部c.realc.imag;return in put;ostream&operator(ostrea m&o utput,Complex&c)output(=O)output+;outputvc.imagvvi)v c1c2;c3=c1+c2;cout c1c2;a=(c1.real*c2.real+c1.imag*c2.imag)/(sqrt(c1.real*c1.real+c1.imag*c1.imag)*sqrt(c2 .real*c2.real+c
18、2.imag*c2.imag);a=acos(a)*180/(2*asi n(1.0);coutvv两向量夹角为a度 c;if(c.real=0)a=2*asi n(1.0)/2.0;elsea=ata n(c.imag/c.real)*180/(2*asi n(1.0);cout向量角为a度 c1;c2=c1*c1;cout c1c2;c3=c1*c2;cout c1;a=sqrt(c1.real*c1.real+c1.imag*c1.imag);coutc1 的模为a c1c2;c3=c1-c2;cout c1c2;c3=c1/c2;cout c1;c2.real=c1.real;c2.i
19、mag=-c1.imag; cout共轭为c2; return 0; int select,m;void selects()欢 迎 使 用 计e ndl;* *coutvv若要使用实数计算器,请输入1e ndl; coutvv若要使用复数计算器,请输入2e ndl;coutvv退出 0endl;coutvv* select;void men u1() coutvv请选择功能endl;coutvv1.加法vve ndl;2减法vve ndl;3. 乘法vve ndl;4. 除法vve ndl;5. 自增vve ndl;6. 自减vve ndl;coutcout7求平方e ndl;8.求二次方根endl;void menu 2()cout请选择功能endl;cout cout cout cout1. 加法e ndl;2. 减法e ndl;3. 乘法e ndl;4. 除法e ndl;coutcoutcoutcoutcout5取模e ndl;6求平方e ndl;7求向量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纪委监委舆情管理办法
- 企业安全知识培训讲师课件
- 2025年深入贯彻中央八项规定精神学习教育应知应会试题及答案
- 出租屋灭火安全培训课件
- 企业安全工作培训会课件
- 出海安全培训课件
- 无人机信号安全管控技术-洞察及研究
- 2025国家能源集团内蒙古上海庙发电有限公司煤炭买卖合同
- 企业安全培训资料模板课件
- 出口退税课件介绍
- 2025-2030中国抗癫痫药行业市场发展趋势与前景展望战略研究报告
- 香港佣金合同协议
- 水土保持试题多选及答案
- 八年级下册英语2025电子版人教版单词表
- DB32-T 5082-2025 建筑工程消防施工质量验收标准
- 幼儿园点点爱上幼儿园-(绘本)课件
- 《数字经济背景下企业财务管理的数字化转型》论文
- 2025年汽车吊考试题及答案
- 药物罐疗法及临床应用
- 检验检测机构资质认定评审准则试题及答案
- DB31 SW-Z 009-2021 上海市水利工程设计概(估)算编制规定
评论
0/150
提交评论