c程序设计实验报告参考答案
5、学习定义虚基类的方法,利用虚基类解决二义性问题。
二、实验内容
classarea_c1{
protected:
double height;
double width;
public:
area_c1(double r,double s)
{height=r;width=s;}
virtual double area()=0;
a) 使用成员函数实现对数据的输入、输出;
b) 使用构造函数和析构函数实现对数据的输入、输出。
三、实验要求
1、硬件设备:奔腾Ⅱ及以上计算机,局域网。
2、软件环境:WINDOWS XP、VC++6.0。
3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤
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
};
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
}
五、实验中出现的问题及解决的方法
1、数据类型的兼容问题
程序代码:const float PI=3.14159;提示将double类型强制赋给float类型的警告
解决方法:const float PI=3.14159f;
六、讨论或体会或改进实验的建议
这个实验比较简单,较容易的实现了。
实验二:类与对象
三、实验要求
1、硬件设备:奔腾Ⅱ及以上计算机,局域网。
2、软件环境:WINDOWS XP、VC++6.0。
3、实验课前预习,课后及时完成实验报告。
4、实验过程及记录按题目格式要求填写在代码清单中。
四、代码清单或实验步骤
#include<iostream>
using namespace std;
const float PI=3.14159f;
}
要求:
(1)建立基类area_c1的两个派生类rectangle与isosceles,让每一个派生类都包含一个函数area(),分别用来返回矩形与三角形的面积。用构造函数对height与width进行初始化。
(2)写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角形面积。
area_c1 *ptr;
ptr=&rectangle;
cout<<"矩形的面积为:"<<ptr->area()<<endl;
ptr=&isosceles;
cout<<"三角形的面积为:"<<ptr->area()<<endl;
}
五、实验中出现的问题及解决的方法
父类area_c1中的两个成员派生到了两个子类中时,不能通过子类的构造函数直接对这两个成员进行初始化,必须通过调用父类的构造函数进行初始化才行,如下:
class Cylinder{
private:
float radius;
float high;
public:
Cylinder(){}
Cylinder(float r,float h)
{
radius=r;
high=h;
}
void setradius(float r)
{
radius=r;
}
void sethigh(float h)
}
void print()
{
cout<<"学号:"<<num<<",姓名:"<<name<<",年龄:"<<age<<endl;
}
};
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(,name);
1.《计算机应用技术》(专)、《计算机应用基础》(专)、高级语言程序设计(一)(专)要求学生进行上机操作,保留上机操作程序,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;
2.《口语》(专)、《口译与听力》(本)要求考生进行现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;
#include<iostream>
using namespace std;
class Student{
private:
char num[10];
char name[10];
int age;
public:
Student()
{
}
Student(char num[],char name[],int age)
strcpy(this->name,name);
this->age=age;
}
程序调试完毕,输出结果如下:
六、讨论或体会或改进实验的建议
面向对象编程,必须要首先要分析类结构,便于实现该类。本实验中的学生类的示意图如下:
Student类
num学号
name姓名
age 年龄
Student()构造函数
~Student()析构函数
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);
一、实验目的
1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。
2、学习类、成员函数与对象的定义方法。
3、掌握构造函数和析构函数的使用。
4、掌握对象成员的使用方法。
二、实验内容
定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:
3.论文,作业,实验报告,案例分析,前沿思考,学习报告等均要求A4纸手写,严禁打印、复印;
4.试点院校按百分制录入成绩,录入后打印学生成绩单;
5.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆;
6.实践课程考核评估记录表》也需按照成绩单顺序排序,单独上报;
7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。
Set()输入函数
Print()输出函数
实验三:类与对象/继承与派生
一、实验目的
1、进一步熟悉VC++6.0编程环境,掌握程序的编写、调试和运行。
2、掌握const对象与const成员函数的用法。
3、掌握友元函数与友元类的用途。
4、熟悉不同派生方式的访问特性,掌握类层次中构造函数的定义方式和派生类构造函数和析构函数的调用次序。
{
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);
交实验报告时间:
10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误!
实验一:简单类与对象
一、实验目的
1、熟悉VC++的编程环境,掌握VC++ 6.0的调试方法。
2、掌握简单的类与对象的定义。
二、实验内容
用类定义,输入半径和高,输出圆柱体的底面积和体积。
(3)要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别求出矩形和三角形面积。