实验编号
及实验名称
实验
8
静态成员练习:学生成绩统计
系
别
计科系
姓
名
学
号
班
级
实验地点
实验日期
实验时数
2
指导教师
同组其他成员
成
绩
一、
实验目的及要求
1.
通过在
Student
中引入静态数据成员来记录学生人数、
分数和、
分数平方和及最高分得主,
学习静
态数据成员的意义和定义方法。
2.
通过将学生人数、分数和、分数平方和及最高分得主的计算从主函数移到成员函数中实现,学习
类属性数据的访问和计算方法。
3.
通过在主函数中调用静态成员函数来实现平均分数、标准偏差和最高分得主资料的计算和输出,
学习静态成员函数的调用方法。
二、
实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
硬件设备:联网的个人计算机
操作系统:
Windows 2000
编译系统:
Visual C++ 6.0
三、
实验内容及步骤(包含简要的实验步骤流程)
1.
静态成员的意义
略
2.
静态成员的定义和使用
参考课件
5.4.7
“静态成员应用实例”,在实验
7
建立的
Student
类,以及使用该类的主函数的基础
之上(须保留实验
7
原有的数据成员和成员函数),通过以下步骤,来实现对静态成员的使用:
⑴
在
Student
类中声明
4
个私有静态数据成员
counter
、
sum
、
sumsqr
和
max
;
⑵
在
Student
类的所有构造函数以及拷贝构造函数的函数体中增加语句
counter++;
⑶
增加公有(非静态)成员函数(外联)
SumMark
和
SaveMax
;
⑷
增加公有静态成员函数(内联)
Initialize
、
GetCounter
、
GetSum
、
GetSumsqr
和
GetMax
;
⑸
在类定义和函数定义之外建立各个静态数据成员的实例;
⑹
在主函数中,删除
counter
、
sum
、
sumsqr
、
max
几个局部变量,以及对这几个变量求值的所有算
法,增加如下包含有静态成员的新类的算法:
①
在
while
循环之前调用初始化函数
Initialize
;
②
把调用构造函数创建
Student
对象的语句从循环之外移到循环体内、读语句之后,并在调用
CalcMark
之后紧接着调用
SumMark
和
SaveMax
;
③
在循环结束、程序的最后,通过类名
::
调用静态成员函数
GetCounter
、
GetSum
、
GetSumsqr
和
GetMax
,得到学生人数、分数总和及分数平方和,并据此计算出平均分数和标准偏差,与学生人数、最
高分得主资料一道输出到屏幕上。