C++综合实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

华北科技学院计算机系综合性实验实验报告课程名称C++程序设计B实验学期2011至2012学年第1学期学生所在系部年级专业班级学生姓名学号任课教师实验成绩计算机系制华北科技学院计算机系综合性实验报告第1页实验报告须知1、学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。3、教师应该填写的内容包括:实验成绩、教师评价等。4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。5、未尽事宜,请参考该课程的实验大纲和教学大纲。华北科技学院计算机系综合性实验报告第2页《C++程序设计B》课程综合性实验报告开课实验室:基础五2011年6月20日实验题目复数类的设计一、实验目的掌握类的概念及构造方法;掌握构造函数的定义与使用;掌握友元的定义与使用;掌握运算符的重载定义与使用。二、设备与环境微型计算机、Windows系列操作系统、VisualC++6.0软件三、实验内容设计复数类,重载+,-,*,/,,等运算符。编程设计实现下列函数:MyComplex();MyComplex(inta);MyComplex(inta,intb);MyComplex(constMyComplex&v);Mycomplex&operator=(constMycomplex&rhs);Mycomplex&operator+=(constMycomplex&rhs);Mycomplex&operator-=(constMycomplex&rhs);Mycomplex&operator*=(constMycomplex&rhs);Mycomplex&operator/=(constMycomplex&rhs);friendMyComplexoperator+(MyComplexm,MyComplexn);friendMyComplexoperator-(MyComplexm,MyComplexn);friendMyComplexoperator*(MyComplexm,MyComplexn);friendMyComplexoperator/(MyComplexm,MyComplexn);friendostream&operator(ostream&s,MyComplext);friendistream&operator(istream&s,MyComplex&t);四、实验结果及分析1、题目分析及设计思路题目要求实现复数的运算,首先创建一个类,其成员函数主要包括构造函数、拷贝函数、单目运算符的重载函数和双目运算符重载友元函数,然后是函数体的实现及主函数实现。2、实验结果及分析程序:#includeiostream.h#includemath.hclassmycomplex//类的声明{private://私有数据doublereal;//实部doubleimag;//虚部华北科技学院计算机系综合性实验报告第3页public://公共数据mycomplex();mycomplex(doublea);mycomplex(doublea,doubleb);mycomplex(constmycomplex&v);mycomplex&operator=(constmycomplex&rhs);mycomplex&operator+=(constmycomplex&rhs);mycomplex&operator-=(constmycomplex&rhs);mycomplex&operator*=(constmycomplex&rhs);mycomplex&operator/=(constmycomplex&rhs);friendmycomplexoperator+(mycomplexm,mycomplexn);friendmycomplexoperator-(mycomplexm,mycomplexn);friendmycomplexoperator*(mycomplexm,mycomplexn);friendmycomplexoperator/(mycomplexm,mycomplexn);friendostream&operator(ostream&s,mycomplext);friendistream&operator(istream&s,mycomplex&t);voiddisplay(){cout(real+imagi)endl;}};mycomplex::mycomplex(){real=0;imag=0;}mycomplex::mycomplex(doublea){real=a;imag=0;华北科技学院计算机系综合性实验报告第4页}mycomplex::mycomplex(doublea,doubleb){real=a;imag=b;}mycomplex::mycomplex(constmycomplex&v){real=v.real;imag=v.imag;}mycomplex&mycomplex::operator=(constmycomplex&rhs){real=rhs.real;imag=rhs.imag;return*this;}mycomplex&mycomplex::operator+=(constmycomplex&rhs){real=real+rhs.real;imag=imag+rhs.imag;return*this;}mycomplex&mycomplex::operator-=(constmycomplex&rhs){real=real-rhs.real;imag=imag-rhs.imag;return*this;}mycomplex&mycomplex::operator*=(constmycomplex&rhs)华北科技学院计算机系综合性实验报告第5页{real=real*rhs.real;imag=imag*rhs.imag;return*this;}mycomplex&mycomplex::operator/=(constmycomplex&rhs){real=real/rhs.real;imag=imag/rhs.imag;return*this;}mycomplexoperator+(mycomplexm,mycomplexn)//加法{returnmycomplex(m.real+n.real,m.imag+n.imag);}mycomplexoperator-(mycomplexm,mycomplexn)//减法{returnmycomplex(m.real-n.real,m.imag-n.imag);}mycomplexoperator*(mycomplexm,mycomplexn)//乘法{returnmycomplex(m.real*n.real-m.imag*n.imag,m.real*n.imag+m.imag*n.real);}mycomplexoperator/(mycomplexm,mycomplexn)//除法{returnmycomplex((m.real*n.real+m.imag*n.imag)/(n.real*n.real+n.imag*n.imag),(m.imag*n.real-m.real*n.imag)/(n.real*n.real+n.imag*n.imag));}ostream&operator(ostream&s,mycomplext)//输出流重载华北科技学院计算机系综合性实验报告第6页{s(t.real+t.imagi)endl;returns;}istream&operator(istream&s,mycomplex&t)//输入流重载{st.realt.imag;returns;}intmain(){doublea,b,c,d;coutinputthefirstmycomplexm:endl;cinab;mycomplexm(a,b);coutinputthesecondmycomplexn:endl;cincd;mycomplexn(c,d);//m.display();//n.display();coutm=mendl;coutn=nendl;coutm+n=m+nendl;coutm-n=m-nendl;coutm*n=m*nendl;coutm/n=m/nendl;return0;}华北科技学院计算机系综合性实验报告第7页结果4、实验心得及体会众所周知,在C++中,面向对象的核心思想就是封装、继承、多态。每个对象都是由数据和函数这两部分组成的。所谓多态性是指:由继承性而产生的相关的不同的类,其对象对同一消息会做出不同的响应。而此次运算符重载的实验就很好地体现了其多态性,增加了程序的灵活性。本实验是为运算符编写重载函数,实现复数的运算。所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新的功能。因此,同一个函数名就可以用来代表不同功能的函数,也就是一名多用。通过此次实验,我更加清晰的了解到了C++的基本的程序规则和编程思想,通过对类和对象的理解以及对其成员变量和成员函数、友元函数的使用,使得自己可以通过面向对象的方法并运用程序设计语言来解决实际问题,对自己有很大的帮助。在实验中也发现自身有很多不足,比如说对重载运算符的规则不太熟悉,对函数的应用有很多不足,导致实验中出现大量错误,布局也出现了一些失误,之后经过不断认识、熟悉、改正,终于完成本次实验。加深了我对c++面向对象程序设计的理解。编程是每个学习计算机的必备知识,在以后的学习中我一定要更加努力的学好编程。华北科技学院计算机系综合性实验报告第8页教师评价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:2011年06月22日

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功