c语言上机基础.doc_第1页
c语言上机基础.doc_第2页
c语言上机基础.doc_第3页
c语言上机基础.doc_第4页
c语言上机基础.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计实验指导河北经贸大学信息技术学院软件教研室编2008年3月前言程序设计是一门实践性很强的课程,通过实验可以巩固和加强课堂教学内容,提高学生实际工作能力和动手能力,并为后续课程和从事实践技术工作奠定重要的基础。因此,学生在进行理论知识学习的同时,必须十分重视实践环节-上机。上机实验时应该一人一组,独立上机。在上机过程中出现的问题,一般应自己独立处理,学生应在实验前将教师指定的题目编好程序,然后上机输入和调试。上机前应事先作好准备工作,以提高上机实验的效率,准备工作至少应包括:(1) 复习和掌握与本实验有关的教学内容。(2) 准备好上机所需的程序。(3) 对运行中可能出现的问题应事先做出估计;对程序中有疑问的地方,应做上记号,以便上机时给予注意。(4) 准备好调试和运行时所需的数据。实验设备与环境:1、硬件配置PC兼容机或品牌机(内存不小于32MB,硬盘自由空间不少于60MB),配有彩色显示器、鼠标、键盘,。推荐配置为内存64MB(或以上),硬盘自由空间500MB以上。2、软件配置操作系统:Windows 98,Windows 2000,Windows NT4.0,Windows XP以上版本开发环境:Microsoft Visual C+ 6.0以上版本。本实验指导由赵宝琴编写,由于时间仓促和水平所限,其中难免有不当和欠妥之处,敬请各位读者批评指正。目录实验一 Visual C+ 6.0的基本用法1实验二 数据类型、运算符和表达式4实验三 三种基本结构的实现8实验四 数 组12实验五 指 针14实验六 函数15实验七 结构和联合18实验八 类与对象21实验九 综合实验25实验一 Visual C+ 6.0的基本用法一、实验目的 1 熟悉Visual C+ 6.0集成开发环境的基本命令和功能键。2 学习完整的C+ 程序开发过程。3 理解简单的C+ 程序结构。 二实验内容与步骤本次实验将学习有关Visual C+ 开发环境的一些知识,并尝试实现一个简单的DOS程序和Windows程序。通过本次实验,可以了解用Visual C+ 开发应用程序的全过程。1、熟悉Visual C+ 开发环境(1)启动Developer Studio,看看初始化界面由那些部分组成。(2)查看各级菜单项都有哪些命令。(3)将鼠标移到左边的工作区窗口,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?再将它拖到原来位置,有什么现象发生?(4)将鼠标移动到下边的输出窗口,按鼠标右键,弹出一个菜单,选择其中的菜单选项“Hide”,结果如何?要重新显示该窗口,选择菜单项“View”“output”,窗口是不是又显示出来了?(5)选择菜单项“File” “Exit”退出Developer Studio。2、控制台应用程序的建立用Appwizard建立一个控制台应用程序,在显示器上输出“Hello,World!”。(1)创建项目(project)首先创建一个项目,用来管理用户的应用程序。创建项目的步骤为: 启动Developer Studio。 从主菜单中选择菜单项“File” “New”,打开“New”对话框。 选择“Projects”标签,从项目列表中单击“Win32 Console Application”选项。在“project name”编辑框中键入项目的名字,如“hello”,系统将自动为用户的项目分配一个默认的目录。也可以在“Location”编辑框中重新输入项目存放路径。单击“OK”按钮继续。 如果是Visual C+6.0,系统将显示一个询问项目类型的程序向导,选择“an empty project”选项,单击“Finish”按钮,显示新建项目信息,单击“Ok”按钮,结束。(2)编辑源程序在项目中添加一个文件: 从主菜单中选择菜单项“File”“New”,打开“New”对话框。 在“New”对话框中选择“File”标签,单击“+ Source File”选项,建立源文件(扩展名为.cpp)。选中“Add to Project”复选框。在右边的“Filename”编辑框中为文件指定一个名字,如“Hello”,系统将自动加上后缀“.cpp”。这时在编辑窗口将自动打开一个新的空白文件,在文件中输入源程序。本例中输入以下内容:include void main()coutHello,everyone!endl;仔细检查输入的内容,确保内容正确。(3)保存源文件单击工具栏中的“save”图标,或选择菜单项“File”“Save”保存源文件。(4)编译源文件选择菜单项“Build”“Compile Hello.cpp”来编译源文件,如果输入的内容没有错误,那么,在屏幕下方的输出窗口将会显示:hello.obj-0 error(s),0 warning(s)如果在编译时得到错误或警告,则表明源文件出现错误,检查源文件,改正错误后再编译,直至无误。(5)链接程序选择菜单项“Build”“Build Hello.exe”链接程序,如果链接过程中没有错误,则在输出窗口会显示:hello.exe-0 error(s),0 warning(s)如果有错误,应改正,然后重复(4)、(5),直至无误。(6)运行程序选择菜单项“Build”“Execute Hello.exe”运行程序,将显示一个类似于DOS的窗口,在窗口中第一行输出 “hello, everyone!”,第二行输出“Press any key to continue”,提示用户按任意键回到开发环境。3、编写一个简单的C+ 程序要求:输入圆的半径,计算圆的周长和面积。步骤:(1) 按照上面的步骤创建一个项目,名字为“Circle”。(2) 在项目中增加一个文件,命名为“Circle.cpp”。(3) 在文件中输入源程序如下:#includeconst double PI = 3.14159; / 定义符号常量void main( )double radius; / 定义半径double perimeter, area ; / 定义周长和面积cout radius;perimeter = 2 * PI * radius; / 计算周长area = PI * radius * radius; / 计算面积cout圆的周长为: perimeter;coutn圆的面积为: areaendl;(4) 编译、链接程序,直到没有错误。(5) 运行程序,输入测试数据,测试程序的功能。测试数据:输入:5输出:圆的周长为: 31.4159圆的面积为: 78.5397输入:7输出:圆的周长为: 43.9823圆的面积为: 153.938思考问题:(1) 程序中为什么要包含头文件iostream.h?(2) 建立控制台应用程序的一般步骤是怎样的?实验二 数据类型、运算符和表达式一、实验目的1 掌握Visual C+ 基本数据类型的字节宽度和范围表示,熟悉如何定义一个整型、字符型和实型变量,以及对它们赋值的方法。2 掌握不同类型数据之间赋值的规律。3 学会使用C+的有关算术运算符,以及包含这些运算符的表达式,特别是自增(+)和自减()运算符的使用。4 进一步熟悉C+程序的编辑、编译、连接和运行的过程。二、实验内容与步骤1、基本数据类型的长度编写一个程序,输出基本数据类型char、short、int、long、float、double和指针类型void*、char*、short*、int*、long*、float*、double*的数据类型的长度。要求:弄清所使用的系统上运行的C+编译器中每个基本数据类型的长度。提示:利用运算符sizeof(数据类型名)来得到各个数据类型的长度。思考问题:为什么所有的指针长度都一样?2、整型、字符型变量的定义及赋值(1) 输入并调试运行下面的程序#include void main( ) char c1, c2; c1=a; c2=b; coutc1setw(5)c2endl; 运行此程序,写出执行结果。 在此基础上增加一个语句: cout(int)c1setw(5)(int)c2endl;再运行,并观察结果。 将第1行改为; int c1, c2;再运行,并观察结果。 再将第2、3行改为:c1= a; /不用单撇号c2= b; 再使之运行,分析其运行结果。 再将第2、3行改为:c1=”a”; / 用双撇号c2=”b”;再使之运行,分析其运行结果。 再将第2、3行改为:c1=300; /用大于255的整数c2=400;再使之运行,分析其运行结果。(2) 输入并调试运行下面的程序 #include void main( ) char c1=a, c2=b, c3=c, c4=101, c5= 116; cout c1c2”t”c3”t”c1c2c3endl; cout”tb”c4c5endl;要求:在实验前先分析程序,写出应得结果,实验时将二者对照。(3) 输入并调试运行下面的程序#include void main( ) short a , b;unsigned c, d;long e, f;a =100;b = -100;e = 50000;f = 32767;c = a;d = b;coutasetw(10)bendl;coutcsetw(10)dendl;coutesetw(10)fendl;c = a = e;d = b = f;coutasetw(10)bendl;coutcsetw(10)dendl;对照程序和运行结果分析; 将一个负整数赋给一个无符号的变量,会得到什么结果。画出它们在内存中的表示形式。 将一个大于32767的长整数赋给整型变量,会得到什么结果。画出它们在内存中的表示形式。 将一个长整数赋给无符号的变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。画出它们在内存中的表示形式。同学们可以改变程序中个变量的值,以便进行比较。例如:a=65580, b=-40000,e=65535, f=65580。 (4) 输入并调试运行下面的程序includevoid main( ) int x, y, m, n; x = 8; y = 10; m = +x; n = y+; coutxsetw(5)ysetw(5)msetw(5)nendl; 运行程序,注意x、y、m、n各变量的值。 将第4、5行改为: m = x+; n = +y;再运行。 将程序改为:#includevoid main( ) int x,y; x = 8; y = 10; coutx+setw(5)+yendl; 在的基础上,将cout语句改为:cout+xsetw(5)+yendl; 再将cout语句改为:coutxsetw(5)ysetw(5)x+setwy+endl; 将程序改为:#includevoid main ( ) int x, y, m=0, n=0; x = 8; y = 10; m += x+; n -= -y; coutxsetw(5)ysetw(5)msetw(5)nendl;写出程序的执行结果。实验三 三种基本结构的实现一、实验目的1、 学会正确使用逻辑运算符和逻辑表达式。2、 熟练掌握if语句和switch语句。3、 理解并掌握程序的循环结构。4、 熟练掌握用while语句、dowhile语句和for语句实现循环的方法。5、 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。6、 进一步学习调试程序。二、实验内容与步骤 1、已知三个数a、b、c,找出最大值放于max中。(1) 输入并调试运行下面的程序:#includevoid main()int a,b,c,max; /定义四个整型变量cinabc;if(a= b)max = a; /a=belsemax = b; /amax)max = c; /c是最大值coutmax=maxendl;(2) 若输入下列数据,分析程序的执行顺序并写出运行结果。 1 2 3 2 1 3 3 2 1 3 1 2 3 3 2 2 1 22、输入某学生的成绩,经处理后给出学生的等级,等级分类如下:90分以上(包括90):A80至90(包括80):B70至80(包括70):C60至70(包括60)D60分以下:E输入以下程序并调试运行。#includevoid main()float score;char grade;cout score;if ( score 100 )coutinput error!endl;elseswitch ( int(score)/10 )case 10:case 9:ch = A;break;case 8:ch = B;break;case 7:ch = C;break;case 6:ch = D;break;default:ch = E;coutthe student scort:chendl;输入测试数据,调试程序并写出结果。测试数据要覆盖所有路径,注意临界值,例如此题中的100分、60分、0分以及小于0和大于100的数据。3、有一函数: x ( x1 ) y = 2x-1 ( 1x10 ) 3x-11 ( x10 )用cin语句输入x的值,求y值。运行程序,输入x的值(分别为x1、1x10、x10三种情况),检查输出的y值是否正确。4、打印500以内的“水仙花数”。“水仙花数”是一个3位数,其各位数立方和等于该数本身。输入以下程序并调试运行#include void main() int i, j, k, n; for ( n = 100; n=500; n+ ) i = n/100 j = n/10-i*10 k = n%10 if ( n=i*i*i+j*j*j+k*k*k) coutnendl; 5、一个数如果恰好等于它的因子之和,这个数就称为完数。求500之内的所有完数。输入以下程序并调试程序。#include void main() int n, s, j;for ( n=1; n=500; n+ ) s=0; for ( j=1; jn; j+) if ( n%j=0 ) s=s+j; if ( s=n ) coutsendl; 6、任给一个的正整数,要求:(1) 求出它是几位数。(2) 按逆序打印出各位数字。例如原数为321,应输出123。(3) 除此之外,程序还应当对不合法的输入作必要的处理。例如:输入负数。 提示:利用 %、/ 运算符,循环迭代。7、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。提示:用数组统计个数。8、编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原工资的3倍的加班工资来计算。而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。要求:(1)分别用三种循环(for、while、do-while)完成程序要求。(2)要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以提示: “Pease input employees work time and wage-per-hour:”输出时,提示: “The employees wage:”(3)循环在用户输入的工作时间为0时结束。测试数据:输入:30 4输出:120输入:45 4.5输出:213.75输入:60 5输出:425输入:0 0程序结束思考问题:(1) if语句和switch语句适合于什么情况?(2) 三种循环语句都适合于什么情况?如果已经知道要计算的雇员的数目(如10个),用哪种循环更方便?(3) 能否用switch语句完成对输入值的判断?实验四 数 组一、实验目的1、 掌握一维数组和二维数组的定义、赋值和输入输出的方法。2、 掌握字符数组和字符串函数的使用。3、 掌握与数组有关的算法(特别是排序算法和查找算法)。二、实验内容与步骤1、输入一串字符,计算其中空格的个数。输入以下程序并调试运行。 #include void main( ) char c30; int i , sum=0; cinsetw(30)c; for ( i=0; ci!=0; i+ + ) if (ci = = ) sum=sum + 1; cout c endl; cout “空格数为:” sum high时,返回查找失败信息 /表空,查找失败(3)low=high,mid=(low+high)/2; /取中间 若kxelemmid,low=mid+1;转(2) /查找在右半区进行 若kx=elemmid,返回数据元素在表中位置 /查找成功测试数据:例如,有序表20,25,30,36,42,48,55,61,69,72,83,97程序先输出: 请输入一个整数:用户输入: 72程序则应输出: 数据72在有序表中的位置下标是10。用户输入: 35程序则应输出: 在有序表中无此数!4、将两个字符串链接起来。要求:不使用strcat函数。提示:定义两个字符型数组,找到第一个串的最后一个字符位置,将第二个串的字符依次放入。注意串的结束标志“0”。5、找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。提示:用cin语句从键盘输入数组各个元素的值,检查结果是否正确。题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需要准备典型的数据即可。如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用cin语句。请同学们修改程序以实现之。测试数据:(至少应当准备两组测试数据)(1)二维数组有鞍点 9 80 205 40 90 -60 96 1 210 -3 101 89(2)二维数组没有鞍点 9 80 105 40 90 -60 196 1 210 -3 101 89实验五 指 针 一、实验目的1、 掌握指针的概念,会定义和使用指针变量。2、 能正确使用数组的指针和指向数组的指针变量。3、 能正确使用字符串的指针和指向字符串的指针变量。4、 了解二级指针的概念及其使用方法。二、实验内容与步骤1、输入两个整数,按由大到小的顺序输出。输入以下程序并调试运行。#includevoid main() int a, b;int * p=&a, *q=&b, *t;coutab;if ( ab ) t=p;p=q;q=t;coutasetw(5)bendl;cout*psetw(5)*qendl;输入测试数据,分析运行结果。2、将若干字符串按英文字典由小到大排序。提示:利用字符指针数组存放若干字符串,字符串的比较和交换。3、有n个人围成一圈,从第一个人开始报数(从1到3),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。5、 编写程序,当输入整数112(月份号)时,输出该月的英文名称,输入其他整数时结束程序。例如,输入“4”,则应输出“April”。输入“0”,则退出程序,要求使用指针数组处理。6、使用动态内存分配技术设计一个计算学生平均成绩的程序,学生个数和课程门数是任意的,使用二维数组,程序按平均成绩从大到小输出每个学生的成绩。实验六 函数一、实验目的1、掌握函数的定义和调用方法。2、掌握函数实参与形参的对应关系以及C+的三种函数参数传递机制。3、掌握函数嵌套调用和递归调用的方法。4、掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法。二、实验内容与步骤1、写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。输入以下程序并调试运行。 #include#includeint prime(int number) int flag=1, n; for ( n=2; n int(sqrt(number) & flag = = 1; n+)if (number%n = =0)flag = 0;return flag; void main ( ) int number; coutnumber; if (prime(number) coutnumber”是素数.”endl; else coutnumber”不是素数.”endl;判断素数的算法,在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来 。这里要注意函数的定义 声明的方法和格式。 2、分析程序的运行结果输入下列程序,运行它,分析得到的结果。#includeint n=0;int func( int x=10 );void main()int a, b;a=5;b=func(a);cout”nlocal a=”aendl”local b=”bendl”global n=”n,endl;a+;b=func(a);cout”|nlcal a=”aendl”local b=”bendl”global n=”:nendl;func();int func( int x )int a=1;static int b=10;a+;b+;x+;n+;cout”nlocal a=”aendl”local b=”bendl”parameter x=”x=1并且n=r;(4) 注意整数能存放的数据范围有限,如何解决?提示:(1) 可以用double数据类型来存放函数的计算结果。(2) 递归结束条件:如果r=0,则C(n,r)=1;如果r=1, 则C(n,r)=n。 测试数据:输入:5 3输出:10输入:10 20输出:Iput Invalid1输出:50 3输出:19600输入:0 0程序结束思考问题:(1) 对各种数据类型的字长是否有了新的认识?(2) 递归函数的书写要点是什么?(3) 递归和非递归函数各有哪些好处?4、求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函数求最小公倍数。 要求: 两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再和两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。实验七 结构和联合一、实验目的1、 掌握结构体类型变量的定义和使用。2、 掌握结构数组的概念和使用。3、 掌握链表的概念,初步学会对链表进行操作。4、 掌握联合体的概念与应用。二、试验内容与步骤1、输入和运行以下程序。#includeunion data short int s2;float a;int b;char c4;u;void main()cinu.s0u.s1;couts0=u.s0s1u.s1endla=u.ab=u.bendlc0=u.c0c1=u.c1c2=u.c2c3=u.c3u.b;输入60000给b,分析运行结果。2、打印学生成绩单,内容包括学号、姓名、三门课(数学MT、英语EN、计算机COMPU)的成绩。计算每个学生三门课程的总分SUM和平均分AVER。若三门课成绩都在90分以上者,输出“Y”;否则输出“N”,并打印学生成绩单,格式如下:NUM NAME MTENCOMP SUMAVER=909501 Liu fan 95 9896.5289.596.5Y9502 Zhang hua 95 82 86.5263.587.8333N9503 Li ming 68 89 8524280.6667N输入以下程序并调试运行。#include struct studentint num;char *name;float score3;float sum;float aver;char ch;void main()student stu3;int i,j;for ( i=0; i stui.num;cin ;for ( j=0; j stui.scorej; for ( i=0; i3; i+ ) stui.sum=0; stui.ch=Y; for ( j=0; j3; j+ ) stui.sum +=stui.scorej;if (stui.scorej90)stui.ch=N; stui.aver=stui.sum/3.cout=90endl; for (i=0;i,3;i+) coutstui.numsetw(10) setw(10)stui.score0setw(10)stui.score1setw(10)stui.score2setw(10)stui.sumsetw(10)stui.aver setw(10)stui.chendl; 3、设计一个单向链表。从标准输入读取若干整数,建立链表,每次读入的数放入链表结尾。当用户输入0时,结束链表的建立工作。然后从前往后依次输出链表结点中的内容。提示:(1) 链表结点空间动态申请。(2) 因为每次新结点插入在表尾,所以应设一个指针总是指向当前的表尾。(3) 处理申请不到空间的情况。测试数据: 程序输出:请输入若干整数建立链表(输入0结束): 用户输入:1 2 3 4 5 6 7 0 程序输出:1 2 3 4 5 6 7思考问题: 如果是双向链表,程序要做哪些改动?4、有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课的平均成绩,以及最高分学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求:用input函数输入10个学生的数据;用average函数求平均分;用max函数找出最高分的学生数据;平均分和最高分学生的数据都在主函数中输出。5、建立一个链表,每个结点包括:学号、姓名、性别、年龄、。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。实验八 类与对象一、实验目的1、 掌握类和对象的定义和使用。2、 理解构造函数和析构函数的作用。3、 学习使用静态成员和内联成员函数。4、 掌握从现有类派生出新类的方式。 5、 了解基类成员在派生类中的访问控制。6、 了解虚函数对多态性的支持。二、实验内容与步骤1、构造函数和析构函数的调用。输入和运行以下程序。#includeclass A int *a;public: A(int x) a=new int(x); cout ”Constructor”*aendl;A() delete a; cout”Destructor!”endl; ;void main() A x(3),*p; p=new A(5); delete p;2、派生类构造函数和析构函数的调用。输入以下程序并调试运行。#includeclass A int a;public: A(int aa=0):a(aa) cout”Constructor A!”aendl; A() cout”Destructor A!”aendl; ;class B:public A int b;public: B(int aa,int bb):A(aa),b(bb) cout”Constructor B!”bendl; B() cout”Destructor B!”bendl; ;void main() B x(2,),y(4,5);3、多态性的实现。(1)输入以下程序并调试运行,分析其执行结果。#include/ 类Point的定义class Point public: Point( double i=0, double j=0 ) x=i, y=j; double area() / 返回点的面积 (0.0) return 0.0; private: double x,y; / 点的坐标;/ 类Circle的定义const double pi=3.14159;class Circle : public Pointpublic: Circle( double i=0, double j=0, double r=1 ) : Point( i,j ) radius=r; double area() /返回圆的面积 return pi*radius*radius; double getRadius() return radius; private: double radius;void main() Point p; cout点的面积为:p.area()endl; Circle c( 1, 1, 10 ); cout半径为 c.getRadius() 的圆的面积为c.area()endl; Point *pp; pp=&c; /基类指针指向派生类的对象 cout半径为 c.getRadius() 的圆的面积为 area()endl;(2)改写上面的程序,将成员函数area()定义为虚函数,分析其执行结果。思考:如何正确使用虚函数实现运行时的多态性?4、静态成员的使用。某商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时均以重量为单位,各箱的重量不一样,因此,商店需要记录下目前库存的货物的总重量,现要求用C+语言把商店货物购进和卖出的情况模拟出来。提示:(1) 应将这类货物用一个类(Goods)来描述,而每箱货物作为这个类的对象。每箱货物有重量,因此应有一个数据成员来表示这箱货物的重量,而总重量用一个静态数据成员来记录。(2) 在货物类的构造函数和析构函数中分别修改总重量。要求:(1) 提供静态成员函数GetTotalWeight,用来返回当前货物的总重量。(2) 下面是测试所设计类的主程序: #include#includegoods.h / 货物类的定义文件void main( ) cout开始时货物的总重量: Goods:GetTotalWeight( )endl;int w;coutw;Goods *g1=new Goods(w); / 购进一箱货物cout库存货物的总重量: Goods:GetTotalWeight( )endl;coutw;Goods *g2=new Goods(w); / 购进一箱货物cout库存货物的总重量: Goods:GetTotalWeight( )endl;delete g1; / 卖出一箱货物cout库存货物的总重量: Goods:GetTotalWeight( )endl; 输入测试数据,写出起执行结果。思考:(1) 在什么地方初始化类的静态数据成员?(2) 非静态成员函数能否访问静态数据成员?5、要求计算正方体、球和圆柱3个几何体的表面积和体积,请用C+语言定义类等级。提示:可以抽象出一个公共的基类Base,把它作为抽象类,在该类内定义求表面积和体积的纯虚函数(抽象类本身是没有表面积和体积可言的)。由这个抽象类派生出描述球、正方体和圆柱的3个具体类,在这3个类中都有计算表面积和体积的函数的自己版本。实验九 综合实验一、实验目的综合运用前面所学的各种知识,编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论