- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】C语言程序设计实验答案_数据的共享与保护
实验05 数据的共享与保护(2学时)
(第5章 数据的共享与保护)
一、实验目的
(1) 观察程序运行中变量的作用域、生存期和可见性。
(2) 学习类的静态成员的使用。
(3) 学习多文件结构在C++程序中的使用。
二、实验任务
5_1 运行下面的程序,观察变量x、y的值。
//lab5_1.cpp
#include iostream
using namespace std;
void fn1();
int x=1,y=2;
int main(){
cout开始...endl;
coutx=xendl;
couty=yendl;
cout在main()中求x和y的值...endl;
int x=10,y=20;
coutx=xendl;
couty=yendl;
cout进入函数fn1()...endl;
fn1();
cout返回main()endl;
coutx=xendl;
couty=yendl;
return 0;
}
void fn1(){
int y=200;
coutx=xendl;
couty=yendl;
} 5_2 实现客户机(CLIENT)类。
声明字符型静态数据成员ServerName,保存其服务器名称;声明整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中声明类,在文件client.cpp中实现,在文件lab5_2.cpp中测试这个类,观察相应的成员变量取值的变化情况。
三、实验步骤
1.(验证)运行lab5_1.cpp程序,观察程序输出。
全局变量的作用域为文件作用域,在整个程序运行期间有效,但如果在局部模块中声明了同名的变量,则在局部模块中,可见的是局部变量,此时,全局变量不可见;
而局部变量的生存期只限于相应的程序模块中,离开相应的程序模块,局部变量x、y就不再存在,此时同名的全局变量重新可见。
程序名:lab5_1.cpp。
★ 程序的运行结果:
2.(编程)实现客户机(CLIENT)类。
新建一个空的项目lab5_2,添加头文件client.h,在其中声明类CLIENT,注意使用编译预处理命令;再添加源程序文件client.cpp,在其中实现CLIENT类,注意静态成员变量的使用方法;再添加文件lab5_2.cpp,在其中定义main()函数,测试CLIENT类,观察 相应的成员变量取值的变化情况。
提示:
访问一台服务器的客户总数。
静态成员为类的属性,为所有的类的对象共同拥有。
再定义两个静态成员函数,分别显示服务器名和客户总数。
构造函数用于增加一个客户,析构函数用于减少一个客户。
定义一个对象,再定义第二个对象,然后减少一个对象。
参考程序输出结果:
程序及运行结果:
(1) 类声明头文件client.h
#ifndef CLIENT_H
#define CLIENT_H
//其中的静态成员为类的属性,为所有的类的对象共同拥有
class client{
public:
client();
~client();
static void ChangeServerName(char ss);//改变服务器名称
static void showServerName();
static void showClientNum();
private:
static char ServerName;//保存服务器名,引用性说明
static int ClientNum;//记录已定义的客户(即对象)数量,引用性说明
};
#endif (2) 类实现程序文件client.cpp
//client.cpp
#include iostream
#include client.h
using namespace std;
client::client(){ ClientNum++; }//增加一个对象(客户)
client::~client(){ ClientNum--; }//减少一个对象(客户)
void client::ChangeServerName(char sn){ ServerName=sn; }//无static
void client::showServerName(){ cout服务器名:ServerNameendl; }
void client::showClientNum(){ cout客户总数: ClientNum
您可能关注的文档
- 【2017年整理】7 综合布线系统.ppt
- 【2017年整理】7#建筑物垂直度.doc
- 【2017年整理】7#楼技术交底.doc
- 【2017年整理】6项目六 汽车总装与调试.ppt
- 【2017年整理】7#楼钢丝网保温板施工方案.doc
- 【2017年整理】7 课程设计说明书.doc
- 【2017年整理】6高中地理湘教版必修1地球表面形态教案.doc
- 【2017年整理】7 建筑屋面分部工程.ppt
- 【2017年整理】6菌类植物药物植物学.ppt
- 【2017年整理】7.1信息资源管理概述.ppt
- 2023-2024学年江苏省南京一中九年级(上)月考化学试卷(10月份).doc
- 回归课本应用文写作专项任务单(必修第一_三册)-2024届高三英语一轮复习牛津译林版(2020).docx
- 2023-2024学年江苏省南京市鼓楼区金陵中学仙林分校九年级(上)月考化学试卷(10月份).doc
- 2025届长沙一中高三第一次月考数学试卷.docx
- Unit+1错题2024-2025学年牛津译林版七年级英语上册.docx
- 立体几何中的建系求角题型难点分类练习解析版.docx
- 立体几何中的建系求角题型难点分类练习原卷版.docx
- 浙江杭州市第二中学+高考考纲3500词汇练习(语法填空练习)(下).docx
- 江苏省南京二十九中学2023-2024学年九年级上学期月考物理试卷(10月份).docx
- 牛津译林版八上第一次月考考点讲解(教师版).pdf
文档评论(0)