版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 中南大学高级程序设计实践(C+)课程设计报告题 目 复数计算器 学生姓名 指导教师 学 院 信息科学与工程学院 专业班级 完成时间 2014.7.5 目录第一章 需求分析3第二章 概要设计3第三章 详细设计3第四章 调试分析3第五章 测试结果3第六章 课程设计总结3第七章 参考文献3第八章 附录3第一章 需求分析程序设计任务:运用面向对象程序设计知识,利用C+语言设计和实现一个复数计算器。主要功能:(1) 建立实数类、复数类(2) 实现实数、复数信息的初始化(3) 实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4) 实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复
2、数的向量角、求两个复数的夹角等运算(5) 实现实数、复数信息的输出第二章 概要设计 含有两个类,实数Real类和复数Complex类,用于实数和复数的计算,两个类并列关系,定义两个菜单函数,用于输出欢迎界面和功能列表,主函数可分别调用两个类中的函数和菜单函数。对于Complex 类中应用运算符重载,是它可以对复数进行计算。第三章 详细设计1.Complex类用于复数的加法,减法,乘法,除法,取模,求共轭复数,求向量角,和两个复数夹角的计算。成员函数:(1).构造函数和析构函数。(2). int add(); 用于计算复数加法的函数。int subtraction();用于计算复数减法的函数。i
3、nt qumo();用于复数取模的函数。int multiplication();用于计算复数乘法的函数。int division();用于计算复数除法的函数。int square();用于计算复数平方的函数。int qiugonge();用于计算复数求共轭复数的函数。void xiangliangjiao();用于计算单个复数向量角的函数。void shuangxiangliangjiao();用于计算两个复数的向量角的函数。void display();用于输出结果的函数。(3).运算符重载Complex operator +(Complex &c2); 对于加号运算符的重载。Comple
4、x operator -(Complex &c2); 对于减号运算符的重载。Complex operator *(Complex &c2); 对于乘法运算符的重载。Complex operator /(Complex &c2); 对于除法运算符的重载。friend istream&operator(istream&input,Complex &c2);对于输入运算符的重载,并把它定义为友元函数,可以使用类中定义为私有的变量。friend ostream&operator(ostream&output,Complex &c2);对于输出运算符的重载,并把它定义为友元函数,可以使用类中定义为私有的
5、变量。以加法为例:Complex 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();用于计算实数乘法的函数 v
6、oid division();用于计算实数除法的函数。 void addself();用于实数自增的函数。 void decrement();用于实数自减的函数。 void square();用于计算实数平方的函数。 void square_root();用于计算实数平方跟的函数。 void get_real();用于输出结果。函数调用关系图main函数复数实数选择实数或复数subtraction()multiplication()division()qumo()qiugonge()xiangliangjiao()shuangxiangliangjiao()square()add()subtr
7、action()multiplication()division()decrement()addself()square_root()square()add()输出get_real()结束 第四章 调试分析调试过程中,起先把实数和复数的加减乘除写在同一个函数中,但是这样对于后面不同的运算选择起来不太方便,最终解决方法是把实数和复数的算法完全分开。但是这样可能会导致程序的拖沓。程序对于实数的运算有可改进的地方,对于实数,不需定义那么多的函数,可以直接进行计算。这样可以简化程序。第五章 测试结果 1-1 界面 1-2 实数加法 2-1 复数加法 2-2 复数减法 2-3 复数乘法 2-4 复数除法
8、 2-5 复数取模 2-6 复数平方 2-7 向量角 2-8 两向量的夹角 2-9 共轭复数第六章 课程设计总结 通过这次课程设计,我学会了应用运算符重载和分文件写代码,让我更清楚的认识了C+的封装性,在头文件中写入声明,在源文件中写入函数定义,这样可以使思路和代码更清晰明了。成功写成代码,让我感到喜悦,让我更有信心去学习,也让我看出,只要肯努力,就一定会成功。虽然有很多地方又不足,但是我相信,经过不断的练习,我还会有进步,以后可以写出更加简单方便的程序。第七章 参考文献谭浩强C+程序设计(第二版)第八章 附录#include#include#includeusing namespace st
9、d;class Realpublic:Real(void);Real(void);void add();void subtraction();void multiplication();void division();void addself();void decrement();void square();void square_root();void get_real();private:float a,b;Real:Real(void)Real:Real(void)void Real:add()cout请输入实数ab;couta+b=a+bendl;void Real:subtracti
10、on()cout请输入实数ab;couta-b=a-bendl;void Real:multiplication()cout请输入实数ab;couta*b=a*bendl;void Real:division()cout请输入实数ab;couta/b=a/bendl;void Real:addself()cout请输入实数a; cout自增为a+endl;void Real:decrement()cout请输入实数a;cout自减为a-endl;void Real:square()cout请输入实数a;cout平方为a*aendl;void Real:square_root()cout请输入实
11、数a;cout平方根为sqrt(a)(istream&input,Complex &c2);friend ostream&operator(istream&input,Complex&c)cout请输入实部和复部c.realc.imag;return input;ostream&operator(ostream&output,Complex&c)output(=0)output+;outputc.imagi)c1c2;c3=c1+c2; coutc1c2;a=(c1.real*c2.real+c1.imag*c2.imag)/(sqrt(c1.real*c1.real+c1.imag*c1.i
12、mag)*sqrt(c2.real*c2.real+c2.imag*c2.imag);a=acos(a)*180/(2*asin(1.0);cout两向量夹角为a度c;if(c.real=0)a=2*asin(1.0)/2.0;elsea=atan(c.imag/c.real)*180/(2*asin(1.0);cout向量角为a度c1;c2=c1*c1;coutc1c2;c3=c1*c2;coutc1;a=sqrt(c1.real*c1.real+c1.imag*c1.imag);coutc1的模为ac1c2;c3=c1-c2;coutc1c2;c3=c1/c2;coutc1;c2.real
13、=c1.real;c2.imag=-c1.imag;cout共轭为c2;return 0;int select,m;void selects()cout*欢迎使用计算器*endl;cout若要使用实数计算器,请输入1endl;cout若要使用复数计算器,请输入2endl;cout退出0endl;cout*select;void menu1()cout-请选择功能-endl;cout 1.加法endl;cout 2.减法endl;cout 3.乘法endl;cout 4.除法endl;cout 5.自增endl;cout 6.自减endl;cout 7.求平方endl;cout 8.求二次方根e
14、ndl;void menu2()cout-请选择功能-endl; cout 1.加法endl; cout 2.减法endl; cout 3.乘法endl; cout 4.除法endl; cout 5.取模endl; cout 6.求平方endl; cout 7.求向量角endl; cout 8.求两向量的向量角endl; cout 9.求共轭复数s;Real a;switch(s)case 1:a.add();break;case 2:a.subtraction();break;case 3:a.multiplication();break;case 4:a.division();break;case 5:a.addself();break;case 6:a.decrement();break;case 7:a.square();break;case 8:a.square_root();break;if(select=2)menu2();cins;Complex b;switch(s)case 1:b.add();break;case 2:b.subtraction();break;case 3:b.multiplication();break;case 4:b.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年中职康复技术(物理治疗)试题及答案
- 儿童大脑开发题目及答案
- IT系统集成合同协议2025年智能
- 2024年中考道德与法治(安徽)第二次模拟考试(含答案)
- 2025年海南省公需课学习-生态环境损害赔偿制度改革方案解析65
- 2025年质量月质量知识竞赛试题集及答案(共90题)
- 2025年营养健康顾问知识竞赛题库及答案(共160题)
- 2025年安全生产知识问答题及答案(共60题)
- 武生院思政考试题及答案
- 品质组长考试题库及答案
- 浙江省消防技术规范难点问题 操作技术指南(2020 版)
- 精装修监理实施细则
- 急危重症护理培训心得
- 大学体育-瑜伽学习通超星期末考试答案章节答案2024年
- 超星尔雅学习通《文献信息检索与利用(成都航空职业技术学院)》2024章节测试答案
- 21 小圣施威降大圣
- 【未知机构】华为公司战略规划和落地方法之五看三定工具解析
- 企业微信指导手册管理员版
- DL-T 2582.1-2022 水电站公用辅助设备运行规程 第1部分:油系统
- (完整word版)劳动合同书(电子版)正规范本(通用版)
- 初中物理实验通知单
评论
0/150
提交评论