C 上机实验报告 实验三
C++上机实验报告 实验三

C++上机实验报告实验三一、实验目的本次 C++上机实验的目的是通过实际操作,深入理解和掌握 C++编程中的一些重要概念和技术,包括类与对象、构造函数与析构函数、成员函数的定义与使用等,提高编程能力和问题解决能力。
二、实验环境操作系统:Windows 10编程软件:Visual Studio 2019三、实验内容1、定义一个学生类(Student),包含学生的姓名(name)、学号(id)、年龄(age)和成绩(score)等私有数据成员。
2、为学生类定义构造函数和析构函数,在构造函数中初始化学生的信息,在析构函数中输出学生对象被销毁的提示信息。
3、定义成员函数用于设置和获取学生的信息。
4、在主函数中创建学生对象,调用成员函数进行信息的设置和获取,并输出学生的信息。
四、实验步骤1、首先,打开 Visual Studio 2019 编程软件,创建一个新的 C++项目。
2、在项目中创建一个名为“Studenth”的头文件,用于定义学生类。
```cppinclude <iostream>include <string>class Student {private:std::string name;int id;int age;double score;public:Student(std::string n, int i, int a, double s) {name = n;id = i;age = a;score = s;std::cout <<"创建学生对象" << std::endl;}~Student(){std::cout <<"销毁学生对象" << std::endl;}void setName(std::string n) {name = n;}std::string getName(){return name;}void setId(int i) {id = i;}int getId(){return id;}void setAge(int a) {age = a;}int getAge(){return age;}void setScore(double s) {score = s;}double getScore(){return score;}};```3、在项目中创建一个名为“maincpp”的源文件,用于实现主函数。
C语言程序设计上机实验报告

本科实习报告实习名称: C 语言程序设计实习性质:08060101实习时间:2011.09—2012.01实习地点:学生姓名:学号:学院:信息科学技术学院学系:数学系专业:信息与计算科学指导教师:教师单位:数学系2011年9月1日C语言程序设计课程实验项目目录学生姓名:学号:第 1 页暨南大学本科实验报告专用纸实验一熟悉WinTC/VC的上机过程:一、实验目的:1.熟悉Win TC或者VC++ 6.0的软件环境,掌握使用其进行编辑、编译、连接和运行的方法。
2.通过运行简单的C程序,掌握C源程序的特点。
二、实验内容:(由学生选择WinTC或者VC之一完成相关实验)1.运行WinTC程序,进入C程序设计环境。
2.建立工程文件3.编辑源文件4.编译、连接(1)单文件源程序的编译、连接源程序先经过编译,生成目标文件(.obj文件),然后将目标文件进行连接,生成可执行文件(.exe)。
如果编译、连接中发生错误,在Message窗口中显示出错信息,修改错误后,可重新编译、连接。
(2)多文件源程序的编译、连接可以用长的源程序分割成几个文件,分别编译然后生成可执行文件。
此时使用Project菜单。
步骤:第一步:有三个文件f1.c、f2.c、f3.c组成一个完整的C程序,分别建立三个文件,将f1.c、f2.c、f3.c三个文件保存到同一个文件夹中(如d:\tc\project\)。
f1.c:#include "stdio.h"extern a,b;extern max(int x,int y);main(){int e=1,f=2;printf("%d\n",max(a,b));printf("%d\n",max(e,f));}f2.c:int a=3,b=4;f3.c:int max(int x,int y ){return x>y?x:y;}第 2 页C语言程序设计第二步:构造Project文件,在编辑状态下,编辑一个扩展名为.prj的文件,文件的内容为:f1f2f3第三步:构造EXE文件,按F9键即将三个文件编译、连接成一个EXE文件,文件名为wang.exe。
C程序设计上机实验报告(完整版)

C语言程序设计上机实验报告学院:机械工程学院班级:机自161213姓名:刘昊学号:20162181310实验时间:2017年3月6号任课老师:张锐C语言程序设计上机实验报告实验一一、实验名称: C程序的运行环境和运行C程序的方法二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C程序三、实验内容:(1). 输入并运行一个简单的C程序。
(2). 设计程序,对给定的两个数求和。
(3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。
四、源程序代码:代码1:运行结果1:程序分析1:该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。
代码2:运行结果2:程序分析2:简单的使用printf()和scanf()函数进行简单的数据运算。
代码3:运行结果3:程序分析3:使用if语句进行判断。
五.实验总结C语言程序设计上机实验报告实验二一、实验名称:顺序结构程序设计二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法,熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。
三、实验内容:(1). 编写程序,实现小写字母转大写。
(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。
(3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。
(4). 编写程序,实现单字符getchar和putchar输入输出。
(5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。
四、源程序代码代码1:运行结果1:程序分析1:所有的字符都有一个对应的数字与之对应,每一个小写字母对应的数与大写字母对应的数之间总是相差32,所以只需要对所输入的字符进行减法运算就可以转换为与之对应的大写字母。
代码2:运行结果2:程序分析2:简单的数据运算和格式字符的输出。
C语言上机实验报告

中南大学C语言程序设计实验报告学生姓名学号专业班级指导教师学院信息科学与工程学院完成时间2014年10月~2014年12月一、目的要求1、熟悉C语言的表达式语句、空语句和复合语句。
2、熟悉函数调用语句,尤其是各输入输出函数调用语句。
3、熟悉顺序结构程序中语句的执行过程。
4、能设计简单的顺序结构程序。
二、上机内容1、完成《C语言程序设计上机指导与习题选解》的实验一~实验三;2、编程并调试程序:(1)从键盘输入一个三位数,输出该数的各位数字和。
如输入:358,输出:3+5+8=16。
#include<stdio.h>main(){int a,b,c,x,m;printf("input a number:");scanf("%d",&x);if(x>999||x<100){printf("error\n");}else{a=x/100;x=x%100;b=x/10;c=x%10;m=a+b+c;printf("%d+%d+%d=%d\n",a,b,c,m);}system("pause");}(2)从键盘输入实数x,根据公式y=sin(x)+e|x|计算出y值输出。
#include<stdio.h>#include<math.h>main(){int x;printf("input x:");scanf("%d",&x);printf("%f\n",sin(x)+exp(x));system("pause");}一、目的要求1、学会运用逻辑表达式或关系表达式等表达条件。
2、熟练掌握if语句和switch语句。
3、学会使用F8跟踪调试程序,针对输入测试数据,观察程序运行的输出结果。
C语言上机实验

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
c语言上机实验报告

c语言上机实验报告C语言上机实验报告引言:C语言是一门广泛应用于计算机编程领域的高级编程语言。
通过学习C语言,我们可以了解计算机程序的基本原理和实现方法。
在本次实验中,我们将进行一系列的C语言上机实验,旨在提高我们的编程能力和解决问题的能力。
实验一:基本语法和数据类型在这个实验中,我们首先学习了C语言的基本语法和数据类型。
我们了解了变量的定义和使用,以及常用的数据类型,如整数、浮点数和字符。
通过编写简单的程序,我们掌握了C语言的基本语法和运算符的使用方法。
实验二:流程控制和循环结构在这个实验中,我们学习了C语言的流程控制和循环结构。
我们了解了条件语句(if-else语句)和循环语句(for循环和while循环)的使用方法。
通过编写程序,我们掌握了如何根据不同的条件执行不同的代码块,以及如何使用循环结构重复执行一段代码。
实验三:数组和字符串在这个实验中,我们学习了C语言中数组和字符串的使用方法。
我们了解了如何定义和初始化数组,以及如何使用下标访问数组元素。
我们还学习了字符串的定义和常用的字符串处理函数。
通过编写程序,我们掌握了如何使用数组和字符串解决实际问题。
实验四:函数和指针在这个实验中,我们学习了C语言中函数和指针的使用方法。
我们了解了如何定义和调用函数,以及如何传递参数和返回值。
我们还学习了指针的概念和使用方法,包括指针的定义、指针的运算和指针的传递。
通过编写程序,我们掌握了如何使用函数和指针提高程序的模块化和灵活性。
实验五:文件操作在这个实验中,我们学习了C语言中文件操作的使用方法。
我们了解了如何打开和关闭文件,以及如何读取和写入文件。
我们还学习了文件指针和文件位置指示器的概念和使用方法。
通过编写程序,我们掌握了如何读取和处理文件中的数据,以及如何将数据写入文件。
总结:通过这一系列的C语言上机实验,我们深入学习了C语言的基本知识和编程技巧。
我们掌握了C语言的基本语法和数据类型,了解了流程控制和循环结构的使用方法,掌握了数组和字符串的操作技巧,学会了函数和指针的使用方法,以及文件操作的基本知识。
C语言集中上机实验报告

C语言集中上机实验报告一、实验目的本次实验的目的是通过一系列的C语言上机实验,掌握C语言的基本语法和常用操作。
二、实验内容1. 实验1:Hello World程序2.实验2:变量和数据类型3.实验3:运算符和表达式4.实验4:条件语句和循环语句5.实验5:函数的定义和使用6.实验6:数组和指针的应用三、实验过程1. 实验1:Hello World程序在本实验中,通过编写一个简单的Hello World程序,来熟悉C语言的编译和运行过程。
首先,在C语言编译器(如Dev-C++)中新建一个C 文件,然后输入以下代码:#include <stdio.h>int mainprintf("Hello World!\n");return 0;接下来,点击编译运行按钮,即可在控制台中看到输出结果"Hello World!"。
2.实验2:变量和数据类型在本实验中,我们学习了C语言的变量和数据类型的定义和使用。
通过定义不同的变量和数据类型,来存储不同类型的数据。
例如,我们可以定义一个整型变量a和一个字符型变量b,来分别存储整数和字符。
#include <stdio.h>int mainint a = 10;char b = 'A';printf("a = %d\n", a);printf("b = %c\n", b);return 0;编译运行后,控制台会输出变量a和b的值。
3.实验3:运算符和表达式在本实验中,我们学习了C语言中常用的运算符和表达式。
通过使用不同的运算符,可以对变量进行计算和操作。
例如,我们可以定义两个整型变量a和b,并使用加法运算符对它们进行相加。
#include <stdio.h>int mainint a = 10;int b = 5;int sum = a + b;printf("sum = %d\n", sum);return 0;编译运行后,控制台会输出变量sum的值。
c语言上机实验报告

实验报告(一)C程序的运行环境及运行方法一、实验目的:1.了解所用计算机系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个c程序。
3.通过运行简单的C程序,初步了解C程序的特点。
二、操作步骤:1.进入Turbo C编译环境2. 输入源程序3. F2保存4. F9调试{若出现警告或错误,则按任意键返回修改,然后再保存(F2),再调试(F9)}5. Ctrl+f9运行程序6. Alt+f5切换到用户界面查看运行结果。
三、具体实验及结果分析实验一#include "stdio.h"int main (){printf("This is a C program.\n");return(0);}输入以上程序无错误,无警告,显示结果为;this is a C program.实验二#include "stdio.h"int main(){int a,b,sum;a=123;b=456;sum=a+b;printf("sum is %d\n",sum);return(0);}输入上述程序,无警告无错误,运行结果:sum is 579实验三#include "stdio.h"int main(){int a,b,c;scanf("%d %d",&a,&b);if(a>b)c=b;else c=a;printf("min=%d\n",c);return(0);}按上程序切换到用户界面后,输入15 21按enter,显示min=15;实验四#include "stdio.h"int main(){printf("********************\n");printf("This is a C program!\n");printf("********************\n");return(0);}运行结果:********************This is a C program!********************实验总结:1、写程序一定要注意细节,括号的完整性,分号,引号,单词的准确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三类与对象1.实验目的1.掌握类的定义和使用2.掌握类的定义和对象的声明3.复习具有不同访问属性的成员的访问方式4.观察构造函数和析构函数的执行过程5.学习类的组合使用方法6.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。
2.实验要求1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。
其中,rank为枚举类型CPU_Rank,定义为enumCPU_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(身份证号)等等。
其中“出生日期”定义为一个“日期”类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。
3.实验内容1.首先定义枚举类型CPU_Rank,例如enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},再定义CPU 类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。
在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。
程序名:lab4_1.cpp2.使用debug调试功能观察程序lab4_1.cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。
3.调试操作步骤如下:1)单击Build|StartDebug|StepInto命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时VisualStudio中光标停在main()函数的入口处;2)从Debug菜单或Debug工具栏中单击StepOver,此时,光标下移,程序准备执行CPU对象的初始化;3)单击StepInto,程序准备执行CPU类的构造函数;4)连续单击StepOver,观察构造函数;5)此时程序准备执行CPU对象的run()函数,单击StepInto,程序进入run()成员函数,连续单击StepOver,直到回到main()函数。
6)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识。
7)再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。
4.首先定义CPU类(可使用第二题中的CPU类)、RAM类、CDROM类。
再定义Computer 类;定义私有数据成员cpu、ram、cdrom,定义公有成员函数run、stop,可在其中输出提示信息。
在主程序中定义一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用。
程序名:lab4_2.cpp.1.使用debug调试功能观察lab4_2.cpp程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。
4.思考题:1.如何定义一个类?class类名称{public:外部接口protected:保护型成员private:私有成员};2.如何定义类的构造函数和析构函数?class类名称{public:类名(形参表);//构造函数声明类名(类名&对象名);//拷贝构造函数声明~类名();//析构函数声明……};类名::类名(形参表)//构造函数实现{函数体}类名::类名(类名&对象名)//拷贝构造函数实现{函数体}类名::~类名()//析构函数实现{函数体}3.类的各成员函数的执行顺序是怎样的?成员函数只有被调用时才会执行。
4.类组合时对象的构造顺序是怎样的?当创建一个类对象时,如果类中具有内嵌对象成员,那么各个内嵌对象将首先被自动创建。
因此在构造数据成员时,首先调用内嵌对象的构造函数,调用顺序按照内嵌对象在组合类的定义中出现的次序,之后再执行本类构造函数的函数体,对本类的数据成员进行构造。
1.lab4_1.cpp#include<iostream> usingnamespacestd;enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7}; classCPU{private:CPU_Rankrank;intfrequency;floatvoltage;public://构造函数CPU(CPU_Rankr,intf,floatv){rank=r;frequency=f;voltage=v;cout<<"构造了一个CPU!"<<endl;}//拷贝构造函数CPU(CPU&p){rank=p.rank;frequency=p.frequency;voltage=p.voltage;cout<<"拷贝构造了一个CPU!"<<endl;}//析构函数~CPU(){cout<<"析构了一个CPU!"<<endl;}//getCPU_RankGetRank(){returnrank;}intGetFrequency(){returnfrequency;}floatGetVoltage(){returnvoltage;}//setvoidSetRank(CPU_Rankr){rank=r;}voidSetFrequency(intf){frequency=f;} voidSetVoltage(floatv){voltage=v;}voidRun(){cout<<"CPU开始运行!"<<endl;} voidStop(){cout<<"CPU停止运行!"<<endl;} };voidmain(){CPUa(P6,300,2.8);a.Stop();CPUb(a);b.Run();b.Stop();}2.lab4_2.cpp#include<iostream> usingnamespacestd;enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7}; enumRAM_Rank{G1=1,G2,G4,G8}; enumCDROM_Speed{X24=1,X36,X40,X50}; enumCDROM_Rank{M700=1,M750,M800}; classCPU{private:CPU_Rankrank;intfrequency;floatvoltage;public://构造函数CPU(CPU_Rankr,intf,floatv){rank=r;frequency=f;voltage=v;cout<<"构造了一个CPU!"<<endl;}//拷贝构造函数CPU(CPU&p){rank=p.rank;frequency=p.frequency;voltage=p.voltage;cout<<"拷贝构造了一个CPU!"<<endl;}//析构函数~CPU(){cout<<"析构了一个CPU!"<<endl;}//getCPU_RankGetRank(){returnrank;}intGetFrequency(){returnfrequency;}floatGetVoltage(){returnvoltage;}//setvoidSetRank(CPU_Rankr){rank=r;}voidSetFrequency(intf){frequency=f;} voidSetVoltage(floatv){voltage=v;}};classRAM{private:RAM_RankramRank;floatspeed;public://构造函数RAM(RAM_Rankr,floats){ramRank=r;speed=s;cout<<"构造了一个RAM!"<<endl;}//拷贝构造函数RAM(RAM&p){ramRank=p.ramRank;speed=p.speed;cout<<"拷贝构造了一个RAM!"<<endl;}//析构函数~RAM(){cout<<"析构了一个RAM!"<<endl;} //getRAM_RankgetRank(){returnramRank;}floatgetSpeed(){returnspeed;}//setvoidsetRank(RAM_Rankr){ramRank=r;} voidsetSpeed(floats){speed=s;}};classCDROM{private:CDROM_SpeedcdromSpeed;CDROM_RankcdromRank;public://构造函数CDROM(CDROM_Rankr,CDROM_Speeds){cdromRank=r;cdromSpeed=s;cout<<"构造了一个CDROM!"<<endl;}//拷贝构造函数CDROM(CDROM&p){cdromRank=p.cdromRank;cdromSpeed=p.cdromSpeed;cout<<"拷贝构造了一个CDROM!"<<endl;}//析构函数~CDROM(){cout<<"析构了一个CDROM!"<<endl;}//getCDROM_RankgetRank(){returncdromRank;}CDROM_SpeedgetSpeed(){returncdromSpeed;}//setvoidsetRank(CDROM_Rankr){cdromRank=r;} voidsetSpeed(CDROM_Speeds){cdromSpeed=s;}};classComputer{private:CPUcpu;RAMram;CDROMcdrom;public://构造函数Computer(CPUc,RAMr,CDROMcd):cpu(c),ram(r),cdrom(cd){cout<<"构造了一个Computer!"<<endl;}//拷贝构造函数Computer(Computer&p):cpu(p.cpu),ram(p.ram),cdrom(p.cdrom){cout<<"拷贝构造了一个Computer!"<<endl;}//析构函数~Computer(){cout<<"析构了一个Computer!"<<endl;}voidRun(inta){cout<<"Computer"<<a<<"开始运行!"<<endl;} voidStop(inta){cout<<"Computer"<<a<<"停止运行!"<<endl;} };voidmain(){CPUcpu1(P6,300,2.8);RAMram1(G4,200);CDROMcdrom1(M800,X50);Computercomputer1(cpu1,ram1,cdrom1);computer1.Run(1);computer1.Stop(1);Computercomputer2(computer1);computer2.Run(2);computer2.Stop(2);}3.lab4_3.cpp#include<iostream>#include<cstring> usingnamespacestd;classDate{private:intyear;intmonth;intday;public:Date();Date(inty,intm,intd);Date(Date&p);~Date();voidsetDate();voidshowDate();};classPeople{private:intnumber;charsex[8];Datebirthday;charid[25];public:People();People(intn,char*s,Dateb,char*i);People(People&p);~People();voidsetNumber();voidsetSex();voidsetId();voidshowPeople();};//Date构造函数Date::Date(){}Date::Date(inty,intm,intd){year=y;month=m;day=d;}Date::Date(Date&p){year=p.year;month=p.month;day=p.day;}Date::~Date(){}//Date成员函数,设置出生年月日voidDate::setDate(){inty,m,d;cout<<"Inputtheyear:";cin>>y;cout<<"Inputthemonth:";cin>>m;cout<<"Inputtheday:";cin>>d;year=y;month=m;day=d;}//Date内联成员函数,输出Date信息inlinevoidDate::showDate(){cout<<"Birthdayis"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;}//People构造函数People::People(){}People::People(intn,char*s,Dateb,char*i){number=n;strcpy(sex,s);birthday=b;strcpy(id,i);}People::People(People&p){number=p.number;strcpy(sex,p.sex);birthday=p.birthday;strcpy(id,p.id);}People::~People(){}//People成员函数,设置各类数据voidPeople::setNumber(){cout<<"Pleaseinputtheperson'snumber:";cin>>number;}voidPeople::setSex(){cout<<"Inputsex:";cin.getline(sex,8,'\n');}voidPeople::setId(){cout<<"Inputid:";cin.getline(id,25,'\n');}//People内联成员函数,输出人员信息inlinevoidPeople::showPeople(){cout<<"Number:"<<number<<endl;cout<<sex;cout<<endl;cout<<id;cout<<endl;}intmain(){inti;charspaceA;Datedate[3]={Date(0,0,0),Date(0,0,0),Date(0,0,0)};Peopleperson[3]={People(0,"0",date[0],"0"),People(0,"0",date[1],"0"),People(0,"0",date[2]," 0")};//录入信息for(i=0;i<3;i++){person[i].setNumber();spaceA=getchar();person[i].setSex();person[i].setId();date[i].setDate();}//输出信息for(i=0;i<3;i++){person[i].showPeople();date[i].showDate();}return0;}6.运行结果1.lab4_1.cpp2.lab4_2.cpp3.7.心得体会:最大的收获就是实际操作学会了如何对类进行组合,并且对组合后的类进行构造初始化,而且还通过debug追踪构造和拷贝构造函数以及析构函数,明白了这些函数是在何时被调用的,而且发现在类的组合中,比如构造Computer类型的对象时,对于Computer 类下的类CPU进行构造时,除了调用了一次CPU的构造函数外,还调用了两次CPU的拷贝构造函数,才最终构造完成Computer。