c++程序设计实验报告(参考答案)
更新时间:2024-01-01 11:01:01 阅读量: 教育文库 文档下载
实验要求:
对大纲中列出的四个实验要求: 1.以面向对象的程序设计思想编程。
2.熟悉面向对象程序设计语言VC++编程环境。 3.在计算机上快速完成程序编写、调试、运行。 分别写出实验报告(三页以上),要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。完成实验报告和上交源程序。
备注:
1.《计算机应用技术》(专)、《计算机应用基础》(专)、高级语言程序设计(一)(专)要求学生进行上机操作,保留上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校; 2.《口语》(专)、《口译与听力》(本)要求考生进行现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;
3. 论文,作业,实验报告,案例分析,前沿思考,学习报告等均要求A4纸手写,严禁打印、复印;
4.试点院校按百分制录入成绩,录入后打印学生成绩单;
5.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆; 6.实践课程考核评估记录表》也需按照成绩单顺序排序,单独上报; 7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。
交实验报告时间:
10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误!
实验一:简单类与对象
一、实验目的
1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。 2、掌握简单的类与对象的定义。
二、实验内容
用类定义,输入半径和高,输出圆柱体的底面积和体积。
三、实验要求
1、硬件设备:奔腾Ⅱ及以上计算机,局域网。 2、软件环境:WINDOWS XP、VC++6.0。 3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。 四、代码清单或实验步骤 #include
return bottomarea()*high; } };
void main() {
float r,h;
Cylinder onecylinder; cout<<\请输入半径:\cin>>r;
cout<<\请输入高:\cin>>h;
onecylinder.setradius(r); onecylinder.sethigh(h);
cout<<\底面积为:\cout<<\体积为:\}
五、实验中出现的问题及解决的方法
1、数据类型的兼容问题
程序代码:const float PI=3.14159;提示将double类型强制赋给float类型的警告 解决方法:const float PI=3.14159f;
六、讨论或体会或改进实验的建议 这个实验比较简单,较容易的实现了。
实验二:类与对象
一、实验目的
1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。 2、学习类、成员函数与对象的定义方法。 3、掌握构造函数和析构函数的使用。 4、掌握对象成员的使用方法。
二、实验内容
定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:
a) 使用成员函数实现对数据的输入、输出;
b) 使用构造函数和析构函数实现对数据的输入、输出。
三、实验要求
1、硬件设备:奔腾Ⅱ及以上计算机,局域网。 2、软件环境:WINDOWS XP、VC++6.0。 3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤 #include
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<<\学号:\姓名:\年龄:\
} };
void main() {
char num[10],name[10]; int age; Student zs;
cout<<\请输入学号:\ cin>>num;
cout<<\请输入姓名:\ cin>>name;
cout<<\请输入年龄:\ cin>>age;
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:\\vctest\\test2\\main.cpp(25) : error C2228: left of '.num' must have class/struct/union type E:\\vctest\\test2\\main.cpp(26) : error C2228: left of '.name' must have class/struct/union type E:\\vctest\\test2\\main.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 年龄 Student()构造函数 ~Student()析构函数 Set()输入函数 Print()输出函数
实验三:类与对象/继承与派生
一、实验目的
1、进一步熟悉VC++6.0编程环境,掌握程序的编写、调试和运行。 2、掌握const对象与const成员函数的用法。 3、掌握友元函数与友元类的用途。
4、熟悉不同派生方式的访问特性,掌握类层次中构造函数的定义方式和派生类构造函数和析构函数的调用次序。
5、学习定义虚基类的方法,利用虚基类解决二义性问题。
二、实验内容
class area_c1{ protected: double height; double width; public: area_c1(double 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、硬件设备:奔腾Ⅱ及以上计算机,局域网。 2、软件环境:WINDOWS XP、VC++6.0。 3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤 #include
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(double 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<<\矩形的面积为:\ptr=&isosceles;
cout<<\三角形的面积为:\}
五、实验中出现的问题及解决的方法
父类area_c1中的两个成员派生到了两个子类中时,不能通过子类的构造函数直接对这两个成员进行初始化,必须通过调用父类的构造函数进行初始化才行,如下:
public:
rectangle(double r,double s):area_c1(r,s) { }
六、讨论或体会或改进实验的建议
C++中运行时多态是通过指向基类的指针和虚函数机制来实现的。产生运行时多态有如下3个前提:
(1) 类之间的继承关系满足赋值兼容性规则 (2) 改写了同名虚函数
(3) 根据赋值兼容性规则使用指针(或引用)
正在阅读:
c++程序设计实验报告(参考答案)01-01
感恩孝敬父母的诗歌03-21
张元鹏《微观经济学》(中级教程)习题详解(第12章 寡头市场)05-23
爱玩手机的爸爸作文500字07-03
大一计算机复习资料03-19
我爱下跳棋作文350字06-17
师德师风工作总结范本参考04-04
西安市大遗址保护的基本做法07-19
人教版小学二年级下册《道德与法治》复习资料练习卷版06-02
生物统计软件01-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- c++
- 程序设计
- 答案
- 参考
- 实验
- 报告
- 浅谈我国集资诈骗罪的认定及其死刑废除问题
- 爱普生打印机故障解决方法
- 工程项目日常管理工作
- 扶贫办关于贫困村互助资金试点工作总结报告
- (0326)婚姻继承法复习思考题
- 2009年平原县初中毕业生学业水平考试理化试题
- 最新苏教版小学数学三年级上册第2课时求一个数是另一数的几倍公开课教学设计
- 育婴师练习题1
- 决胜2018中考化学压轴题揭秘专题03复分解反应的应用(预测题,无答案)
- 左岸导流洞进、出口围堰枯期拆除专项安全措施
- 西安铁路职业技术学院优秀个人简历 - 图文
- 07-通信技术专业教学计划 - 图文
- 2015年全国研究生数学建模竞赛A题
- (人教版)2018年秋九上数学:第25章《概率初步》全章教案(含答案)
- MATLAB仿真-BPSK调制的
- 移动通信基站防雷与接地设计规范
- 室内空气质量检测系统的设计
- Word中的自动化武器揭秘
- 高二语文开学第一课(定)
- 审计课后答案主编刘兆明 陈继林