C++实验报告--

合集下载

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。

通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。

数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。

数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。

可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。

数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。

二维数组数组可分为一维和多维数组。

一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。

二维数组有行号和列号,因此,它同样需要两个下标。

数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。

三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。

程序执行正常。

3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

c语言实验报告册

c语言实验报告册

c语言实验报告册C语言实验报告册。

实验一,C语言基本程序设计。

1. 实验目的。

通过本实验,掌握C语言的基本程序设计方法,包括变量的定义和使用、表达式的计算、控制结构的使用等。

2. 实验内容。

(1)编写一个C程序,实现输入两个整数,然后输出它们的和、差、积和商。

(2)编写一个C程序,实现输入一个实数,计算并输出它的绝对值。

3. 实验步骤。

(1)定义两个整型变量a和b,用来存储输入的整数。

(2)使用printf函数提示用户输入两个整数,并使用scanf函数将用户输入的值分别赋给变量a和b。

(3)定义四个整型变量sum、diff、product和quotient,分别用来存储a和b的和、差、积和商。

(4)分别计算a和b的和、差、积和商,并将结果分别赋给sum、diff、product和quotient。

(5)使用printf函数输出sum、diff、product和quotient的值。

4. 实验结果。

输入:a = 5。

b = 3。

输出:sum = 8。

diff = 2。

product = 15。

quotient = 1。

5. 实验结论。

通过本实验,我掌握了C语言的基本程序设计方法,包括变量的定义和使用、表达式的计算、控制结构的使用等。

在实际编程中,我需要注意变量的类型和范围,以避免数据溢出和精度丢失的问题。

实验二,C语言函数的使用。

1. 实验目的。

通过本实验,学习C语言函数的定义和调用,掌握函数参数的传递和返回值的使用。

2. 实验内容。

(1)编写一个C程序,实现输入两个整数,计算它们的最大公约数和最小公倍数。

(2)编写一个C程序,实现输入一个整数n,计算并输出1到n的阶乘之和。

3. 实验步骤。

(1)定义一个函数gcd,用来计算两个整数的最大公约数。

(2)定义一个函数lcm,用来计算两个整数的最小公倍数。

(3)定义一个函数factorial,用来计算一个整数的阶乘。

(4)在主函数中,调用gcd和lcm函数计算最大公约数和最小公倍数;调用factorial函数计算阶乘之和。

维生素C含量的测定实验报告

维生素C含量的测定实验报告

维生素C含量的测定实验报告一、实验目的本次实验旨在掌握一种常见且有效的测定维生素 C 含量的方法,了解维生素 C 的化学性质和在不同样品中的含量差异,提高实验操作技能和数据处理能力。

二、实验原理维生素 C 又称抗坏血酸,具有较强的还原性。

在酸性溶液中,维生素C 能将染料2,6-二氯酚靛酚还原成无色的还原型。

当染料被还原后,溶液的颜色会发生变化。

利用这个特性,通过滴定法可以测定维生素C 的含量。

在滴定过程中,当溶液中的维生素 C 全部被氧化后,再滴加的染料溶液会使溶液呈现粉红色,此时即为滴定终点。

根据染料的用量,可以计算出样品中维生素 C 的含量。

三、实验材料与仪器1、材料新鲜水果(如橙子、柠檬等)、维生素 C 药片。

2、仪器电子天平、容量瓶(100 mL、250 mL)、移液管(5 mL、10 mL)、酸式滴定管(50 mL)、锥形瓶(250 mL)、玻璃棒、烧杯(100 mL、500 mL)、漏斗、滤纸、研钵。

3、试剂2%草酸溶液、0001 mol/L 2,6-二氯酚靛酚溶液。

四、实验步骤1、样品处理(1)水果样品:称取新鲜水果 50 g,用研钵研碎,加入 50 mL 2%草酸溶液,搅拌均匀,过滤,滤液收集在 100 mL 容量瓶中,用 2%草酸溶液定容至刻度,摇匀备用。

(2)维生素 C 药片:将维生素 C 药片研磨成粉末,称取适量粉末(相当于 50 mg 维生素 C),用 2%草酸溶液溶解并转移至 100 mL 容量瓶中,定容至刻度,摇匀备用。

2、滴定(1)用移液管准确吸取 10 mL 样品溶液于 250 mL 锥形瓶中,加入20 mL 2%草酸溶液,用 0001 mol/L 2,6-二氯酚靛酚溶液滴定,边滴边摇动锥形瓶,直至溶液呈现粉红色,并在 15 秒内不褪色,即为终点。

记录消耗的 2,6-二氯酚靛酚溶液的体积(V1)。

(2)同时做空白实验,即在 250 mL 锥形瓶中加入 30 mL 2%草酸溶液,用 0001 mol/L 2,6-二氯酚靛酚溶液滴定至终点,记录消耗的体积(V0)。

维生素c含量的测定 实验报告

维生素c含量的测定 实验报告

维生素c含量的测定实验报告实验目的:测定某种水果中维生素C的含量。

实验原理:维生素C是一种易氧化的物质,在空气中易受热和光的影响而分解,所以在测定维生素C含量时需采取适当的措施。

本实验采用I2-苯酚法测定维生素C的含量。

此法原理是利用维生素C与碘化钾反应生成褐色的碘褐色物质,通过测定生成物的浓度来间接计算维生素C含量。

实验步骤:1.样品制备:将所选水果洗净并去皮,然后切成适当大小的块。

取100g水果样品加入100ml蒸馏水,混合均匀。

2.提取维生素C:将上述混合液分装到锥形瓶中,加入5ml三氯乙酸并摇匀,使之完全酸化。

然后放置于阴暗处静置24小时。

3.滴定:将上述混合液分装到滴定筒中,加入适量I2溶液,并用淀粉溶液作指示剂。

以0.1mol/L C6H8O6溶液为对照组。

实验结果:根据对照组的颜色变化,可以通过比较样品的颜色变化程度来测定维生素C的含量。

颜色愈淡,维生素C含量愈低。

根据滴定计算出水果中维生素C的含量。

实验讨论:实验结果可能会受到以下因素的影响:1.水果样品的新鲜程度:新鲜水果中的维生素C含量较高,过了保质期的水果中的维生素C含量会降低。

2.样品制备的操作:样品制备的过程中,应尽量保证样品与空气的接触时间较短,以防维生素C的氧化分解。

3.滴定的准确性:滴定过程中,需仔细控制滴定剂和指示剂的添加量,以确保结果的准确性。

实验结论:通过实验测定,我们可以得出某种水果中维生素C的含量。

这个结果有助于我们了解水果的营养价值,并且可以帮助我们选择含有更多维生素C 的水果。

参考文献:1. 魏彩霞,林辉,李晓彤,杨龙. 微波法测定果蔬中维生素C的含量[J]. 食品与机械,2015,31(12):198-200.2. 张文英,周文杰. 技术指标法测定果蔬中维生素C的含量分析[J]. 食品计量学报,2014,8(2):093-097.。

c语言程序设计_实验一实验报告

c语言程序设计_实验一实验报告

实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。

2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。

3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。

4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。

实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。

程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。

实验一C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法实验报告

实验一C程序的运行环境和运行C程序的方法实验报告实验一:C程序的运行环境和运行C程序的方法一、实验目的1.了解C程序的运行环境和运行C程序的方法;2.掌握在不同操作系统环境下编写和运行C程序的基本步骤;3.加深对C程序运行机制的理解。

二、实验原理C程序是一种用于系统编程的高级编程语言,广泛应用于开发应用程序和操作系统。

在运行C程序之前,我们需要了解C程序的运行环境和运行方法。

1.运行环境:运行C程序的环境可以是不同的操作系统,如Windows、Linux、MacOS等。

每个操作系统都提供了一种特定的环境来运行C程序。

2.运行方法:在不同的操作系统下,运行C程序的方法也有所不同。

- 在Windows操作系统下,可以使用任何支持C编译器的集成开发环境(IDE)来编写和运行C程序。

常用的IDE有Dev-C++、Code::Blocks 等。

- 在Linux操作系统下,可以使用GNU编译器套装(GCC)来编译和运行C程序。

首先需要安装GCC编译器,然后使用命令行工具编写和运行C程序。

- 在MacOS操作系统下,可以使用Xcode开发工具来编写和运行C程序。

Xcode是苹果官方提供的集成开发环境,提供了编译器和调试器等工具。

三、实验步骤1. 在Windows操作系统下运行C程序:- 启动Dev-C++,选择"File"菜单中的"New"选项,创建一个新的C 源文件;-在源文件中编写C程序代码,并保存为以.c为扩展名的文件;2. 在Linux操作系统下运行C程序:- 在终端窗口中使用GCC编译器编译C程序,如gcc -o program program.c,其中program为可执行文件名;- 运行C程序,如./program。

3. 在MacOS操作系统下运行C程序:- 启动Xcode,选择"File"菜单中的"New"选项,创建一个新的C源文件;-在源文件中编写C程序代码,并保存为以.c为扩展名的文件;- 点击Xcode窗口右上角的"Run"按钮,编译并运行C程序。

维生素c测定实验报告

维生素c测定实验报告

维生素c测定实验报告维生素C测定实验报告。

实验目的:本实验旨在通过分光光度法测定果汁中维生素C的含量,了解维生素C的性质和测定方法。

实验原理:维生素C是一种易氧化的物质,可以被2,6-二氨基苯酚(DPIP)还原成无色的化合物。

当果汁中含有维生素C时,它会与DPIP发生反应,使DPIP的颜色由蓝色逐渐变为无色。

通过测定果汁中DPIP的消耗量,可以计算出果汁中维生素C的含量。

实验步骤:1. 将一定量的果汁样品加入试管中;2. 加入适量的DPIP试剂,混合均匀;3. 用分光光度计在特定波长下测定溶液的吸光度;4. 根据标准曲线计算出果汁中维生素C的含量。

实验结果:经过实验测定,我们得出果汁中维生素C的含量为XXmg/100ml。

实验分析:通过本次实验,我们了解到分光光度法是一种简便、快速、准确的测定方法,适用于测定果汁、蔬菜等食品中维生素C的含量。

同时,我们也发现果汁中维生素C的含量受到多种因素的影响,如果汁的种类、保存方式等。

实验总结:本次实验通过分光光度法成功测定了果汁中维生素C的含量,进一步加深了我们对维生素C的认识。

在今后的实验中,我们将继续学习和探索更多关于维生素C的知识,不断提高实验技能和分析能力。

实验注意事项:1. 实验过程中要注意操作规范,避免试剂的飞溅和溅洒;2. 实验结束后要及时清洗实验器材,保持实验台面的整洁;3. 实验中要注意安全,避免接触有毒有害物质。

维生素C在日常生活中扮演着重要的角色,它不仅是一种营养物质,还具有抗氧化、美白肌肤等功效。

通过本次实验,我们对维生素C有了更深入的了解,相信在今后的学习和生活中,我们会更加珍惜并正确利用维生素C的重要性。

维生素c含量测定实验报告

维生素c含量测定实验报告

维生素c含量测定实验报告维生素C是一种重要的水溶性维生素,也被称为抗坏血酸。

它在许多生物体中起着重要的抗氧化作用,对人体健康起着至关重要的作用。

为了了解维生素C在常见食物中的含量,我们进行了一次测定实验。

实验目的:通过化学实验,准确测定某食物中的维生素C含量,了解其在日常饮食中的重要性。

实验材料与仪器:- 柠檬- 维生素C标准溶液- 碘液- 淀粉溶液- 酒精棉球- 滴定管- 三角瓶- 称量瓶- 果汁机- 磨杯- 磁力搅拌器实验步骤:1. 准备工作:收集所需材料和仪器,并确保其干净无菌。

2. 标定维生素C标准溶液:称取适量维生素C标准溶液,加入三角瓶中,用滴定管滴定碘液直至颜色变化,记录滴定量。

3. 提取食物中的维生素C:将柠檬榨汁机榨汁,将所得橙汁倒入磨杯中。

4. 确定维生素C含量:取一定量橙汁,加入适量淀粉溶液,用磁力搅拌器搅拌均匀。

然后向中加入维生素C标准溶液,直至溶液颜色变化为无色,记录滴定量。

5. 测定维生素C浓度:根据维生素C标准溶液的滴定量和橙汁中的滴定量计算维生素C的浓度。

实验结果与分析:经过实验测定,我们得到了某食物中维生素C的含量。

通过计算,我们发现柠檬中的维生素C含量为xx mg/ml。

通过参考食物营养成分表,我们还可以将这一含量转化为每100g柠檬中的维生素C含量,为xx mg。

结论:通过测定实验,我们得出了柠檬中维生素C的含量。

维生素C 作为一种重要的营养素,对人体健康至关重要。

合理摄入维生素C可以增强抵抗力、改善免疫功能,并在一定程度上对抵抗慢性病有帮助。

因此,我们应该保持均衡饮食,充分摄入富含维生素C的食物,以维持身体健康。

实验中可能存在的误差:1. 实验条件的限制可能导致实验结果的误差。

2. 实验操作中的不准确可能导致实验结果的误差。

3. 食物中的维生素C含量因原材料的不同而有差异。

改进方案:1. 增加多组样本的测定,以提高实验结果的可靠性。

2. 使用更精确的仪器和设备,以减小实验误差。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验课程:C++语言程序设计学生姓名:学号:专业班级:20年 12 月 20 日目录一.实验五 (3)二.实验六 (6)三.实验七 (10)四.实验八 (18)五.实验九 (22)南昌大学实验报告五学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称C++多种情况的测试二、实验目的1、测试对象指针的相关概念6.2.112、测试指针型函数3、测试指向常量的指针和指针类型的常量。

三、实验基本原理和内容1.程序为:#include<iostream>using namespace std;class Point{public:Point(int xx=0,int yy=0){ X=xx;Y=yy;}Point(Point &p);int GetX(){return X;}int GetY(){return Y;}static void GetC(){ cout<<"Object id="<<countP<<endl;}//静态函数成员;static int countP;// 静态数据成员引用性说明;private:int X,Y;};Point::Point(Point &p){X=p.X;Y=p.Y;countP++;}int Point::countP=0;void main(){Point A(4,5);//对象指针的一般概念Point *p1;// 声明对象指针;p1=&A; //初始化指针;(如果不进初始化会报错)cout<<p1->GetX()<<endl; //利用指针访问对象成员(改为:(*p1).GetX() ,运行结果不变);cout<<A.GetX()<<endl; //利用对象名访问对象成员;//指向类的非静态成员的指针Point *p2=&A;// 声明对象指针并初始化;int (Point::*p_GetX)()=&Point::GetX;//声明成员函数指针并初始化;cout<<(A.*p_GetX)()<<endl; //使用成员函数指针访问成员函数;cout<<(p2->GetX)()<<endl;//使用对象指针访问成员函数;cout<<A.GetX()<<endl;//使用对象名访问成员函数;//指向类的静态的成员指针int*count=&Point::countP;//声明一个int型指针,指向类的静态成员;cout<<"Object id="<<*count<<endl;//直接通过指针访问静态数据成员;Point B(A); //声明对象B;cout<<"Point B,"<<B.GetX()<<","<<B.GetY();cout<<"Object id="<<*count<<endl;//直接通过指针访问静态数据成员;void (*gc)()=Point::GetC; //声明一个指向函数的指针,指向类的静态成员函数;cout<<"Point A,"<<A.GetX()<<","<<A.GetY();//输出对象序号,直接通过指针访问静态函数成员;gc();Point C(A); //声明对象Bcout<<" Point C,"<<C.GetX()<<","<<B.GetY();gc();//输出对象序号,直接通过指针访问静态函数成员;}2.与3和程序:#include<iostream>using namespace std;void (*sum)(int x,int y);//声明指针型函数;void itssum(int m,int n);void main(){const char*name="John";//指向常量的指针;char*const name1="John1";//指针型常量,本身的值不能改变;char s[]="abc";name=s; //name本身的值可以改变,但不能改变name 所指的对象;cout<<" "<<name<<endl;cout<<" "<<name1<<endl;sum=itssum;//函数指针指向itssum;sum(2,3);//函数指针的调用;}void itssum(int m,int n){int sum=0;sum=m+n;cout<<"这两个数相加的和为:";cout<<"sum="<<" "<<m<<"+"<<n<<" "<<"="<<sum<<endl;}四、主要仪器设备及耗材PC机一台五、实验数据及处理结果1.结果为:2.结果为:六、参考资料C++语言程序设计(郑莉,董渊,张瑞丰编著);南昌大学实验报告六学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称C++多种情况的测试二、实验目的1.例题6-19 释放掉三维数组2.例题6-243.弄清楚6.4节。

三、实验基本原理和内容a)程序为:#include<iostream>using namespace std;int main(){float (*cp)[2][3];int i,j,k;cp=new float[2][2][3];for(i=0;i<2;i++)for(j=0;j<2;j++)for(k=0;k<3;k++)*(*(*(cp+i)+j)+k)=i*100+j*10+k;for(i=0;i<2;i++){for(j=0;j<2;j++){ for(k=0;k<3;k++)cout<<cp[i][j][k]<<" "<<" ";cout<<endl;}cout<<endl;}}b)程序为:#include<iostream>#include<string>using namespace std;void turefalse(int x);int main(){string S1="abc",S2="123";int i=5,j;char P1[]="ABCD";cout<<"S1==P1,returned";turefalse(S1==P1);cout<<"S1<P1,returned";turefalse(S1<P1);cout<<"Now S1 is:"<<" "<<S1<<endl;cout<<"Length of S1:"<<" "<<S2.length()<<endl;S1+=S2;cout<<"After S1+=S2,now S1 is:"<<" "<<S1<<endl;cout<<"Length of S1:"<<" "<<S1.length()<<endl;cout<<"Now S2 is:"<<" "<<S2<<endl;S2=S1;cout<<"After S2=S1,now S2 is:"<<" "<<S2<<endl;j=S1[i];cout<<" i=5,j=S1[i],now j is:"<<" "<<j<<endl;}void turefalse(int x){cout<<(x? "Ture":"False")<<endl;}c)程序为:#include<iostream>using namespace std;class Point{public:Point(int xx=0,int yy=0){ X=xx;Y=yy;}Point(Point &p);~Point(){ cout<<"Destructir called.(深拷贝构造函数被调用)"<<endl;delete[];}int GetX(){return X;}int GetY(){return Y;}private:int X,Y;};Point::Point(Point &p){X=p.X;Y=p.Y;cout<<"浅拷贝构造函数被调用"<<endl; }void fun1(Point p){ cout<<p.GetX()<<endl;}void main(){Point A(4,5);fun1(A);}四、主要仪器设备及耗材PC机一台五、实验数据及处理结果a)结果为:b)结果为:c)结果为:六、参考资料C++语言程序设计(郑莉,董渊,张瑞丰编著);南昌大学实验报告七学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称C++多种情况的测试与编程二、实验目的第七章5-11题三、5-11题实验基本原理和内容7-5:#include<iostream>using namespace std;const float PI=(float)3.14159;class Shape{public:Shape(){}~Shape(){}void GetArea(){}};class Rectangle:public Shape{public:Rectangle(float ItsLong,float ItsWide){Long=ItsLong;Wide=ItsWide;} ~Rectangle(){}float GetArea(){return Long*Wide;}private:float Long,Wide;};class Circle:public Shape{public:Circle(float Itsradius){ radius=Itsradius;}float GetArea(){return PI*radius*radius;}private:float radius;};class Square: public Rectangle{public:void GetArea(){}private:float Long,Wide;};void main(){float itsLong,itsWide,itsradius;cout<<"请你输入长方形的长和宽:";cin>>itsLong>>itsWide;Rectangle Re(itsLong,itsWide);if(itsLong==itsWide){cout<<"矩形的面积为:"<<Re.Rectangle::GetArea()<<endl;} elsecout<<"长方形面积为:"<<Re.Rectangle::GetArea()<<endl;cout<<"请输入圆的半径:";cin>>itsradius;Circle Ci(itsradius);cout<<"圆的面积为:"<<Ci.Circle::GetArea()<<endl;}7-6:#include<iostream>using namespace std;class Mammal{public:Mammal(){ cout<<" Mammal()"<<endl;}~Mammal(){ cout<<" ~Mammal()"<<endl;}};class Dog:public Mammal{public:Dog(int itsage){age=itsage; cout<<"It is a dog."<<endl;} ~Dog(){ cout<<" ~Dog "<<endl;}int Dogage(){return age;}private:int age;};void main(){Dog mydog(5);mydog.Dogage();}7-7:#include<iostream.h>class BaseClass{public:BaseClass(){ cout <<"(1)构造基类对象!"<< endl;} };class DerivedClass : public BaseClass{public:DerivedClass(){ cout <<"(2)构造派生类对象!"<< endl;} };void main(){DerivedClass d;}7-8:#include<iostream.h>#include<string.h>class Document{public:Document(){};Document( char*name );char*Name; // Document name.void PrintNameOf(); // Print name. };Document::Document( char*name ) {Name =new char[ strlen( name ) + 1 ]; strcpy( Name, name );};void Document::PrintNameOf(){cout << Name << endl;}class Book : public Document{public:Book( char*name, long pagecount );void PrintNameOf();private:long PageCount;};Book::Book( char*name, long pagecount ):Document(name) {PageCount = pagecount;}void Book::PrintNameOf(){cout <<"Name of book: ";Document::PrintNameOf();}void main(){Document a("Document1"); Book b("Book1",100);b.PrintNameOf();}7-9:#include<iostream>using namespace std;class Base{public:int fn1() const{return 1; } int fn2() const{return 2; }};class Derived : private Base {public:int fn1() {return Base::fn1();};int fn2() {return Base::fn2();};};void main(){Derived a;a.fn1();}7-10:#include<iostream>using namespace std;class object{public:object(){ cout <<"构造object对象"<< endl;Weight = 0;} int GetWeight(){return Weight;}void SetWeight(int n){ Weight = n;}~object() { cout <<"析构object对象"<< endl;}private:int Weight;};class box : public object{public:box(){ cout <<"构造box对象"<< endl;Height = Width = 0;} int GetHeight(){return Height;}void SetHeight(int n){ Height = n;}int GetWidth(){return Width;}void SetWidth(int n){ Width = n;}~box() { cout <<"析构box对象"<< endl;}private:int Height,Width;};void main(){box a;7-11:#include<iostream>using namespace std;class BaseClass{public:void fn1(){ cout <<"调用基类的函数fn1()"<< endl;}void fn2(){ cout <<"调用基类的函数fn2()"<< endl;} };class DerivedClass : public BaseClass{public:void fn1(){ cout <<"调用派生类的函数fn1()"<< endl;} void fn2(){ cout <<"调用派生类的函数fn2()"<< endl;}};void main()DerivedClass aDerivedClass;DerivedClass *pDerivedClass =&aDerivedClass;BaseClass *pBaseClass =&aDerivedClass;aDerivedClass.fn1();aDerivedClass.fn2();pBaseClass->fn1();pBaseClass->fn2();pDerivedClass->fn1();pDerivedClass->fn2();}四、主要仪器设备及耗材PC机一台五、实验数据及处理结果a)结果为:b)结果为:c)结果为:d)结果为:e)结果为:f)结果为:g)结果为:六、参考资料C++语言程序设计(郑莉,董渊,张瑞丰编著);南昌大学实验报告八学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期实验成绩:一、实验项目名称C++多种情况的测试与编程二、实验目的1. 八种情况2. 7.5.3的例题测试3. 7.5.2的第一个例题测试三、实验基本原理和内容1.程序为:#include<iostream>using namespace std;void*pv;int*print;//void vobject,错误,不能声明void 类的型的变量;int i=5;void main(){char*name1="John";char s[]="abc";name1=s;//如果定义*name1='1',则会报错,不能改变name1 所指的对象;cout<<name1<<endl;char*const name2="John2";//如果name2="abc",错误,name2是指针常量,值不能改变;cout<<name2<<endl;pv=&i;print=(int*)pv;cout<<pv<<endl;}2.程序为:#include<iostream>using namespace std;class B0{public:B0(int n){ nV=n;cout<<"Member of B0."<<endl;}int nV;void fun(){ cout<<"Member of B0"<<endl;}};class B1:virtual public B0 //声明B0为虚基类,不会初始化; {public:B1(int a):B0(a){}int nV1;};class B2: public B0//声明B0不是虚基类,会初始化; {public:B2(int a):B0(a){}int nV2;};class D1:public B1,public B2{public:D1(int a):B0(a),B1(a),B2(a){}//因为B0为虚基类,所以只初始化一次;int nVd;void fund(){ cout<<"Member of D1"<<endl;}};void main(){cout<<"因为在B1中声明B0为虚基类,则不会初始化;\n";cout<<"在B2中声明B0不是虚基类,则会初始化.所以初始化情况为:\n";D1 d1(1);d1.nVd=2;cout<<"调用函数运行结果为:\n";d1.fund();}3.程序为:#include<iostream>using namespace std;class B0{public:void fun(){ cout<<"Member of BO"<<endl;} };class B1:virtual public B0{public:int nV1;};class B2:virtual public B0{public:int nV2;};class D1:public B1,public B2{public:int nVd;void fund(){ cout<<"Member of D1"<<endl;} };int main(){d1.nV=2;cout<<"定义与调用为:d1.nV=2,d1.fun()"<<endl;d1.fun();d1.B1::nV=2;//加上作用域限定符;cout<<"定义与调用为:d1.B1::fun(),d1.B1::fun()"<<endl;d1.B1::fun();//加上作用域限定符;cout<<"加上作用域限定符后,结果是一样的。

相关文档
最新文档