1、淮北师范大学实验报告 姓名 江 学号 20141204027 实验日期 预习 (满分20分) 报告 (满分30分) 成绩 院别 计算机 年级 2014 实验场地 A405 实验课程名称 面向对象程序设计实验 实验项目名称 类和对象的定义与使用 对于每一个实验项目,实验报告(含预习)一般应包含以下内容:第一部分—-预习后的书面汇报。其主要内容应包含:*1、实验目的;*2、实验内容.第二部分——实验结果的书面汇报.其主要内容应包含: *3、实验源代码;*4、实验结果及分析(含实验测试输入数据,试验运行结果截图,用简洁的语言总结实验,汇报是否
2、达到实验目的);*5、实验体会、问题讨论(谈体会或感想、提出建议或意见、讨论与实验有关的且自己感兴趣的问题);6、回答课后思考题(按指导教师的要求)。 1、实验目的 (1)掌握类与对象的定义; (2)掌握构造函数和析构函数的实现方法; (3)掌握静态成员函数和友元函数的使用方法; (4)掌握类对象作为成员的使用方法。 2、实验内容 (1)声明一个CPU类,在该类中包括数据成员rank(等级)、frequency(频率)、voltage(电压)。其中,rank为字符型,可以取P1、P2等,frequency为整型(单位MHz),voltage为浮点型;还包括成员函数GetRan
3、k( )、GetFrequency( )、GetVoltage( )用来获取等级、频率、电压的值.SetRank( )、SetFrequency( )、SetVoltage( )用来设置等级、频率、电压的值。Run( )、Stop( )中Run( )要求输出“CPU开始运行!”,Stop( )要求输出“CPU停止运行!”。构造函数需要输出“构造一个CPU”,析构函数需要输出“析构一个CPU"。观察构造函数和析构函数的调用顺序。编写主函数使用这个类,实现对CPU数据的赋值和输出。 (2)声明一个Student类,在该类中包括一个数据成员score(分数)、两个静态数据成员total_score
4、总分)和count(学生人数);还包括一个成员函数account( )用于设置分数、累计学生的成绩之和、累计学生人数,一个静态成员函数sum( )用于返回学生的成绩之和,另一个静态成员函数average( )用于求全班成绩的平均值。在main( )函数中,输入某班同学的成绩,并调用上述函数求出全班学生的成绩之和和平均值。 (3)声明一个Car类,在该类中包括数据成员color(颜色)、speed(速度)和成员函数Input( )用于输入color和speed,利用友元函数输出Car类对象数据。 (4)声明日期Date类,包含数据成员year(年)、month(月)、day(日);人员Pe
5、rson类,包含数据成员id(编号)、name(姓名)、sex(性别)、birthday(出生日期),其中birthday定义为Date类内嵌子对象。用成员函数实现对人员信息的录入和显示 3、实验源代码 (1)#include 〈iostream.h> enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU {private: CPU_Rank rank; int frequency; float voltage; public: CPU (CPU_Rank r, int f, float v)
6、 { rank = r; frequency = f; voltage = v; cout << "构造了一个CPU!” 〈< endl; } ~CPU () { cout 〈< ”析构了一个CPU!" <〈 endl; } CPU_Rank GetRank() { return rank; } int GetFrequency() { return frequency; } float GetVoltage() { return voltage; } void SetRank(CPU
7、Rank r) { rank = r; } void SetFrequency(int f) { frequency = f; } void SetVoltage(float v) { voltage = v; } void Run() {cout << "CPU开始运行!" 〈< endl; } void Stop() {cout 〈〈 ”CPU停止运行!” 〈〈 endl; } }; void main() { CPU a(P6,300,2。8); a.Run(); a。Stop(
8、); } /** * */ /*定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。 (2) #include〈iostream> using namespace std; class Student{ private: float score; static int count; static float total_score; public: void account(float
9、score1) {score=score1; ++count; total_score=total_score+score; } static float sum() {return total_score; } static float average() { return total_score/count; } }; int Student:: count=0; float Student:: total_score=0。0; int main() { Student s1,s2; s1.accou
10、nt(99);
cout<
11、
char color[10];
public:
void input( )
{
cout〈<"Enter the color : ";
cin〉〉color;
cout〈<"Enter the speed : ";
cin>>speed;
}
};
void display(Car c)
{
cout<<"color: "< 12、input( );
display(mine);
}
(4)
#include 〈iostream〉
#include 〈string>
using namespace std;
class Date
{
private: int year;
int month;
int day;
public: Date() {}
Date(int y,int m,int d)
{
year=y; month=m; day=d;
}
void set()
{
cin>>year〉>month〉>day;
}
void d 13、isplay()
{
cout< 14、m=p.num;
sex=p。sex;
birthday=p.birthday;
strcpy(ID,p。ID);
}
void input()
{
cout<〈"录入数据:"〈〈endl;
cout〈〈”编号:";
cin〉〉num;
cout<<"性别(m/f):";
cin>〉sex;cout<<”生日:";
birthday。set();
cout<〈"身份证号:”;
cin>〉ID;
ID[18]='\0'; cout〈〈endl;
}
void output()
{
cout<〈”编 15、号:"<〈num〈〈endl; cout〈<"性别:"〈〈sex<〈endl;
cout〈<"生日:";
birthday。display();
cout〈






