收藏 分享(赏)

C++面向对象实验报告1.doc

上传人:dreamzhangning 文档编号:2330879 上传时间:2018-09-10 格式:DOC 页数:8 大小:27.02KB
下载 相关 举报
C++面向对象实验报告1.doc_第1页
第1页 / 共8页
C++面向对象实验报告1.doc_第2页
第2页 / 共8页
C++面向对象实验报告1.doc_第3页
第3页 / 共8页
C++面向对象实验报告1.doc_第4页
第4页 / 共8页
C++面向对象实验报告1.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、电子与信息工程系实验报告 C+面向对象程序设计实验报告专 业: 计算机科学与技术 班 级: 2012 级软件方向 学 号: 2012020244 姓 名: 孙 浩 实验报告 1 代码组织案例 1C+面向对象程序设计实验卡片实验编号: 3280121301 实验名称及学时: 代码组织案例 1姓 名: 孙浩 班 级:2 班 计本二班学 号: 2012020244 实 验 室:实验情况评价(教师填写):建议实验成绩(教师填写):1.实验内容(1)熟悉 VC+6.0 开发环境,能进行项目和相关文件的建立,程序的编译和调试.(2)复数是个很有用的概念,在数字信号处理等方面发挥了重要作用.在 C+的标准程

2、序库中对它进行了实现.本次任务:(A)以 C 的程序结构来实现进行复数的基本运算,两个复数加,减,乘,除.(B)根据面向对象的程序设计方法,创建相关复数类实现复数的相关运算.(C)分析自己的复数类,有那些方面有待改进.2.预习内容VC 开发环境的使用,回顾 C 语言解决问题的基本流程,面向对象分析,使用抽象,封装实现类的编写测试.3.实验类型验证型4.实验目的(1)掌握 VC+ 6.0 开发环境的使用,程序的调试方法.(2)回顾复习 C 的结构体及函数的使用,来解决数学问题.(3)掌握面向对象的分析方法,会从问题域中抽象出相关的类,及在 VC6.0 中使用 C+规则描述类的属性和行为.(4)使

3、用面向对象的分析方法,对程序进行分析电子与信息工程系实验报告 5.实验要求(1)打开 VC 环境直接创建源文件进行编码测试,请使用 C 和 C+两种方式解决问题.(2)完成实验内容要求并进行测试,分析结果,对比两种方式优缺点。6.实验过程(源文件、步骤及结果分析)#include #include typedef struct fushu/抽象数据类型定义 float real;/数据对象float image; fushu;fushu ComplexNumberInput(float a,float b)/构造二元组 fushu c; c.real=a;/实部c.image=b;/虚部ret

4、urn(c); fushu ComplexNumberAdd(fushu c1,fushu c2)/求和运算 fushu sum; sum.real=c1.real+c2.real; sum.image=c1.image+c2.image; return (sum); fushu ComplexNumberSub(fushu c1,fushu c2)/求差运算 fushu sub; sub.real=c1.real-c2.real; sub.image=c1.image-c2.image; return (sub); fushu ComplexNumberMul(fushu c1,fushu

5、c2)/求积运算 fushu Mul; Mul.real=c1.real*c2.real-c1.image*c2.image; Mul.image=c1.real*c2.image+c1.image*c2.real; return (Mul); fushu ComplexNumberDiv(fushu c1,fushu c2)/求商运算 fushu div; float d1,d2,d3,d4; d1=c1.real*c2.real+c1.image*c2.image; d2=c2.real*c2.real+c2.image*c2.image; d3=c1.image*c2.real-c1.r

6、eal*c2.image; d4=c2.real*c2.real+c2.image*c2.image; if(d2!=0div.image=d3/d4; return(div); else div.real=0; div.image=0; return(div); 实验报告 1 代码组织案例 1 void ComplexNumberOutput(fushu c)/输出运算结果 if(c.real=0.0 if(c.real=0.0 if(c.real!=0.0 if(c.real!=0.0 void main()/主函数 int choice; int k; float a1,a2,b1,b2

7、; struct fushu c1,c2,sum,sub,mult,div; printf(“欢迎进行复数的基本代数运算n“); printf(“1: 复数加法运算n“); printf(“2: 复数减法运算n“); printf(“3: 复数乘法运算n“); printf(“4: 复数除法运算n“); printf(“0: 推出系统n“); printf(“请分别输入第一个复数的实部和虚部: “); scanf(“%f%f“, c1 = ComplexNumberInput(a1,b1); printf(“第一个复数为: “);ComplexNumberOutput(c1); printf(

8、“请分别输入第二个复数的实部和虚部: “); scanf(“%f%f“, c2 = ComplexNumberInput(a2,b2); printf(“第二个复数为: “); ComplexNumberOutput(c2); for(;) printf(“请输入你选择的功能: “); scanf(“%d“, switch(choice) case 0:exit(0); break; case 1:sum = ComplexNumberAdd(c1,c2); printf(“求和后结果为: “); ComplexNumberOutput(sum); break; case 2:sub = Co

9、mplexNumberSub(c1,c2); printf(“求差后结果为: “); ComplexNumberOutput(sub); break; case 3:mult = ComplexNumberMul(c1,c2); printf(“求积后结果为: “); ComplexNumberOutput(mult ); break; case 4:div=ComplexNumberDiv(c1,c2); if(div.real!=0 ComplexNumberOutput(div); break; 电子与信息工程系实验报告 else printf(“除零错误,请重新输入第二个复数;n“);

10、 k=0; exit(k); #include #include #include using namespace std;class Complexpublic:double real,imag;Complex()real=0.0;imag=0.0;Complex(double r,double i) /构造函数 real=r; imag=i; Complex()Complex operator+(Complex sum.real=real+c.real; /实部相加sum.imag=imag+c.imag; /虚部相加return sum; Complex operator-(Comple

11、x sub.real=real-c.real; /实部相减sub.imag=imag-c.imag; /虚部相减return sub; Complex operator*(Complex multi.real=real*c.real-imag*c.imag; /实部乘积multi.imag=real*c.imag+imag*c.real; /虚部乘积return multi; Complex operator/(Complex div.real=(real*c.real+imag*c.imag)/(c.real*c.real+c.imag*c.imag); /实部除积div.imag=(ima

12、g*c.real-real*c.imag)/(c.real*c.real+c.imag*c.imag); /虚部除积return div; int Complex: operator=(Complex 实验报告 1 代码组织案例 1elsereturn 0;int Complex: operator!=(Complex elsereturn 1; void Add() /复数加法运算函数 double a,b,c,d;coutab; coutcd; Complex num1(a,b),num2(c,d),sum,zero(0,0); sum=num1+num2; double x,y;cout

13、xy;Complex num(x,y);int i=4;while(!(num=zero) sum=sum+num; coutab;num.real =a;num.imag =b;i+; if(sum.imag 0)coutab; coutcd; Complex num1(a,b),num2(c,d),sub,zero(0,0); sub=num1-num2; double x,y;coutxy;Complex num(x,y);int i=4;while(!(num=zero) sub=sub-num; coutab;num.real =a;num.imag =b;i+; if(sub.im

14、ag0)coutab; coutcd; Complex num1(a,b),num2(c,d),mul,zero(0,0); mul=num1*num2; double x,y;coutxy;Complex num(x,y);int i=4;while(!(num=zero) mul=mul*num; coutab; num.real =a;num.imag =b;i+; if(mul.imag 0)coutab; coutcd; Complex num1(a,b),num2(c,d),div,zero(0,0); div=num1/num2; double x,y;coutxy;Comple

15、x num(x,y);int i=4;while(num!=zero) div=div/num; coutab; num.real =a;num.imag =b;i+; if(div.imag0)coutstrChoise; if(strcmp(strChoise,“1“)=0) /用户选 1 则调用 Add()函数Add(); else if(strcmp(strChoise,“2“)=0) /用户选 2 则调用 Sub()函数 Sub(); else if(strcmp(strChoise,“3“)=0) /用户选 3 则调用 Mul()函数Mul(); else if(strcmp(strChoise,“4“)=0) /用户选 4 则调用 Div()函数Div(); else if(strcmp(strChoise,“0“)=0) /用户选 0 则结束调用函数 cout“nnt 欢迎下次继续使用复数计算器!nn“; else cout“nt 输入错误,请按任意键继续!n“; 7.实验总结(程序调试体会、收获)通过本次试验 对面性对象有了进一步了解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报