实验八 静态数据成员和静态函数成员
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八静态数据成员和静态函数成员
任务一:
1、了解多文件工程
本次实验需要创建一个工程,此工程由三个文件组成
1)头文件client.h ——类的声明
2)源文件client.cpp——成员函数的定义
3)源文件test.cpp——main()函数的定义
2、了解CLIENT类
本次实验的主角是CLIENT(客户机)类。在实际生活中,计算机网络的应用模式为client/server(客户机/服务器)模式。情况很简单,即多台客户机与一台服务器连接,服务器为客户机提供服务。
3、实验任务
1)阅读程序代码,仔细分析CLIENT类的各数据成员及函数成员,写出分析结果
2)创建多文件工程,编译并运行
3)为main()函数的各条语句增加注释
4)将数据成员ServerName改为非静态,其它类成员的静态属性不变。
修改程序代码,使客户机a连接到另一台服务器M。(b仍与N连接)
任务二:
生成一个储蓄类CK。用静态数据成员表示每个存款人的年利率lixi。类的每个对象包含一个私有数据成员cunkuan,表示当前存款额。提供一个calLiXi()成员函数,计算利息,用cunkuan乘以lixi除以12取得月息,不计复利,并将这个月息加进cunkuan中。提供设置存款额函数set()。提供一个静态成员函数modLiXi(),可以将利率lixi修改为新值。
实例化两个不同的CK对象saver1和saver2,结余分别为2000.0和3000.0。将lixi设置为3%,计算一个月后和3个月后每个存款人的结余并打印新的结果。
首先定义储蓄类CK,它包含一个私有数据成员cunkuan,数据类型为double,一个静态数据成员年利率lixi,数据类型也为double;包含一个成员函数calLiXi()和一个静态成员函数modLiXi(),其中modLiXi()应含有一个表示要更改的年利率的新值的参数。
完善程序:
#include
class CK{
double cunkuan;
public:
? //定义静态数据成员lixi
CK(double c){?}//构造函数
void set(double x){?}//设置存款额
? //定义静态成员函数modLiXi()
void calLiXi(int m=1);
};
//编写CK类的成员函数,并初始化静态数据成员。
void CK::calLiXi(int m)
{
double x;
x=?; //计算月利息
?; //将利息加入到存款中
cout< } void CK::modLiXi(double x) //更改年利率 { ? } //初始化静态变量为0,静态变量必须初始化 ?; //主函数:实例化两个对象,将年利率更改为3%,计算并显示存款人的实际存款。void main() { CK saver1(2000.0),saver2(3000.0);//实例化两个对象 ? //以类名来调用静态成员函数,将年利率设为3% cout<<"年利率为 3%时"< cout<<"一个月后甲的存款余额为: ¥"; saver1.calLiXi(); cout<<"一个月后乙的存款余额为: ¥"; saver2.calLiXi(); saver1.set(2000.0);saver2.set(3000.0); cout<<"三个月后甲的存款余额为: ¥"; saver1.calLiXi(3); cout<<"三个月后乙的存款余额为: ¥"; saver2.calLiXi(3); cout<<"-------------------------------------------"< saver1.set(2000.0);saver2.set(3000.0); ? //以对象名来调用静态成员函数,将年利率设为6% cout<<"年利率为 6%时"< cout<<"一个月后甲的存款余额为: ¥"; saver1.calLiXi(); cout<<"一个月后乙的存款余额为: ¥"; saver2.calLiXi(); saver1.set(2000.0);saver2.set(3000.0); cout<<"三个月后甲的存款余额为: ¥"; saver1.calLiXi(3); cout<<"三个月后乙的存款余额为: ¥"; saver2.calLiXi(3); }