《c++程序设计实验报告答案.pdf》由会员分享,可在线阅读,更多相关《c++程序设计实验报告答案.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-实验要求:对大纲中列出的四个实验要求:1.以面向对象的程序设计思想编程。2.熟悉面向对象程序设计语言 VC+编程环境。3.在计算机上快速完成程序编写、调试、运行。分别写出实验报告三页以上,要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。完成实验报告和上交源程序。备注:1.计算机应用技术专、计算机应用根底专、高级语言程序设计一专要求学生进展上机操作,保存上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生*号+*命名,最后试点院校汇总,刻录光盘上交主考院校;2口语专、口译与听力本要求考生进展现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件
2、夹,文件夹以学生*号+*命名,最后试点院校汇总,刻录光盘上交主考院校;3.论文,作业,实验报告,案例分析,前沿思考,学习报告等均要求 A4 纸手写,严禁打印、复印;4试点院校按百分制录入成绩,录入后打印学生成绩单;5按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆;6实践课程考核评估记录表也需按照成绩单顺序排序,单独上报;7有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。交实验报告时间:10 月 8 日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误!实验一:简单类与对象 一、实验目的 1、熟悉 VC+的编程环境,掌握 VC+6.
3、0 的调试方法。2、掌握简单的类与对象的定义。二、实验内容 用类定义,输入半径和高,输出圆柱体的底面积和体积。三、实验要求 1、硬件设备:奔腾及以上计算机,局域网。2、软件环境:WINDOWS*P、VC+6.0。3、实验课前预习,课后及时完成实验报告。4、实验过程及记录按题目格式要求填写在代码清单中。四、代码清单或实验步骤#include using namespace std;const float PI=3.14159f;class Cylinder private:-float radius;float high;public:Cylinder()Cylinder(float r,flo
4、at h)radius=r;high=h;void setradius(float r)radius=r;void sethigh(float h)high=h;float bottomarea()return PI*radius*radius;float volumn()return bottomarea()*high;void main()float r,h;Cylinder onecylinder;coutr;couth;onecylinder.setradius(r);onecylinder.sethigh(h);cout底面积为:onecylinder.bottomarea()end
5、l;cout体积为:onecylinder.volumn()endl;五、实验中出现的问题及解决的方法 1、数据类型的兼容问题 程序代码:const float PI=3.14159;提示将 double 类型强制赋给 float 类型的警告 解决方法:const float PI=3.14159f;六、讨论或体会或改良实验的建议-这个实验比拟简单,较容易的实现了。实验二:类与对象 一、实验目的 1、熟悉 VC+的编程环境,掌握 VC+6.0 的调试方法。2、学习类、成员函数与对象的定义方法。3、掌握构造函数和析构函数的使用。4、掌握对象成员的使用方法。二、实验内容 定义一个学生类,其中有 3
6、 个数据成员:*、年龄,以及假设干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:a)使用成员函数实现对数据的输入、输出;b)使用构造函数和析构函数实现对数据的输入、输出。三、实验要求 1、硬件设备:奔腾及以上计算机,局域网。2、软件环境:WINDOWS*P、VC+6.0。3、实验课前预习,课后及时完成实验报告。4、实验过程及记录按题目格式要求填写在代码清单中。四、代码清单或实验步骤#include using namespace std;class Student private:char num10;char name10;int age;public:Student
7、()Student(char num,char name,int age)strcpy(this-num,num);strcpy(this-name,name);this-age=age;void set(char num,char name,int age)strcpy(this-num,num);strcpy(this-name,name);this-age=age;void print()-cout*:num,:name,年龄:ageendl;void main()char num10,name10;int age;Student zs;coutnum;coutname;coutage;
8、zs.set(num,name,age);zs.print();五、实验中出现的问题及解决的方法 Student(char num,char name,int age)strcpy(this.num,num);strcpy(this.name,name);this.age=age;E:vctesttest2main.cpp(25):error C2228:left of.num must have class/struct/union type E:vctesttest2main.cpp(26):error C2228:left of.name must have class/struct/u
9、nion type E:vctesttest2main.cpp(27):error C2228:left of.age must have class/struct/union type 解决方法:将程序代码修改如下 Student(char num,char name,int age)strcpy(this-num,num);strcpy(this-name,name);this-age=age;程序调试完毕,输出结果如下:六、讨论或体会或改良实验的建议 面向对象编程,必须要首先要分析类构造,便于实现该类。本实验中的学生类的示意图如下:Student 类 num*name*-age 年龄 S
10、tudent()构造函数 Student()析构函数 Set()输入函数 Print()输出函数 实验三:类与对象/继承与派生 一、实验目的 1、进一步熟悉 VC+6.0 编程环境,掌握程序的编写、调试和运行。2、掌握 const 对象与 const 成员函数的用法。3、掌握友元函数与友元类的用途。4、熟悉不同派生方式的访问特性,掌握类层次中构造函数的定义方式和派生类构造函数和析构函数的调用次序。5、学习定义虚基类的方法,利用虚基类解决二义性问题。二、实验内容 class area_c1 protected:double height;double width;public:area_c1(d
11、ouble r,double s)height=r;width=s;virtual double area()=0;要求:1建立基类 area_c1 的两个派生类 rectangle 与 isosceles,让每一个派生类都包含一个函数 area,分别用来返回矩形与三角形的面积。用构造函数对 height 与 width进展初始化。2 写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与 width 分别为 4.0 与 6.0 的三角形面积。3要求通过使用基类指针访问虚函数的方法即运行时的多态性分别求出矩形和三角形面积。三、实验要求 1、硬件设备:奔
12、腾及以上计算机,局域网。2、软件环境:WINDOWS*P、VC+6.0。3、实验课前预习,课后及时完成实验报告。4、实验过程及记录按题目格式要求填写在代码清单中。四、代码清单或实验步骤#include using namespace std;class area_c1 protected:double height;-double width;public:area_c1(double r,double s)height=r;width=s;virtual double area()=0;class rectangle:public area_c1 public:rectangle(doubl
13、e r,double s):area_c1(r,s)double area()return height*width;class isosceles:public area_c1 public:isosceles(double r,double s):area_c1(r,s)double area()return height*width/2;void main()rectangle rectangle(10,5);isosceles isosceles(4,6);area_c1*ptr;ptr=&rectangle;cout矩形的面积为:area()endl;ptr=&isosceles;cout三角形的面积为:area()endl;五、实验中出现的问题及解决的方法 父类 area_c1 中的两个成员派生到了两个子类中时,不能通过子类的构造函数直接对这两个成员进展初始化,必须通过调用父类的构造函数进展初始化才行,如下:public:rectangle(double r,double s):area_c1(r,s)-六、讨论或体会或改良实验的建议 C+中运行时多态是通过指向基类的指针和虚函数机制来实现的。产生运行时多态有如下 3 个前提:(1)类之间的继承关系满足赋值兼容性规则(2)改写了同名虚函数(3)根据赋值兼容性规则使用指针或引用
限制150内