收藏 分享(赏)

东北大学软件学院C++实验报告.doc

上传人:精品资料 文档编号:8858029 上传时间:2019-07-14 格式:DOC 页数:19 大小:687.50KB
下载 相关 举报
东北大学软件学院C++实验报告.doc_第1页
第1页 / 共19页
东北大学软件学院C++实验报告.doc_第2页
第2页 / 共19页
东北大学软件学院C++实验报告.doc_第3页
第3页 / 共19页
东北大学软件学院C++实验报告.doc_第4页
第4页 / 共19页
东北大学软件学院C++实验报告.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、课程编号:B080101020C+程序设计实验报告姓名 学 号班级 指 导 教 师实验名称 C+ 程序设计综合实验开发与总结开设学期 2016-2017 学 年 第 一 学 期开设时间 第 15 周 第 18 周报告日期 XXXX评 定 人 XXX评定成绩评 定 日 期 2016-01-12东北大学软件学院C+程序设计实验报告 东北大学软件学院- 1 -1. 实验目的实验一1) 学习编写简单的 C+程序,并掌握 C+程序的基本格式与规范。2) 练习重载函数的使用,掌握指针的使用方法。3) 学习标准输人输出及格式控制。4) 学习使用 VC +的 debug 调试功能,使用 step into 追

2、踪到函数内部。实验二1) 学习并掌握类与对象的定义、使用、声明。2) 学习具有不同属性的数据成员与成员函数的访问方式。3) 理解构造函数和析构函数的定义与执行过程。4) 理解什么是运算符重载,掌握运算符重载的方法实验三1) 学习定义和使用类的继承关系,定义派生类。2) 熟悉不同继承方式下对基类成员的访问控制。3) 学习使用虚函数实现动态多态性。4) 学习利用虚基类解决二义性问题。实验四1) 加强对模板相关概念的理解,熟悉模板编程的语法。2) 学习编写简单的函数模板和类模板。3) 理解 STL 中容器、算法、迭代器的等概念,明确它们之间的关系。4) 掌握 STL 中 Vector 容器的使用方法

3、。2. 实验环境编译器:Microsoft Visual C+ 6.0操作系统:Windows 10C+程序设计实验报告 东北大学软件学院- 2 -3. 实验内容与实验过程及分析实验一项目一:内容:使用动态数组完成编写并测试 3X3 矩阵转置函数,使用数组保存 3X3 矩阵,使用指针实现函数的功能。代码:main()int i,j;int *p;p=new int*3;coutpij;transpose(p);cout i)k=matrixji;matrixji=matrixij;matrixij=k;C+程序设计实验报告 东北大学软件学院- 3 -运行结果:总结:传递二维数组时候通过指针传递

4、,可以对数组进行修改,方便了许多。项目二:内容:编写程序,读写指定的文件,在每一行前加行号后,将结果输出到屏幕代码:void write()ofstream out(“test.txt“);if (out.is_open()out ”操作符的原型为:istream重载的“(ostream思考一下,重载的“”操作符和“#includeclass CPointprivate:int x,y;static int nCount ;/ nCount 用于保存点的个数public:CPoint(int px=0,int py=0):x(px),y(py)/构造函数,这个地方一定要写函数体内容,不然没有初

5、始化的话会导致运行出错。/CPoint(CPointCPoint()/这是析构函数int GETX() constreturn x;int GETY() constreturn y;void SetX(int a)x=a;void SetY(int b)y=b;void ShowPoint()cout(istream ;CPoint operator-(CPoint/不要逗号ostream return is;class CLineprivate:CPoint pt1, pt2;/pt1 和 pt2 分别代表该线段的起点和终点public:CLine()/构造函数CLine(int x1,in

6、t y1,int x2,int y2):pt1(x1,y1),pt2(x2,y2)/必须以参数列表的形式来写,这样才能在声明的时候即初始化CLine(CPoint p1,CPoint p2):pt1(p1),pt2(p2)/必须以参数列表的形式来写,这样才能在声明的时候即初始化double Distance()int a=pt1.GETX()-pt2.GETX();int b=pt1.GETY()-pt2.GETY();double distance=sqrt(a*a+b*b);return distance; /计算该线段长度的成员函数void ShowLine()C+程序设计实验报告 东北

7、大学软件学院- 7 -pt1.ShowPoint();cout直接创建一个点,请输入两个值:“;CPoint LoadPoint;cinLoadPoint;cout#includeclass CPointprivate:int x,y;static int nCount ;/ nCount 用于保存点的个数public:CPoint(int px=0,int py=0):x(px),y(py)/构造函数,这个地方一定要写函数体内容,不然没有初始化的话会导致运行出C+程序设计实验报告 东北大学软件学院- 9 -错。/CPoint(CPointCPoint()/这是析构函数int GetX() c

8、onstreturn x;int GetY() constreturn y;void SetX(int a)x=a;void SetY(int b)y=b;virtual void ShowPoint()/只有把它设置为虚函数时候才会出现(8,9)(3,2,5)的输出结果。否则都是(8,9)(3,2)coutShowPoint();pt=pt-ShowPoint();return 0;运行结果:总结:C+中的继承、虚函数,多态,数据的封装,构造函数的实现等等各种面向对象程序设计的特性,方便进行现象化描述,通过对这一部分的学习,对于 C+中的类的概念进一步巩固,基于对 JAVA 的学习,现在对于

9、 C+中多态、继承有了较多的了解。项目二:内容:定义一个车(vehicle)基类,具有 MaxSpeed、Weight 等成员变量,Run、Stop 等成员函数,由此派生出自行车(bicycle) 类、汽车(motorcar)类。自行车(bicycle) 类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从 bicycle 和 motorcar 派生出摩托车(motorcycle)类,它们都有 Run、Stop 等成员函数。代码:#includeclass vehiclepublic:int MaxSpeed;int Weight;virtual vo

10、id Run()/执行该方法则开始运行coutRun();pt-Stop();pt=coutRun();pt-Stop();pt=coutRun();pt-Stop();pt=coutRun();pt-Stop();/*vehicle 开始运行,速度为 10停止运行bicycle 开始运行,速度为 5停止运行C+程序设计实验报告 东北大学软件学院- 12 -motorcar 开始运行 ,速度为 20停止运行motorcycle 开始运行 ,速度为 15停止运行*/运行结果:总结:学习了虚函数以及虚基类的使用以及作用。虚函数、虚基类的使用对于 C+的多态继承有更大的便利性。实验四项目一:内容:编

11、写一个函数模板,要求它返回两个值中的最小者。但同时要确保正确处理字符串。代码:#include#include using namespace std;template T min(T a, T b)T c;c = (a t1 t2;cout 定义的对象中,并对用户输入的所有数进行排序输出。在向显示器进行输出时,要求用一下 3 种方式实现:a) 仅使用 Vector的相关成员函数,不使用迭代器进行输出;b) 使用迭代器自己编程输出;c) 使用 STL 提供的通用算法 for_each 进行输出。代码:#include #include #include C+程序设计实验报告 东北大学软件学院-

12、 14 -using namespace std;void show(int n);void main()vector a;int n = 0;docin n;a.push_back(n); while (n != 0);for (int x = 0; (unsigned int)xay)int z = ax;ax = ay;ay = z;for (int i = 0; (unsigned int)i :iterator start = a.begin();vector:iterator end = a.end();while (start != end)cout *start “ “;+st

13、art;cout endl;for_each(a.begin(), a.end(), show);cout endl;void show(int n)cout n “ “;运行结果:(输出结果包含三种实现方式)C+程序设计实验报告 东北大学软件学院- 15 -总结:C+中对于数据的存储有较多种方式,这里实现一种存储并排序输出。掌握了 Vector的使用及其技巧。4. 实验总结从接触的第一门面向对象的语言 JAVA 开始,就对这种以对象形式来编程的方式产生了兴趣。现在,又学习了 C+,我对 C+这种面向对象的编程语言的语法有了大致的掌握,由于学过 JAVA 语言,所以面向对象的思想掌握的不是很慢

14、,但是比较吃力的就是 C+中既融合了 C 的指针思想,又具有 JAVA 的引用变量思想,还有就是析构函数的引入,编程人员自己在内存中分配内存,而且用完之后要自己调用相应的函数去释放,所以操作实现起来稍显困难,不过这也是 C+不同于 JAVA 之处对机器配置要求不是太高。C+编程的一些基本方法,是融合了 C 语言以及 JAVA 的,学会了 C+语言的基本语法,面向对象类的设计思想,我也还学会了如何自己从网上寻找资源,如何自学新东西,相信这次实验学到的知识在我未来的学习个工作道路上都会是宝贵的财富,并且会在以后的编程之路上给予我较大的帮助。5. 思考题实验一:1.1. 重载函数是通过什么来区分?答

15、:参数类型、数量、顺序。1.2. C+提供的输入输出操作与 C 语言的输入输出操作的异同点?答:同:都可以通过输入设备输入并将数据显示出来。异:C+不用指定输出类型。C+程序设计实验报告 东北大学软件学院- 16 -1.3. C+都定义了那些流?他们分别与什么设备相连?答:C+定义了 io 流,与输入输出设备相连。实验二:2.1. 类和结构体的区别是什么?答:成员访问权限不同,继承方式不同。结构体不提供继承机制,类提供继承机制,实现代码复用;类可以实现多态,结构体不支持。结构体中的数据默认方式是 public 的,而类是 private 的。2.2. 类的成员函数与普通的函数有何区别?答:类的

16、成员函数是成员的特有方法,而普通函数能够随意被调用。2.3. 构造函数和析构函数的作用是什么?答:初始化对象,分配内存空间,释放内存空间。2.4. 类的访问控制权限有何意义?答:保护成员变量,可以将类中的具体细节封装起来。实验三:3.1. C+中有哪几种派生方式?每种方式的派生类对基类成员的继承和访问控制属性是什么样的?答:有 public,private,protected 派生。public 派生,在派生类里和外面都可以直接调用基类的公有部分。protected 保护派生,在派生类里可以直接调用,但是在派生外面不可以调用。private 私有派生,在派生类里和外面都不可以直接调用,但可以用

17、函数间接调用。3.2. 派生类对象和基类对象是什么样的关系?派生类对象的构造函数和析构函数的执行顺序是怎样的?答:派生类对象是基类对象的扩展;执行派生类构造函数时先执行基类构造函数,构造一个基类对象;执行派生类析构函数时先执行派生类析构函数,再执行基类析构函数。3.3. 什么是多态?在 C+语言中,是如何实现多态的?答:多态是指接口的不同实现形式。可以通过虚函数,抽象类,重载,覆盖,模板实现。实验四:4.1. 谈谈使用模版进行编程的优点?答:使用模板可以增加代码的可重用性,摸板可以创建一系列类或函数,完成很多相C+程序设计实验报告 东北大学软件学院- 17 -似的功能;可以交换变量值的类型,从

18、而可以避免功能相同的变量类型不同的函数一遍又一遍的定义。4.2. 谈谈函数模板和模板函数两者之间的关系,以及类模板和模板类两者之间的关系?答:函数模版:生产出可以处理相同事情,但参数不同的函数,它拓展了函数的重载功能。模版函数:由函数模版产生的函数。4.3. STL 中容器、迭代器和算法三者之间的关系?答:容器是储存数据的,算法是处理数据的,而算法是通过迭代器来处理、操作容器中的数据。6. 参考文献1、基于案例的 Visual C+程序设计教程 阎光伟、彭文等著 清华大学出版社2、dingyuanpu CSDN 博主 博客链接 http:/ CN 博客园博主 博客链接 http:/ C+程序设

19、计实验成绩评定表 附录:C+程序设计实验成绩评定表评价内容 具 体 要 求 分值 得分平时表现 实验过程中,无缺勤现象,态度积极,具有严谨的学习态度和认真、踏实、一丝不苟的科学作风。 20提交材料能够按时提交实验要求的所有材料(要求在以“学号-姓名”命名的文件夹中,包含实验报告电子版、和分别以实验源代码1、2、3、4等命名的存放四次实验源代码的四个子文件夹,源代码仅包含代码文件,不要包含工程维护文件等),材料完备,质量、格式、内容等符合要求。20报告质量 实验报告格式规范,体例符合要求;报告内容充实、正确,实验目的归纳合理到位,思考题回答准确。 30实验内容能够按实验要求合理设计并开发出程序,认真记录实验数据,原理及实验结果分析准确,归纳总结充分;实验方案有一定的创新性。30总 分

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

当前位置:首页 > 企业管理 > 管理学资料

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


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

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

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