当前位置:文档之家› 大作业实验报告格式

大作业实验报告格式

实验报告
实验课程:C++面向对象程序设计
学生姓名:杨华生
学号:8000110033
专业班级:软工101班
2011年 12月 16 日
实验类型:□验证■综合■设计□创新实验成绩:
一、实验项目名称:期末大作业—综合实验
二、实验目的:
1. 掌握类与对象的基本概念。

2. 掌握类的继承与派生的基本概念。

3. 掌握多层派生时的构造函数的编写。

4. 掌握有子对象的派生类的构造函数的编写。

5. 掌握类的友元函数的编写。

三、实验基本原理:编程实现类与对象、类的继承与派生的各种操作。

四、主要仪器设备及耗材:IBM-PC机一台。

五、实验步骤:1.编写程序;2.调试程序;3.运行程序。

六、实验数据及处理结果
1. 程序如下:
// 在程序中,每个函数必须有功能注释,关键的语句有适当的注释。

程序结构清晰,不同层次的语句采用缩进形式。

#include <iostream>
#include <string >
using namespace std;
class Person
{
public:
Person(string nam,char s) //构造函数
{
name=nam;
sex=s;
}
void display() //定义成员函数
{
cout<<"name : "<<name<<endl<<"sex : "<<sex<<endl;
}
private:
string name;
char sex;
};
class BirthDate
{public :
BirthDate(int y,int m,int d):year(y),month(m),day(d){} //BirthDate类的声明void display() //定义成员函数{ cout<<"birthday: "<< year <<"-"
<< month <<"-"<< day << endl; }
private:
int year;
int month;
int day;
};
class Student: public Person //公有继承Person 类
{
public:
Student(string nam,char s,float sc,BirthDate b):Person(nam, s),birthday(b) //类的继承与组合
{score=sc;}
void display() // 定义成员函数
{
Person::display();
birthday.display();
cout<<"score : "<<score<<endl;
}
void total( ) //定义非静态成员函数
{sum+=score; //累加总分
count++; //累计已统计的人数
}
static float average();
friend void score_max(Student *stu); //声明友元函数
private:
BirthDate birthday; //把类的对象作为数据成员(类的组合)
float score;
static float sum; //静态数据成员
static int count; //静态数据成员
};
float Student::average( ) //定义静态成员函数
{return(sum/count);
}
float Student::sum=0; //对静态数据成员初始化
int Student::count=0; //对静态数据成员初始化
void score_max(Student *stu) //定义友元函数,用指向对象的指针作参数
{float max_score=stu[0].score;
int k=0;
for(int i=1;i<3;i++)
if(stu[i].score>max_score) {max_score=stu[i].score;k=i;}
cout<<"the student with highest score is:"<<endl;
stu[k].display ();
}
int main() //主函数
{
BirthDate b1(1992,7,22); //定义3个类的对象
BirthDate b2(1992,8,23);
BirthDate b3(1992,9,24);
Student stu[3]={ //定义对象数组并初始化
Student("Jim Green",'f',78,b1),
Student("Gary Y oung",'m',82,b2),
Student("James Brown",'f',97,b3)
};
cout<<"All the Students' values are: "<<endl;
for(int i=0;i<3;i++) //调用3次total函数
{stu[i].total ();
stu[i].display( ); //输出3个学生的信息
cout<<endl;
}
cout<<"the average score of 3 students is: "<<Student::average( )<<endl; //调用静态成员函数输出平均分数
cout<<endl;
void score_max(Student* );
Student *p=&stu[0]; //指针指向对象组的首地址
score_max(p); //调用友元函数,输出分数最高学生的信息return 0;
}
2. 运行结果:
七、上机体会或对改进教学、实验的建议
八、参考资料:
谭浩强编著. C++程序设计. 清华大学出版社, 2004年6月第1版。

相关主题