实验八静态数据成员和静态函数成员
任务一:
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 <iostream.h>
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<<cunkuan<<endl;
}
void CK::modLiXi(double x) //更改年利率
{ ? }
//初始化静态变量为0,静态变量必须初始化
?;
//主函数:实例化两个对象,将年利率更改为3%,计算并显示存款人的实际存款。
void main()
{
CK saver1(2000.0),saver2(3000.0);//实例化两个对象
? //以类名来调用静态成员函数,将年利率设为3%
cout<<"年利率为 3%时"<<endl;
cout<<"一个月后甲的存款余额为: ¥";
saver1.calLiXi();
cout<<"一个月后乙的存款余额为: ¥";
saver2.calLiXi();
saver1.set(2000.0);saver2.set(3000.0);
cout<<"三个月后甲的存款余额为: ¥";
saver1.calLiXi(3);
cout<<"三个月后乙的存款余额为: ¥";
saver2.calLiXi(3);
cout<<"-------------------------------------------"<<endl;
saver1.set(2000.0);saver2.set(3000.0);
? //以对象名来调用静态成员函数,将年利率设为6%
cout<<"年利率为 6%时"<<endl;
cout<<"一个月后甲的存款余额为: ¥";
saver1.calLiXi();
cout<<"一个月后乙的存款余额为: ¥";
saver2.calLiXi();
saver1.set(2000.0);saver2.set(3000.0);
cout<<"三个月后甲的存款余额为: ¥";
saver1.calLiXi(3);
cout<<"三个月后乙的存款余额为: ¥";
saver2.calLiXi(3);
}。