C++实验11.12
实验十一引用与复制构造函数
一.实验目的
1、掌握引用的概念及应用,掌握引用作为函数参数的方法。
2、学会编写与应用复制构造函数。
二.实验内容
1、范例:编写一个函数,其原型为:void Index(int a[], int n,int & sub),其功能是,在大小为n的数组a中,查找某个数sub,若找到,将其下标存放在sub中,若没找到,将-1存放在sub中,在主调函数中通过判断值来判断数组中是否有该数。在这里,sub是引用类型的参数,但起返回值的作用。
【要求】修改主程序连续查找数字的循环语句,使程序能在输入特定数字后退出循环。
【程序】
【输入】19
【输出】:
2、一个声明为返回引用的函数,既可以作为右值出现在赋值号的右边,也可以作为左值出现在赋值号的左边。下面是一个函数调用本身作为左值的例子。
【程序】
【输入】无
【输出】:
【注意】由于函数index()是返回引用的类型,所以该函数调用可以作为一个左值,
程序的表达式index(3)=16将16赋给左边的函数调用,由于该函数调用返回对array[3]的引用,所以可以将array[3]赋新值。该程序运行的结果将使得整型数组array中的各元素值变为:2,4,6,16,10。
3、为矩形类定义复制构造函数。矩形类见主教材的例4.2.
【程序】
【输入】:无
【输出】:
4、编程:将实验十中的分数类的分数类型参数改为引用,并添加复制构造函数。First,对集合类修改如下内容:
void Copy(set &);
bool Equal(set &);
void intersect(set &,set &);
ErrCode Union(set &,set &);
Bool Contain(set &);
复制构造函数为:
set::set(set &s){
num=s.num;
for(int i=0;i++;i elements[i]=s. elements[i]; } Second,对分数类修改如下内容: fraction add(fraction &); fraction sub(fraction &); fraction mul(fraction &); fraction div(fraction &); bool equal(fraction &); bool greaterThan9 fraction &); bool lessThan(fraction &); 构造函数如下: Fraction::fraction(fraction & f){ above=f.above;below=f.below; } 实验十二运算符重载 一、实验目的 1.掌握运算符重载为成员函数的方法 2.理解友元函数和友元类 3.掌握运算符重载为友元函数的方法 4.使用静态数据成员 二、实验内容 1.范例:为主教材例4.2的Rectangle类增加加减复合赋值函数和加、减运算符重载函数。加、减复合赋值函数用于固定长方形的左上角,对右上角的坐标进行加、减运算,使新矩形的长宽为原来两个矩形长宽之和或差。将加减复合赋值函数定义为成员函数,将两个矩形加减运算定义为友元函数。 【程序】: //rect.h //rect.cpp //Exp12_1.cpp 【输入】:无【输出】: 2.编程:修改上题,要求如下: (1)将加减运算重载为成员函数 (2)为矩形类再增加一个静态数据成员Counter,统计共产生了多少个矩形对象。为Counter添加定义、赋初值以及随程序运行而变化的代码,并在main()函数中将其输出。 【程序】: 【输入】:无 【输出】: 5.修改实验十题2中的分数类,将比较、加、减、乘、除改为重载的运算符 【程序】: 【输入】:无【输出】: 实验四telnet远程登录 一.实验目的 1.了解掌握远程登录 2.了解系统服务 3. 掌握TELNET应用 二.实验原理 Telnet是进行远程登录的标准协议和主要方式它为用户提供了在本地计算机上完成远程主机工作的能力。通过使用Telnet,Internet用户可以与全世界许多信息中心图书馆及其它信息资源联系。Telnet远程登录的使用主要有两种情况。第一种是用户在远程主祝上有自己的帐号(Account),即用户拥有注册的用户名和口令;第二种是许多Internet主机为用户提供了某种形式的公共Telnet信息资源,这种资源对于每一个Telnet用户都是开放的。Telnet是使用最为简单的Internet工具之一。 Telnet支持的命令有: c- 关闭关闭当前连接 d- 显示显示操作参数 o- 打开主机名[端口]连接到一个主机名(默认端口23) q- 退出退出telnet set- 设置设置选项(要列表,请键入\'set \') sen- 发送将字符串送到服务器 st - 状态打印状态信息 u- 解除设置解除设置选项(要列表,请键入\'unset’ \) h- 帮助打印帮助信息 三.实验内容及步骤 1.防火墙配置,点击开始->控制面板->window防火墙 2.配置防火墙例外选项卡,确保windows防火墙允许转发远程桌面数据包。 3.本地主机登录远程主机 点击开始->所有程序->附件->远程桌面连接。输入远程主机IP地址点击连接。 4.按照提示输入远程主机用户名及密码. 5.用户名密码认证成功即可登录远程主机 6. 远程主机设置。开启telnet服务。在我的电脑点击右键->管理->服务和应用程序->服务 C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序: //Lab4_1.cpp #include 《网络协议》实验报告 实验名称:远程登录协议(Telnet) 组别机器号:第六组主机B 班级:网络13-3班 学号:1320020306 姓名:黄腾飞 指导教师:陈虹 成绩: 一、实验目的 1. 掌握Telnet的工作过程 2. 理解Telnet选项协商 二、实验环境 实验拓扑结构(标注IP地址和MAC地址): IP地址:172.16.0.62 MAC地址:002511-53EB30 三、实验内容 1.运行Telnet命令,捕获数据进行分析 2.Telnet选项协商的过程 四、实验过程及结果分析 本实验主机A和B(主机C和D,主机E和F)一组进行。 1.运行Telnet命令,捕获数据进行分析 (1)主机B启动协议分析器进行数据捕获,并设置过滤条件(提取TELNET协议)。 (2)实验环境中的服务器(IP地址:172.16.1.100)上的telnet服务已经启动,使用服务器为本小组提供的帐号,其用户名:group1_1,密码:group1_1。 注:用户名、密码相同,生成规则是:groupx_y(x是组索引,y是主机索引,eg 第一组的主机C使用的用户名和密码为:group1_3)。 主机A在命令行提示符下运行: ①Telnet 172.16.1.100 ②在“Login:”提示符后输入用户名(group1_1)。在“Password:”提示符后输入密码(group1_1)。 ③在虚拟终端上进行一些简单的操作(可不作)。 ④按“CTRL+]”回到Telnet提示符下。 ⑤输入“quit”退出Telnet。 (3)察看主机B捕获的数据,分析Telnet的工作过程。 用户名和密码是一位一位传的。 2.Telnet选项协商的过程 (1)主机B启动协议分析器进行数据捕获,并设置过滤条件(提取Telnet协议)。(2)主机A首先要与Telnet服务器建立一个TCP连接。 电力电子虚拟仿真教学实验平台 实验室建设背景 目前的高等教育中,越来越强调对学生实践能力的培养,实验教育成为理工科教育的一个至关重要的环节。然而,随着各学科实验项目和学生人数的增多,传统的电气实验室和实验仪器数量很难满足学生的需求,在教学和学生使用上的不便之处也慢慢凸现出来。如何解决传统实验教学资源分配不足、实验方式过于刻板、实验器材维护费时费力、实验内容固定难以拓展等问题,是目前新工科建设、课程改革内容中一个讨论的热点。 在对创新型实验建设的需求日益明确之际,仿真实验教学的概念开始成为学校关注的重点。仿真教学实验是一种基于软件技术构建的虚拟实验教学系统,是现有各种教学实验室的数字化和虚拟化,为开设各种专业实验课程提供了全新的教学与科研环境。因此建设仿真实验室可以与实物实验室互补,它除了可以辅助高校的科研工作,在实验教学方面也具有如利用率高,易维护等诸多优点。近年来,国内的许多高校都根据自身科研和教学的需求建立了一些高科技的仿真实验室。 远宽解决方案 远宽能源除了将仿真技术应用于科研与工业测试,也率先将该技术引入到了教学实验室建设中。对于不同的实验内容与实验类型,远宽能源提出了如下的仿真实验建设的解决方案:实时仿真实验和远程虚拟仿真实验。 1. 实时仿真实验 远宽能源将先进的FPGA小步长实时仿真技术应用到教学实验室建设中,小步长实时仿真技术使它能够覆盖电力电子、电机驱动、新能源等多个电力电子相关应用的创新教学实验以及研究的需求。基于图形化系统建模,模型一键下载,无需FPGA编程编译,大大增强了产品的易用性;同时实验平台还配置了硬件控制器(TI的DSP或者NI的GPIC),和仿真器构成完整的闭环系统。实时仿真实验系统如下图所示: 创新源于实践《面向对象C++程序设计》 实 验 指 导 书 计算机科学与技术学院《面向对象C++程序设计》课程组 实验指导书目录 实验一 C++基础练习 (1) 实验二 C++简单程序设计练习 (4) 实验三类与对象(一) (9) 实验四类与对象(二) (14) 实验五派生类与继承 (21) 实验六虚函数与多态性 (31) 实验七函数模板与类模板 (40) 实验八输入输出的格式控制 (44) 实验九文件的输入输出 (49) 实验十综合练习 (55) 实验十一设计时间类——计算程序的运行时间 (67) 附录:C++语言上机实验环境介绍 (70) 实验一 c++基础练习 一、实验性质 验证性实验2学时 二、实验目的和要求 1.掌握c++程序的基本格式与规范,学会编写简单的c++程序。 2.理解c++程序结构的特点。 3.熟悉c++程序基本的输入输出操作。 4.掌握c++数据类型常量和变量以及修饰符的使用方法。 5.掌握函数定义、函数调用和函数说明的方法。 6.熟悉作用域运算符的功能和基本使用方法。 7.掌握c++内存的动态分配与释放方法。 8.理解引用的概念,掌握引用的使用方法。 三、实验内容: 1编写一个简单程序,输出“welcome you”,并给程序加一行注释“fisrt c++ program”。 2编写一个完整的包含输入和输出的简单c++程序。 3编写内置函数求解2x^+4x+5的值,x为整数,并用主函数调用该函数。 利用函数重载,重载上面的函数,x为浮点数。 4编写一个程序,对一个整数数组求和,求和的结果使用全局变量sum存储,同时对整数中的奇数求和,结果使用局部变量sum存储,在主程序将两个结果输出。本题要求体会和理解作用域运算符的概念与基本使用方法。 5编写一个程序动态分配一个浮点空间,输入一个数到该空间中,计算以该数为半径的圆的面积并在屏幕上显示,最后释放该空间,请使用new,delete运算符。 四、实验步骤 第一步:根据实验内容编写下面的代码进行调试。 #include 实验九类和对象的使用实验报告 一实验目的 1、学会用构造函数对类对象进行初始化 2、掌握析构函数,并了解构造函数和析构函数的调用顺序 3、了解对象数组和对象指针的用法 4、学会共用数据的保护,了解常对象、常成员函数等的使用限制 二实验内容和要求 1.回顾课本知识,掌握重点和难点,认真分析例题熟悉本章内容。 2.完成本章课后习题2、6、7题,认真分析每一题的代码。 三实验环境 Visual C++6.0开发环境 四源程序 2、 #include Date::Date() { month=1; day=1; year=2005; } void Date::display() { cout< 实验二路由器的telnet远程登录配置 实验目标 掌握采用Telnet方式配置路由器的方法。 实验背景 你是某公司新进的网管,公司要求你熟悉网络产品,首先要求你登录路由器,了解、掌握路由器的命令行操作; 作为网络管理员,你第一次在设备机房对路由器进行了初次配置后,希望以后在办公室或出差时也可以对设备进行远程管理,现要在路由器上做适当配置。 实验设备 Router _2811 1台;PC 1台;交叉线;配置线 说明:交叉线:路由器与计算机相连路由器与交换机相连 直连线:计算机与交换机相连 PC IP: Submask: ROUTER 0 1、Fa 0/0 给PC机配置IP地址 2、通过PC机的超级终端程序terminal登陆路由器 3、询问你是否使用对 话形式的配置模式时输 入NO 4、在全局模式下更改名字 5、设置特权模式密码 6、输入exit直到退回到用户模式 7、设置完密码从用户模式进入到特权模式时需要输入密码 8、进入远程登录用户管理视图,0-4个用户 9、设置telnet远程登录密码,密码明码显示 10、打开登录认证功能 11、退回到全局模式,进入路由器0模块第0个端口 12、该端口配置相应的IP地址和子网掩码 13、端口激活 14、配置IP地址,已接通 15、查看本机TCP/IP配置情况(IP地址、子网掩码、网关、MAC地址) 16、检查是否可以ping 通 17、远程登录到路由器上 18、显示路由器当前配置情况 19、保存当前配置 20、查看当前配置 21、重启路由器,重新进入看看是否可以远程登录上路由器 《高级语言程序设计》实验报告班级:学号:姓名:成绩: 实验7 函数程序设计 一、实验目的 1.掌握函数定义的方法。 2.掌握函数实参与形参的传递方式。 3.掌握函数的嵌套调用和递归调用的方法。 4.了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、实验内容 1.改错题 (1)下列sub函数的功能为:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。纠正程序中存在的错误,以实现其功能。程序以文件名sy7_1.c存盘。 #include for( i=1; i< d ; i++ ) for( i=0; i< d ; i++ ) t[i]=s[d-1-i] ; for( i=0; i 实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示 一、实验目标 掌握采用telnet方式配置交换机的方法 二、技术原理 ?配置交换机的管理IP地址(计算机的IP地址与交换机管理IP地址在同一网段); ?为telnet用户配置用户名和登录口令: Switch(config)#enble password xxxx //设置进入特权模式的密码; Switch(config-line)#password xxxx //可以设置通过console端口连接设备及telnet远程登录时所需要的密码。 Switch(config)#line console 0 Switch(config-line)#password xxxx //设置通过console端口连接设备的密码 Switch(config-line)#login Switch(config)#line vty 0 4 Switch(config-line)#password xxxx //设置telnet远程登录密码 Switch(config-line)#login 三、实验步骤 实验拓扑 Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. 1、配置交换机的管理IP地址 Switch(config)#interface vlan 1 //默认情况下交换机所有端口都处于vlan 1 当中 Switch(config-if)#ip address 192.168.1.1 255.255.255.0 //配置交换机管理IP地址 Switch(config-if)#no shutdown //开启Interface Vlan1 %LINK-5-CHANGED: Interface Vlan1, changed state to up Switch(config-if)# %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up Modeling and Simulation 建模与仿真, 2019, 8(3), 95-101 Published Online August 2019 in Hans. https://www.360docs.net/doc/4f12379418.html,/journal/mos https://https://www.360docs.net/doc/4f12379418.html,/10.12677/mos.2019.83012 Remote Virtual Laboratory of Control System Based on Cloud Platform Huazhong Wang1, Tao Liu1, Jun Yao2, Hua Cheng2 1Key Laboratory of Advanced Control and Optimization for Chemical Processes of Ministry of Education, East China University of Science and Technology, Shanghai 2School of Modern Distance Education, East China University of Science and Technology, Shanghai Received: Aug. 2nd, 2019; accepted: Aug. 19th, 2019; published: Aug. 26th, 2019 Abstract To overcome the shortcomings of the existing remote-control virtual experimental platform in terms of flexibility and applicability, a remote-control virtual experiment scheme based on the cloud platform and the experimental module that can be configured by the user is proposed. The Django network framework based on Python is chosen to build a remote experimental platform. The experimental modules that constitute the components of the closed-loop control system are developed. Users can configure the control system according to the experimental requirements. The experimental management system executes simulation, procedures control, online help and evaluation of the virtual experiments. The experimental system is deployed and tested in Ali Cloud. The teaching practice shows that the remote virtual control system experimental platform enables users to complete a series of motion control experiments through the browser, which is conducive to cultivating students’ practical ability. Keywords Virtual Laboratory, Python, Cloud Platform, Control System 基于云平台的远程控制系统虚拟实验 王华忠1,刘涛1,姚俊2,程华2 1华东理工大学化工过程先进控制和优化技术教育部重点实验室,上海 2华东理工大学网络教育学院,上海 收稿日期:2019年8月2日;录用日期:2019年8月19日;发布日期:2019年8月26日实验四telnet远程登录
C++实验报告 第四章 类与对象
远程登录协议(Telnet)
远程虚拟仿真实验室教学系统
c实验答案
C++实验九类和对象的使用实验报告
路由器的telnet远程登录配置实验报告
C实验报告参考答案
C上机实验报告实验四
交换机的Telnet远程登录设置
基于云平台的远程控制系统虚拟实验
C++实验二类与对象(附答案)