- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
年级
班号
组号
无
?学号
专业
?姓名
?
实验名称
?实验1类和对象
实验室
实
验
目
的
或
要
求
1.掌握类的定义和使用方法,掌握类对象的声明和使用方法。
2.掌握对象的初始化和赋值的方法。
3.了解成员函数的特性、友元。
4.静态成员的使用方法。
5.理解和掌握this指针的用法。
6.理解和掌握const类型数据的使用。
实
验
原
理
(
算
法
流
程
)
?1、实验内容
定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。其中姓名定义为长度为18的字符数组,其它数据成员类型为整型,数学总成绩、英语总成绩和人数为静态数据成员,函数成员包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造函数由已知参数姓名(nm)、学号(nu)、数学成绩(math)和英语成绩(english)构造对象,显示基本数据函数用于显示学生的姓名、学号、数学成绩、英语成绩,显示静态数据函数为静态成员函数,用于显示人数,数学总成绩,英语总成绩;要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个学生对象,分别显示学生基本信息,以及显示学生人数,数学总成绩与英语总成绩。
2、类的设计及说明
#includeiostream
#includestring
usingnamespacestd;
classStudent
{
private:
stringname;//表示学生姓名
intnum,m_score,e_score;//表示学生学号,数学成绩,英语成绩
staticinttotalmscore,totalescore,totalnum;//表示总数学成绩,总英语成绩,总人数
public:
Student(stringnm,intnumber,intmathscore,intenglishscore);//构造函数
voidshow();//输出姓名、学号、数学成绩、英语成绩
staticvoidprintf();//输出总数学成绩、总英语成绩、总人数
};
组
内
分
工
(
可
选
)
无
实
验
结
果
分
析
及
心
得
体
会
输出两个学生数据:姓名为张三,学号数学成绩为56,英语成绩为89;姓名为李四,学号数学成绩为78,英语成绩为97;数学总成绩为134,英语总成绩为186,总人数为2.
心得体会:
1.掌握类的定义和使用方法,类包含数据成员和成员函数。掌握类对象的声明和使用方法。
2.掌握对象的初始化和赋值的方法,利用构造函数创建临时对象进行赋值,使用已有对象给对象复制,或者列表初始化。
3.了解成员函数的特性、友元。
4.静态成员的使用方法:static成员不属于对象,是类的共享成员;static数据成员要在类外初始化,静态成员变量必须在类外初始化,静态成员常量在类中,类外初始化;
非static成员函数也可以操作静态数据成员;static成员函数属于类,不属于某个对象,既可以通过类名直接调用,也可以通过对象名进行调用,而this指的是当前的对象,静态成员函数不拥有this指针;static成员函数可以访问static成员变量。
5.要清楚类需要哪些数据成员,成员函数需要的功能。
6.理解和掌握this指针的用法。
源代码如下:
#includeiostream
#includestring
usingnamespacestd;
classStudent
{
private:
stringname;
intnum,m_score,e_score;
staticinttotalmscore,totalescore,totalnum;
public:
Student(stringnm,intnumber,intmathscore,intenglishscore);
voidshow();
staticvoidprintf();
};
Student::Student(stringnm,intnumber,intmathscore,intenglishscore)
{
name=nm;
num=number;
m_score=mathscore;
e_
文档评论(0)