c++程序设计实验报告答案.docx
- 文档编号:27496585
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:12
- 大小:89.99KB
c++程序设计实验报告答案.docx
《c++程序设计实验报告答案.docx》由会员分享,可在线阅读,更多相关《c++程序设计实验报告答案.docx(12页珍藏版)》请在冰豆网上搜索。
c++程序设计实验报告答案
实验要求:
对大纲中列出的四个实验要求:
1.以面向对象的程序设计思想编程。
2.熟悉面向对象程序设计语言VC++编程环境。
3.在计算机上快速完成程序编写、调试、运行。
分别写出实验报告〔三页以上〕,要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。
完成实验报告和上交源程序。
备注:
1."计算机应用技术"〔专〕、"计算机应用根底"〔专〕、高级语言程序设计〔一〕〔专〕要求学生进展上机操作,保存上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生XX号+XX命名,最后试点院校汇总,刻录光盘上交主考院校;
2."口语"〔专〕、"口译与听力"〔本〕要求考生进展现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生XX号+XX命名,最后试点院校汇总,刻录光盘上交主考院校;
3.论文,作业,实验报告,案例分析,前沿思考,学习报告等均要求A4纸手写,严禁打印、复印;
4.试点院校按百分制录入成绩,录入后打印学生成绩单;
5.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆;
6.实践课程考核评估记录表"也需按照成绩单顺序排序,单独上报;
7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。
交实验报告时间:
10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!
一定!
切记不要耽误!
实验一:
简单类与对象
一、实验目的
1、熟悉VC++的编程环境,掌握VC++6.0的调试方法。
2、掌握简单的类与对象的定义。
二、实验内容
用类定义,输入半径和高,输出圆柱体的底面积和体积。
三、实验要求
1、硬件设备:
奔腾Ⅱ及以上计算机,局域网。
2、软件环境:
WINDOWSXP、VC++6.0。
3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤
#include
usingnamespacestd;
constfloatPI=3.14159f;
classCylinder{
private:
floatradius;
floathigh;
public:
Cylinder(){}
Cylinder(floatr,floath)
{
radius=r;
high=h;
}
voidsetradius(floatr)
{
radius=r;
}
voidsethigh(floath)
{
high=h;
}
floatbottomarea()
{
returnPI*radius*radius;
}
floatvolumn()
{
returnbottomarea()*high;
}
};
voidmain()
{
floatr,h;
Cylinderonecylinder;
cout<<"请输入半径:
";
cin>>r;
cout<<"请输入高:
";
cin>>h;
onecylinder.setradius(r);
onecylinder.sethigh(h);
cout<<"底面积为:
"< cout<<"体积为: "< } 五、实验中出现的问题及解决的方法 1、数据类型的兼容问题 程序代码: constfloatPI=3.14159;提示将double类型强制赋给float类型的警告 解决方法: constfloatPI=3.14159f; 六、讨论或体会或改良实验的建议 这个实验比拟简单,较容易的实现了。 实验二: 类与对象 一、实验目的 1、熟悉VC++的编程环境,掌握VC++6.0的调试方法。 2、学习类、成员函数与对象的定义方法。 3、掌握构造函数和析构函数的使用。 4、掌握对象成员的使用方法。 二、实验内容 定义一个学生类,其中有3个数据成员: 学号、、年龄,以及假设干成员函数。 同时编写主函数使用这个类,实现对学生数据的赋值和输出。 要求: a)使用成员函数实现对数据的输入、输出; b)使用构造函数和析构函数实现对数据的输入、输出。 三、实验要求 1、硬件设备: 奔腾Ⅱ及以上计算机,局域网。 2、软件环境: WINDOWSXP、VC++6.0。 3、实验课前预习,课后及时完成实验报告。 4、实验过程及记录按题目格式要求填写在代码清单中。 四、代码清单或实验步骤 #include usingnamespacestd; classStudent{ private: charnum[10]; charname[10]; intage; public: Student() { } Student(charnum[],charname[],intage) { strcpy(this->num,num); strcpy(this->name,name); this->age=age; } voidset(charnum[],charname[],intage) { strcpy(this->num,num); strcpy(this->name,name); this->age=age; } voidprint() { cout<<"学号: "< "< "< } }; voidmain() { charnum[10],name[10]; intage; Studentzs; cout<<"请输入学号: "; cin>>num; cout<<"请输入XX: "; cin>>name; cout<<"请输入年龄: "; cin>>age; zs.set(num,name,age); zs.print(); } 五、实验中出现的问题及解决的方法 Student(charnum[],charname[],intage) { strcpy(this.num,num); strcpy(this.name,name); this.age=age; } E: \vctest\test2\main.cpp(25): errorC2228: leftof'.num'musthaveclass/struct/uniontype E: \vctest\test2\main.cpp(26): errorC2228: leftof'.name'musthaveclass/struct/uniontype E: \vctest\test2\main.cpp(27): errorC2228: leftof'.age'musthaveclass/struct/uniontype 解决方法: 将程序代码修改如下 Student(charnum[],charname[],intage) { strcpy(this->num,num); strcpy(this->name,name); this->age=age; } 程序调试完毕,输出结果如下: 六、讨论或体会或改良实验的建议 面向对象编程,必须要首先要分析类构造,便于实现该类。 本实验中的学生类的示意图如下: Student类 num学号 nameXX age年龄 Student()构造函数 ~Student()析构函数 Set()输入函数 Print()输出函数 实验三: 类与对象/继承与派生 一、实验目的 1、进一步熟悉VC++6.0编程环境,掌握程序的编写、调试和运行。 2、掌握const对象与const成员函数的用法。 3、掌握友元函数与友元类的用途。 4、熟悉不同派生方式的访问特性,掌握类层次中构造函数的定义方式和派生类构造函数和析构函数的调用次序。 5、学习定义虚基类的方法,利用虚基类解决二义性问题。 二、实验内容 classarea_c1{ protected: doubleheight; doublewidth; public: area_c1(doubler,doubles) {height=r;width=s;} virtualdoublearea()=0; } 要求: 〔1〕建立基类area_c1的两个派生类rectangle与isosceles,让每一个派生类都包含一个函数area〔〕,分别用来返回矩形与三角形的面积。 用构造函数对height与width进展初始化。 〔2〕写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角形面积。 〔3〕要求通过使用基类指针访问虚函数的方法〔即运行时的多态性〕分别求出矩形和三角形面积。 三、实验要求 1、硬件设备: 奔腾Ⅱ及以上计算机,局域网。 2、软件环境: WINDOWSXP、VC++6.0。 3、实验课前预习,课后及时完成实验报告。 4、实验过程及记录按题目格式要求填写在代码清单中。 四、代码清单或实验步骤 #include usingnamespacestd; classarea_c1{ protected: doubleheight; doublewidth; public: area_c1(doubler,doubles) {height=r;width=s;} virtualdoublearea()=0; }; classrectangle: publicarea_c1 { public: rectangle(doubler,doubles): area_c1(r,s) { } doublearea() { returnheight*width; } }; classisosceles: publicarea_c1 { public: isosceles(doubler,doubles): area_c1(r,s) { } doublearea() { returnheight*width/2; } }; voidmain() { rectanglerectangle(10,5); isoscelesisosceles(4,6); area_c1*ptr; ptr=&rectangle; cout<<"矩形的面积为: "< ptr=&isosceles; cout<<"三角形的面积为: "< } 五、实验中出现的问题及解决的方法 父类area_c1中的两个成员派生到了两个子类中时,不能通过子类的构造函数直接对这两个成员进展初始化,必须通过调用父类的构造函数进展初始化才行,如下: public: rectangle(doubler,doubles): area_c1(r,s) { } 六、讨论或体会或改良实验的建议 C++中运行时多态是通过指向基类的指针和虚函数机制来实现的。 产生运行时多态有如下3个前提: (1)类之间的继承关系满足赋值兼容性规那么 (2)改写了同名虚函数 (3)根据赋值兼容性规那么使用指针〔或引用〕
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 程序设计 实验 报告 答案