C++zmp第二次试验报告(第三章)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++实例实验报告
经济管理学院
信息管理与信息系统系
班级:信管102
姓名:左明强
学号:201000654222
指导老师:杨关
第一题
#include<iostream.h>
#include<string.h>
class CStudent
{
public:
CStudent(){}
CStudent(char *name,char *birthplace,int no,int age,double grade) {
strcpy(sname,name);
strcpy(sbirthplace,birthplace);
sno=no;
sage=age;
sgrade=grade;
}
CStudent(CStudent &s);
double operator+(CStudent sg);
void display()
{
cout<<"姓名:";cin>>sname;
cout<<"籍贯:";cin>>sbirthplace;
cout<<"学号:";cin>>sno;
cout<<"年龄:";cin>>sage;
cout<<"各科总成绩:";cin>>sgrade;
}
private:
char sname[20];
char sbirthplace[20];
int sno;
int sage;
double sgrade;
};
CStudent::CStudent(CStudent &s)
{
strcpy(sname,s.sname);
strcpy(sbirthplace,s.sbirthplace);
sno=s.sno;
sage=s.sage;
sgrade=s.sgrade;
}
double CStudent::operator +(CStudent sg)
{
return sgrade+sg.sgrade;
}
void main()
{
double as;
CStudent sg1;
sg1.display();
CStudent sg2;
sg2.display();
as=sg1+sg2;
cout<<"两个学生的总成绩为:"<<as<<endl;
}
运行结果:
第二题
#include<iostream.h>
#include<math.h>
class Triangle
{
public:
Triangle(){}
double Area;
Triangle(int a,int b,int c)
{
double l;
l=(a+b+c)/2.0;
Area=sqrt(l*(l-a)*(l-b)*(l-c)); //海伦公式}
~Triangle(){}
friend double operator+(Triangle A1,Triangle A2) //双目
{return A1.Area+A2.Area;}
void Display()
{
cout<<"Area="<<Area<<endl;
}
private:
int a,b,c;
};
void main()
{
double s;
Triangle A1(3,4,5),A2(8,6,10);
cout<<"三角形1"<<endl;
A1.Display();
cout<<"三角形2"<<endl;
A2.Display();
s=A1+A2;
cout<<"两个三角形的总面积为"<<s<<endl; }
运行结果:
第三题
#include<iostream.h>
class BaseClass
{
public:
BaseClass()
{
cout<<"BaseClass构造函数被执行."<<endl;
}
virtual ~BaseClass()
{
cout<<"虚析构函数被执行."<<endl;
}
virtual void fn1(){}
void fn2();
};
class DerivedClass:public BaseClass
{
public:
DerivedClass()
{
cout<<"DerivedClass构造函数被执行."<<endl;
}
~DerivedClass()
{
cout<<"派生类析构函数被执行."<<endl;
}
void fn1(){cout<<"调用fn1函数."<<endl;}
void fn2(){cout<<"调用fn2函数."<<endl;}
}
main()
{
DerivedClass a;
DerivedClass *m;
BaseClass *n;
m= &a;
m->fn1();
m->fn2();
n= &a;
n->fn1();
}
运行结果:。