实验二

更新时间:2024-04-19 18:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 C++基础 实验目的

类定义;类对象使用;类成员变量、成员函数的定义和使用;观察类的组合使用;理解类的作用域;理解类的声明;理解类中 private 和 public 权限;掌握拷贝构造函数的定义和使用;掌握构造函数的重载;掌握析构函数的定义和使用;理解构造函数和析构函数的执行过程

实验过程设计.1.// 试设计一个复数类,该类有实部和虚部两个成员数据,成员数据采用私有访问权限,同时该

类有两个共有成员函数,//分别用来设置成员数据和输出成员数据,//在主函数中分别采用对象方式,指针方式和引用方式来调用该类的公有函数设置和输出成员数据。 #include #include using namespace std; class Complex{ public: { } }; void main() {

Complex m; m.Init(3,1);

cout<<\p->Init(3,1);

cout<<\q.Init(3,1);

cout<<\void Init(double x,double y ) a=x; b=y;

double Real(){return a;}; double Image(){return b;}; int a; int b;

private:

Complex *p=&m;

Complex &q=m;

}

/*2 .设计实现一个 CPoint 类,满足以下要求:

a . 该类包含两个整型成员变量 x (横坐标)和 y (纵坐标),以及一个输出函数 Print() 用来输出横坐标和纵坐标,要求不可以在类的外部直接访问成员变量;

b .可以采用没有参数的构造函数初始化对象,此时的成员变量采用默认值 0 ;

c .可以采用直接输入参数的方式来初始化该类的成员变量;

d .可以采用其它的 CPoint 对象来初始化该类的成员变量; e .设计一个主函数来测试以上功能。*/ #include #include using namespace std; class CPoint{ public:

void print(); CPoint(){x=0;y=0;} point(int x1,int y1); // int GetX() {return x;} // int GetY() {return y;} private: int x; int y; };

void CPoint::print() { cout<

CPoint::point(int x1,int y1) { x=x1; y=y1; }

void main() { CPoint p; CPoint(); p.print(); p.point(1,2); p.print(); // p.GetX(); // p.GetX(); }

3 .设计一个 CStudent (学生)类,并使 CStudent 类具有以下特点:

a .该类具有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩; b .学生全部信息由键盘输入,以提高程序的适应性;

c .通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无须修改仍可以求取平均成绩; d .输出学生的基本信息、各科成绩与平均成绩; e .学生对象的定义采用对象数组实现; f .统计不及格学生人数。 #include #include

#include #define N 3 #define M 3 class CStudent { public:

void setstudent(char *name,char *sn,float score[N]); void showstudent();

private: };

void CStudent :: setstudent(char *name,char *sn,float score[N]) { }

void CStudent ::showstudent() { }

void main()

int i;

cout<

cout<float Sum=0.0; int count=0; strcpy(Sname,name); strcpy(Sno,sn); for(i=0;i

Score[i]=score[i]; count++; }

for(i=0;i<3;i++) { }

Avg=Sum/count;

Sum=Sum+Score[i]; char Sname[10]; char Sno[8]; float Score[3]; float Avg; float Sum; int count;

{

int i,j,k=0;

char name[10],no[8]; float score[N]; for(j=1;j<=M;j++) {

cout<<\ \

cin>>name;

cout<<\ \cin>>no;

cout<<\ \for(i=0;i

cin>>score[i];

CStudent S1;

cout<<\

cout<

S1.setstudent(name,no,score);

S1.showstudent();

if(score[i]<60)

}

k++;

cout<<\不及格人数:\}

4 .设计一个用于人事管理的员工类(employee),包含的成员变量有:编号、性别、出生日期、身份证号码等,成员函数有:构造函数、析构函数、拷贝构造函数、员工基本信息输出函数等。其中,编号用字符数组,身份证号码用字符指针,出生日期为日期类的对象

#include #include #include #define N 3 #define M 3 class CStudent { public: };

void CStudent :: setstudent(char *name,char *sn,float score[N]) { }

void CStudent ::showstudent() { }

int i;

cout<

cout<float Sum=0.0; int count=0; strcpy(Sname,name); strcpy(Sno,sn); for(i=0;i

Score[i]=score[i]; count++; }

for(i=0;i<3;i++) { }

Avg=Sum/count;

Sum=Sum+Score[i];

void setstudent(char *name,char *sn,float score[N]); void showstudent(); char Sname[10]; char Sno[8]; float Score[3]; float Avg; float Sum; int count;

private:

void main() { }

int i,j,k=0;

char name[10],no[8]; float score[N]; for(j=1;j<=M;j++) {

cin>>name;

cout<<\ \cin>>no;

cout<<\ \for(i=0;i

cin>>score[i]; CStudent S1;

cout<<\

cout<

k++;

cout<<\ \

S1.setstudent(name,no,score); if(score[i]<60)

cout<<\不及格人数:\

(二)、程序理解:

第一题:一个复数的实部和虚部是私有的数据成员,外部函数不能访问它们,通过公有的成员函数访问私有的数据成员。在一个类里面,它的通过指向对象的指针和引用访问对象中的成员。

第二题:构造函数和类名相同,但构造函数不能有返回值,且构造函数的形参可以是任何类型的,采用没有参数的构造函数初始化对象时,在定义构造函数时,直接赋值为0;采用其它的 CPoint 对象来初始化该类的成员变量,可以访问私有数据成员。

第三题;在该题中,存在静态数据成员,使该类的所有对象即所有的学生都可以访问该静态成员,从而实现了同一个类的不同对象之间的数据共享。

第四题: 在该题中,一个类的类型可以用作另一个类成员的类型,构造函数可以实现重载、析构函数不能实现重载,但析构函数和构造函数都不能有返回值,所以一个类中只能有一个析构函数,可以有多个构造函数;拷贝构造函数实现把一个已存在的对象初始化另一个对象。

本文来源:https://www.bwwdw.com/article/ax2p.html

Top