Noe


私信TA

用户名:Noe

访问量:925

签 名:

然后便去远方

等  级
排  名 31359
经  验 438
参赛次数 0
文章发表 4
年  龄 19
在职情况 学生
学  校 中北大学
专  业 计算机类

  自我简介:

TA的其他文章

实验题目1

【构造函数的重载】分析如下程序,给出运行输出结果。(请先分析,之后上机运行。)

#include

using namespace std;

class Date

 {public:

   Date(int,int,int);

   Date(int,int);

   Date(int);

   Date();

   void display();

  private:

   int month;

   int day;

   int year;

 };

 

Date::Date(int m,int d,int y):month(m),day(d),year(y)

 { }

 

Date::Date(int m,int d):month(m),day(d)

 {year=2005;}

 

Date::Date(int m):month(m)

 {day=1;

  year=2005;

 }

 

Date::Date()

 {month=1;

  day=1;

  year=2005;

 }

 

void Date::display()

 {cout<<month<<"/"<<day<<"/"<<year<<endl;}

 

int main()

{

 Date d1(10,13,2005);

 Date d2(12,30);

 Date d3(10);

 Date d4;

 d1.display();

 d2.display();

 d3.display();

 d4.display();

 return 0;

 }





图片1.png

实验题目2

【带默认参数的构造函数】上机运行如下程序有错误,现要得到如下输出结果,请修改程序。(注意:请保持程序中的蓝色一行不动。)

要得到的输出结果如下:

10/13/2005

12/13/2005

10/1/2005

1/1/2005

#include

using namespace std;

class Date

 {public:

   Date(int=1,int=1,int=2005);//修改程序时,保留本行不动!!!

   Date(int,int);

   Date(int);

   Date();

   void display();

  private:

   int month;

   int day;

   int year;

 };

 

Date::Date(int m,int d,int y):month(m),day(d),year(y)

 { }

 

Date::Date(int m,int d):month(m),day(d)

 {year=2005;}

 

Date::Date(int m):month(m)

 {day=1;

  year=2005;

 }

 

Date::Date()

 {month=1;

  day=1;

  year=2005;

 }

 

void Date::display()

 {cout<<month<<"/"<<day<<"/"<<year<<endl;}

 

int main()

{

 Date d1(10,13,2005);

 Date d2(12,30);

 Date d3(10);

 Date d4;

 d1.display();

 d2.display();

 d3.display();

 d4.display();

 return 0;

 }

此处错误由构造函数定义的歧义所引起 实际上只需载用一个带默认参数的构造函数进行初始化即可

#include

using namespace std;

class Date

 {public:

   Date(int=1,int=1,int=2005);//修改程序时,保留本行不动!!!

   void display();

  private:

   int month;

   int day;

   int year;

 };

 

Date::Date(int m,int d,int y):month(m),day(d),year(y)

 { }

 

 

 

void Date::display()

 {cout<<month<<"/"<<day<<"/"<<year<<endl;}

 

int main()

{

 Date d1(10,13,2005);

 Date d2(12,13,2005);

 Date d3(10,1,2005);

 Date d4(1,1,2005);

 d1.display();

 d2.display();

 d3.display();

 d4.display();

 return 0;

 }

实验题目3

【用参数初始化表对数据成员初始化】阅读下面程序,分析其执行过程,写出输出结果(先分析再上机验证);将构造函数改写为“用参数初始化表对数据成员初始化”的实现形式。

#include

using namespace std;

class Student

 {public:

   Student(int n,float s)

   {

num=n;

score=s;

}

   void change(int n,float s) {num=n;score=s;}

   void display(){cout<<num<<" "<<score<<endl;}

  private:

   int num;

   float score;

 };

 

int main()

{Student stud(101,78.5);

 stud.display();

 stud.change(101,80.5);

 stud.display();

 return 0;

}   

图片2.png

#include

using namespace std;

class Student

 {public:

   Student(int x,float y):num(x),score(y){}//定义一个有参的构造函数并使用初始化表队数据成员初始化

 

   void change(int n,float s) {num=n;score=s;}

   void display(){cout<<num<<" "<<score<<endl;}

  private:

   int num;

   float score;

 };

 

int main()

{Student stud(101,78.5);

 stud.display();

 stud.change(101,80.5);

 stud.display();

 return 0;

}

 

实验题目4

【对象数组和对象指针的使用】建立一个对象数组,内放5个学生数据(学号(字符串类型)、成绩(整型)),用指针指向数组首元素,输出第1,3,5个学生的数据。

   

程序源代码


   

#include <iostream>


using namespace std;


class Student


{


public:


Student(int n=0, float s=0): num(n), score(s){}


void input();


void display();


private:


int num;


float score;


};


void Student::input()


{


cin>>num>>score;


}


void Student::display()


{


cout<<num<<' '<<score<<endl;


}


int main()


{


Student stu[5], *p;


int i;


for (i=0; i<5; i++){


cout<<"Pleas enter No."<<i+1<<" student info: ";


stu[i].input();


}


for (p=stu; p<stu+5; p+=2){


p->display();


cout<<endl;


}


system("pause");


return 0;


}

6NP3[C]_94KT]_F8GATE%XB.png

 

0.0分

1 人评分

  评论区