南昌大学实验报告学生姓名:学号:专业班级:管理科学与工程类121班实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验4C++程序的结构一、实验目的1、观察程序运行中变量的作用域、生存期和可见性。2、学习类的静态成员的使用。3、学习多文件结构在程序中的使用。二、实验任务1、运行下面的程序,观察变量x、y的值。//lab5_1.cpp#includeiostreamusingnamespacestd;voidfnl();intx=1,y=2;intmain(){coutBegin...endl;coutx=xendl;couty=yendl;coutEvaluatexandyinmain()...endl;intx=10,y=20;coutx=xendl;couty=yendl;coutStepintofnl()...endl;fnl();coutx=xendl;couty=yendl;return0;}voidfnl(){inty=200;coutx=xendl;couty=yendl;}一.实现客户机(CLIENT)类。声明字符型静态数据成员ServerName,保存其服务器名称;声明整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中声明类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。usingnamespacestd;classClient{private:staticcharSeverName[10];staticintClientnum;public:usingnamespacestd;classClient{private:staticcharSeverName[10];staticintClientnum;public:Client(){coutClient构造函数被调用endl;Clientnum++;}~Client(){coutClient析构函数被调用endl;Clientnum--;}staticvoidChangeServername(){cout请输入服务器的名字:endl;cinSeverName;}voidshow();};intClient::Clientnum=0;charClient::SeverName[10]=abcd;//Client.cppvoidClient::show(){cout该用户机的服务器端名字是:endl;coutSeverNameendl;cout用户数量有:endl;coutClientnumendl;}//Client.exevoidmain(){Client::ChangeServername();Clienta;a.show();Client::ChangeServername();Clientb;b.show();Client::ChangeServername();Clientc;c.show();}三、实验步骤1、运行lab5_1程序,观察程序输出。全局变量的作用域为文件作用域,在整个程序运行期间有效,但如果在局部模块中声明了同名的变量,则在局部模块中,可见的是局部变量,此时,全局变量不可见;而局部变量的生存期只限于相应的程序模块中,离开相应的程序模块,局部变量x、y就不再存在,此时同名的全局变量重新可见。2、新建一个空的项目lab5_2,添加头文件client.h,在其中声明类CLIENT,注意使用编译预处理命令;再添加源程序client.cpp,在其中实现CLIENT类,注意静态成员变量的使用方法再添加文件lab5_2.cpp,在其中定义main()函数,测试CLIENTl类,观察相应的成员变量取值的变化情况。四、运行结果(1)(2)五、实验心得与讨论此次试验让我了解了程序的结构与模块间的关系,数据共享的相关内容。并学会验证了每一个语法规定,并适当采用反证的方法便于理解以及加深对其的印象。