C++程序设计题_第1页
C++程序设计题_第2页
C++程序设计题_第3页
C++程序设计题_第4页
C++程序设计题_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、实 验 报 告课程名称 C+程序设计 专业班级 电子1241 姓 名 赫 思 远 学 号 1204451118 电气与信息学院和谐 勤奋 求是 创新实验教学考核和成绩评定办法1 课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。2 单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。3 实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为0.2 、0.4 、 0.4;原则上根据上述三个方面进行综合评定。学生未取得1)和2)项成绩时,第3)项

2、成绩无效。4 实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。实验成绩在教师手册中有记载。实验报告主要内容一 实验目的 二 实验仪器及设备三 实验原理四 实验步骤五 实验记录及原始记录六 数据处理及结论七 实验体会(可选项)注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事实、概念或理论)的实验。4.

3、 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。实验题目实验一 熟悉C+编程情况实验室电信机房实验时间2013 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、 实验目的1掌握Visual C+6.0集成开发环境的使用:进入和退出;菜单、工具栏的使用;用户窗口区的划分。2简单程序设计,掌握C+程序的基本结构,掌握C+基本数据类型与运算符,熟悉输入/输出方法。3. 掌握结构化程序设计、函数,学会使用指针、引用编程。二、 实验内容1熟悉Visual C+6.0的界面、

4、菜单及工具。2. 给定程序,编辑、编译、运行、调试程序。(1) 编程,求解一元二次方程ax2+bx+c=0的根。(2) 求和:s=a+aa+aaa+aaa,其中a是数字,a和n由键盘输入。三、编程分析及运行结果(1) 编程,求解一元二次方程ax2+bx+c=0的根。#include <iostream.h> #include <math.h>#define ESSP 0.00000001 void main() double a,b,c,s,x1,x2; cout<<"请输入a的值:" cin>>a; cout<<

5、"请输入b的值:"cin>>b;cout<<"请输入c的值:"cin>>c;s=b*b-4*a*c; if(s<ESSP) cout<<"此方程没有实根."<<endl; else if(s>ESSP) x1=(-b+sqrt(s)/(2*a); x2=(-b-sqrt(s)/(2*a); cout<<"此方程有两个不相等实根:"<<x1<<x2<<endl; else x1=-b/(2*a);

6、cout<<"此方程有两个相等实根:"<<x1<<endl; (2) 求和:s=a+aa+aaa+aaa,其中a是数字,a和n由键盘输入。#include<iostream.h>void main()int n,a,i,s,x;cin>>n;cin>>a;s=0;x=a;for(i=0;i<=n-1;i+)s=s+x;x=a*10+x;cout<<"the total is="<<s<<endl;四、解决方法及难点掌握Visual C+6.0

7、集成开发环境的使用:进入和退出;菜单、工具栏的使用;用户窗口区的划分和简单程序设计,掌握C+程序的基本结构,掌握C+基本数据类型与运算符,熟悉输入/输出方法。五、实验体会 通过这个实验使我明白了C+是更高一级的语言,它能编称更复杂的,C语言解决不了的。我们必须认真的学习C+这门学科,才能对C+有更深刻的了解。 实验题目实验二 利用函数编程实验室电信机房实验时间2013 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、 实验目的1熟练掌握函数的定义及调用,参数的传递,形参和实参的关系,变量的存储类型、作用域,全局变量与局部变量的比较。2掌握函数的嵌套调用、递归调用,内联函数、重载函数

8、、带默认参数函数的定义与使用。二、 实验内容1找出一个4列5行的二维数组的“鞍点”,即该位置上的元素在该行最大,在该列最小,也可能没有鞍点。2写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。3编写一个程序,含有名字相同的两个函数,第一个函数返回一个整数数组的平均值,另一个函数返回一个浮点数组的平均值。三、 编程分析及运行结果1找出一个4列5行的二维数组的“鞍点”,即该位置上的元素在该行最大,在该列最小,也可能没有鞍点。#include "stdlib.h"#include "time.h"#include <iomanip>

9、#include <iostream>using namespace std;int main(int argc, char* argv) int a54; int i,j,k,m,n; int flag=1;srand(time(NULL); for(i=0;i<5;i+) for(j=0;j<4;j+) aij=rand()%5; for(i=0;i<5;i+) for(j=0;j<4;j+) cout<<setw(4)<<aij; cout<<endl; for(i=0;i<5;i+) for(m=0,j=1;

10、j<4;j+) if(aim<aij) m=j; for(k=0;k<4;k+) if(aik=aim) for(n=i,j=0;j<5;j+) if(ank>ajk) n=j;break; if(n=i)flag=0; cout<<i+1<<"行"<<k+1<<"列"<<",鞍点元素:"<<aik<<endl; if(flag) cout<<"n没有鞍点。"<<endl; re

11、turn 0;2写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。#include<iostream.h>#include<math.h>int f(int a)int i,b;float k;k=sqrt(a);for(i=2;i<k;i+)b=a%i;if(b=0)break;if(i<=k)return 0;else return 1;void main()int a;cout<<"请输入一个整数a"<<endl;cin>>a;if(f(a)=1)cout<<a<

12、<"为素数"<<endl;else cout<<a<<"不是素数"<<endl;3编写一个程序,含有名字相同的两个函数,第一个函数返回一个整数数组的平均值,另一个函数返回一个浮点数组的平均值。#include <iostream>using namespace std;int GetSun(const int a,int size) int sum=0; for(int i=0;i<size;i+) sum+=ai; return sum/size;double GetSun(con

13、st double a,double size) double sum=0; for(int i=0;i<size;i+) sum+=ai; return sum/size;int main() double array=8,25,5; cout<<GetSun(array,3)<<endl; double array1=8.74,25.36,5.79; cout<<GetSun(array1,3)<<endl; return 0;四、解决方法及难点在面向过程的结构化程序设计方法中,函数是模块的基本单位。要想学好C+,首先就要掌握函数的定义

14、及调用,参数的传递,形参和实参的关系,变量的存储类型、作用域,全局变量与局部变量的比较。掌握函数的嵌套调用、递归调用,内联函数、重载函数、带默认参数函数的定义与使用。五、实验体会通过这个实验使我更好的理解和掌握函数的定义及调用,参数的传递,形参和实参的关系,变量的存储类型、作用域,全局变量与局部变量的比较。实验题目实验三 利用指针及引用的编程实验室电信机房实验时间2013 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、 实验目的1掌握指针的概念,会定义和使用指针变量。2掌握指针与数组的关系,指针与函数的关系,指针与字符串的关系。3掌握引用的定义及其使用方法。4注意指针和引用的区别

15、。二、实验内容1在主函数中输入10个等长的字符串,用另一函数对它们排序,然后在主函数输出这10个已排好的字符串,要求用指针编程。2. 编一程序,记录从键盘输入的字符串,计算字符串的长度,并用指针实现对字符串的逆向输出。3利用“引用形参”实现两个变量的值互换。三、编程分析及运行结果1 在主函数中输入10个等长的字符串,用另一函数对它们排序,然后在主函数输出这10个已排好的字符串,要求用指针编程。#include <iostream>#include <string.h>using namespace std;#define N 10 void change(char a,

16、char b)char t81;strcpy(t,a);strcpy(a,b);strcpy(b,t);void str_sort(char str81,int ln)int i,j;for(i=0;i<ln-1;i+) for(j=0;j<ln-1-i;j+) if(strcmp(*(str+j),*(str+j+1)>0) change(*(str+j),*(str+j+1);int main() int i; char sN81; /printf("请输入%d个字符串:n",N); cout<<"请输入N个字符串:"&

17、lt;<endl; for(i=0;i<N;i+) gets(*(s+i); /输入字符串 str_sort(s,N); /调用函数str_sort()排序 cout<<"从小到大排序:"<<endl; for(i=0;i<N;i+) printf("(%d) ",i+1);/显示顺序号 puts(*(s+i); /排序后输出 return 0;2. 编一程序,记录从键盘输入的字符串,计算字符串的长度,并用指针实现对字符串的逆向输出。#include <iostream>using namespace

18、 std;int main()char *p=new char;cin>>p;cout<<"字符串长度是:"<<strlen(p)<<endl;for(int i=strlen(p)-1;i>=0;i-) cout<<*(p+i);cout<<endl; return 0;3. 利用“引用形参”实现两个变量的值互换。#include <iostream>using namespace std;void Change(int &a,int &b) int c=a; a=b

19、; b=c;int main() int p1=8; int p2=14; Change(p1,p2); cout<<"p1="<<p1<<" ,p2="<<p2; cout<<endl; return 0;四、解决方法及难点 利用指针及可以直接对内存中的各不同数据结构的数据进行有效快速地处理,也可以为函数间各种数据的传递提供了简洁的,便利的方法。难点要掌握指针的概念,会定义和使用指针变量。掌握指针与数组的关系,指针与函数的关系,指针与字符串的关系。掌握引用的定义及其使用方法。五、实验体会通过这

20、个实验使我初步掌握在C+中指针的一些用法,通过实践环节又掌握了定义和使用指针变量。掌握指针与数组的关系,指针与函数的关系,指针与字符串的关系。掌握引用的定义及其使用方法。实验题目实验四 类与对象的编程实验室电信机房实验时间2013 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、 实验目的1掌握类与对象的定义,类和类成员的概念及对象的使用方法。2学习类与对象的声明。3学习数据成员与成员函数的访问方式。4初步掌握用类和对象编制基于对象的程序。二、实验内容1 修改一个类,注意其中的成员访问权限,进行对比。有以下程序:#include <iostream.h>class Ti

21、mepublic: int hour; int minute; int sec;void main() Time t1; cin>>t1.hour; cin>>t1.minute; cin>>t1.sec; cout<<t1.hour<<“;”<< t1.minute<<“;”<< t1.sec<<endl;改写程序,要求:1)将数据成员改为私有的;2)将输入和输出的功能改为由成员函数实现;3)在类体内定义成员函数。然后编译和运行程序。请分析什么成员应指定为公有的?什么成员应指定为私有的

22、?什么函数最好放在类中定义?什么函数最好在类外定义?2. 求3个长方体的体积,请编一个基于对象的程序。数据成员包括length(长)、width(宽)、height(高),要求用成员函数实现以下功能:1)由键盘分别输入3个长方体的长、宽、高;2)计算长方体的体积;3)输出3个长方体的体积。三、编程分析及运行结果1#include <iostream>using namespace std;class Time public : void SetTime() cout<<"请输入小时 分 秒"<<endl; cin>>hour&

23、gt;>minute>>sec; bool GetTime() if(sec=NULL) return false; else cout<<hour<<"点"<<minute<<"分"<<sec<<"秒"<<endl; return true; private: int hour; int minute; int sec; ; int main() Time t; t.SetTime(); t.GetTime(); return 0;

24、 2. 求3个长方体的体积,请编一个基于对象的程序。数据成员包括length(长)、width(宽)、height(高),要求用成员函数实现以下功能:1)由键盘分别输入3个长方体的长、宽、高;2)计算长方体的体积;3)输出3个长方体的体积。#include <iostream>using namespace std;class Rectpublic : void SetNum() cout<<"请输入长 宽 高"<<endl; cin>>length>>width>>height;cin>>

25、length>>width>>height;cin>>length>>width>>height; int GetArea() return length*width*height; void Three() cout<<"这3个长方体的体积分别为"<<endl; cout<<length*width*height<<" "<<length* width *height<<" "<< leng

26、th *width*height<<endl; private: int length; int width; int height; ; int main() Rect r; r.SetNum(); r.Three(); return 0; 四、解决方法及难点类是面向对象程序设计的核心和基础,是C+面向对象方法的重要概念,它是对一组具有共同特征的对象的抽象和统一的描述。难点掌握类与对象的定义,类和类成员的概念及对象的使用方法。学习类与对象的声明。学习数据成员与成员函数的访问方式。五、实验体会通过这个实验使我加深和巩固了类与对象的定义,类和类成员的概念及对象的使用方法。学习类与对象

27、的声明。学习数据成员与成员函数的访问方式。实验题目实验五 构造函数与析构函数的编程实验室电信机房实验时间2013 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、 实验目的1进一步加深对类和对象的理解。2掌握类的构造函数和析构函数的概念、意义和使用方法。3掌握重载构造函数的含义和使用。4编写一个较为复杂的类和对象的应用程序。二、实验内容1设计一个程序,定义一个矩形类,包括数据成员和函数成员。要求有构造函数、析构函数,还有一个成员函数area( )用来计算并显示矩形的面积,并编写main函数进行测试。Class Rectpublic: int Area_int(); Rect(int

28、 l, int w); Rect(); private: int nLength; int nWidth; ;2重载构造函数。修改上题,一种构造函数用整型变量记录矩形的长和宽,另一种构造函数用double型记录矩形的长和宽,然后完成成员函数及主函数。Class Rectpublic: int Area_int(); double Area_double(); Rect(double l, double w); Rect(int l, int w); Rect(); private: int nLength; int nWidth; double mLength; double mWidth;3

29、构造一个类countstr,要求用构造函数设置计数器count的初始值为0,成员函数countchar()不返回任何值,它要求用户输入一段文字,按Enter键后结束计算,用count记录输入的字符数,成员函数getchar()返回count的整数值。三、编程分析及运行结果1.#include<iostream.h>class Rectpublic: int Area();Rect(int l,int w);Rect();private: int nLength; int nWidth;Rect:Rect(int l,int w) nLength=l; nWidth=w;cout&l

30、t;<"nLength="<<nLength<<",nWidth="<<nWidth<<endl;Rect:Rect()cout<<"nLength="<<nLength<<",nWidth="<<nWidth<<endl;int Rect:Area()int s; s=nLength*nWidth; return s;int main()Rect A(10,30); Rect B(20,40);cou

31、t<<"A="<<A.Area()<<endl; cout<<"B="<<B.Area()<<endl; 2. #include<iostream.h>class Rectpublic: int Area_int(); double Area_double (); Rect(double l, double w); Rect(int l, int w); Rect(); private: int nLength; int nWidth; double mLength; d

32、ouble mWidth;Rect:Rect(double l,double w)mLength=l; mWidth=w;cout<<"mLength="<<mLength<<",mWidth="<<mWidth<<endl; double Rect:Area_double ()double s;s=mLength*mWidth;return (s);Rect:Rect(int l,int w) nLength=l; nWidth=w;cout<<"nLength=&quo

33、t;<<nLength<<",nWidth="<<nWidth<<endl;Rect:Rect()cout<<"mLength="<<mLength<<",mWidth="<<mWidth<<endl; cout<<"nLength="<<nLength<<",nWidth="<<nWidth<<endl;int Rect:Are

34、a_int () int s; s=nLength*nWidth;return s;void main() Rect A(10,30);Rect B(20.8,40.6);cout<<"A="<<A.Area_int ()<<endl;cout<<"B="<<B.Area_double()<<endl; 四、解决方法及难点 构造函数是特殊的成员函数,函数体可写在类中,也可写在类外。析构函数是成员函数,函数体可写在类中,也可写在类外。五、实验体会 通过这个实验使我明白了构造函数和析构函

35、数的原理和方法。也对我今后的运用有了更加深刻的体会。使我明白了在C+的学习中必须努力,刻苦。实验题目实验六 利用友元编程实验室电信机房实验时间 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、实验目的1掌握友元函数和友元类的概念、定义和作用。2会使用友元编程。3进一步学习内存空间动态分配和释放的方法。二、实验内容1有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法运算。2定义一个由y=ax+b确定的直线类Line,该类的构造函数初始化直线,成员函数Print显示该直线方程,友元函数SetPoint()求解两条直线的交点。3. 下列程序是

36、有关友元类的,程序中将A类声明为B类的友元类,A类中所有的成员函数都是B类的友元函数,请给程序填空。 #inlcude <iostream.h> class B; class A private: int x; public: A(int xx)x=xx; int Set(B&); int Get()return x; ; class B private: int x; public: B(int xx) friend ;int A:Set( ) return x=b.x;void main() A a(10); B b(20); cout<<a.Get()&l

37、t;<endl; a.Set(b); cout<<a.Get()<<endl; 三、编程分析及运行结果1有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法运算。#include<iostream.h>class Vectorpublic:Vector(double a,double b);friend void minus(Vector &p1,Vector &p2);friend void plus(Vector &p1,Vector &p2);private:double

38、 x,y;Vector:Vector(double a,double b)x=a,y=b;void plus(Vector &p1,Vector &p2)double c,d;c=p1.x+p2.x;d=p1.y+p2.y;cout<<"向量的加法:"<<endl;cout<<"("<<c<<" ,"<<d<<")"<<endl;void minus (Vector &p1,Vector &

39、;p2)double c,d;c=p1.x-p2.x;d=p1.y-p2.y;cout<<"向量的减法:"<<endl;cout<<"("<<c<<" ,"<<d<<")"<<endl;void main()double a,b,c,d;cout<<"请输入A向量的坐标:"<<endl;cin>>a>>b;cout<<"请输入B向量

40、的坐标:"<<endl;cin>>c>>d;Vector p1(a,b),p2(c,d);plus(p1,p2);minus(p1,p2);2定义一个由y=ax+b确定的直线类Line,该类的构造函数初始化直线,成员函数Print显示该直线方程,友元函数SetPoint()求解两条直线的交点。3. 下列程序是有关友元类的,程序中将A类声明为B类的友元类,A类中所有的成员函数都是B类的友元函数,请给程序填空。#include <iostream.h> class B; class A private: int x; public: A(i

41、nt xx)x=xx; int Set(B&); int Get()return x; ; class B private: int x; public: B(int xx)x=xx; friend A ; ;int A:Set( B&b ) return x=b.x;void main() A a(15); B b(30); cout<<a.Get()<<endl; a.Set(b); cout<<a.Get()<<endl; 四、解决方法及难点友元是C+中一个重要的概念,它可以避免频繁调用类的接口函数,既提高了程序的运行速度,

42、也提高了程序的运行效率,友元关系具有非对称性和掩蔽性。所以在C+编程中当用到上述性质时使用友元就显得非常的方便和快捷。五、实验体会通过这次试验,使我对友元有了初步的认识。友元不仅避免频繁调用类的接口函数,还高了程序的运行速度,也提高了程序的运行效率。对我的实践和操作都有了一定的提高。也使我对友元的基本程序有了一定的了解。实验题目实验七 继承与派生的编程实验室电信机房实验时间 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、实验目的1了解继承在面向对象程序设计中的重要作用。2理解继承与派生的概念,掌握单继承和多继承的定义方法。3熟悉公有派生和私有派生的访问特性。4掌握继承中基类和派生

43、类的构造函数定义和调用过程。5了解虚基类的作用和用法,会使用虚基类,学习虚基类在解决二义性问题中的作用。二、实验内容1有以下程序,请完成下面的工作:1)阅读程序,写出运行后的输出结果;2)然后上机运行,验证结果是否正确;3)分析程序执行过程,尤其是调用构造函数和析构函数的过程。#include <iostream.h>class Apublic: A()cout<<“constructing A”<<endl; A()cout<<“destructing A”<<endl;class B:public Apublic: B()cout

44、<<“constructing B”<<endl; B()cout<<“destructing B”<<endl;class C:public Bpublic: C()cout<<“constructing C”<<endl; C()cout<<“destructing C”<<endl;void main() C c1; 2定义一个Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area( )。编写一个完整程序进行测试。3. 定义并描述一个人员类Person,它派生

45、出学生类Student和教师类Teacher, 学生类和教师类共同派生出在职读书的教师类Stu_Tech。人员类有姓名、性别、身份证号、出生年月等信息;学生类有学号、成绩等信息;教师类有职务、职称等信息。编写一个完整程序进行测试。三、编程分析及运行结果1有以下程序,请完成下面的工作:1)阅读程序,写出运行后的输出结果;2)然后上机运行,验证结果是否正确;3)分析程序执行过程,尤其是调用构造函数和析构函数的过程。#include <iostream.h>class Apublic: A()cout<<"constructing A"<<en

46、dl; A()cout<<"destructing A"<<endl;class B:public Apublic: B()cout<<"constructing B"<<endl; B()cout<<"destructing B"<<endl;class C:public Bpublic: C()cout<<"constructing C"<<endl; C()cout<<"destructing

47、 C"<<endl;void main() C c1; 2定义一个Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area( )。编写一个完整程序进行测试。#include<iostream.h>#define PI 3.14;class pointpublic: void initpoint(float pointx=0,float pointy=0) p1x=pointx;p1y=pointy; private:float p1x,p1y;class circle:public pointpublic:void initci

48、rcle(float p1x,float p1y,float radius) initpoint(p1x,p1y); R=radius;float getradius() return R;double area() return R*R*PI;protected:float R;class rectangle:public pointpublic:void initrect(float p1x,float p1y,float rect_h,float rect_w)initpoint(p1x,p1y); High=rect_h;Wide=rect_w;float gethigh() retu

49、rn High;float getwide()return Wide;float area() return Wide*High;protected:float High;float Wide;void main()float a,b,c,d; circle c1; cout<<"请输入圆的圆心(,),半径(R):"<<endl; cin>>a>>b>>c; c1.initcircle(a,b,c); cout<<"面积为:"<<c1.area()<<endl

50、; cout<<"键盘录入四边形长和宽:"<<endl; cin>>a>>b; rectangle c2; c2.initrect(0,0,a,b); cout<<"面积为:"<<c2.area()<<""<<endl;3. 定义并描述一个人员类Person,它派生出学生类Student和教师类Teacher, 学生类和教师类共同派生出在职读书的教师类Stu_Tech。人员类有姓名、性别、身份证号、出生年月等信息;学生类有学号、成绩等信息;

51、教师类有职务、职称等信息。编写一个完整程序进行测试。#include<iostream.h>#include<string.h>class personpublic: person( char *name,char *sex,char *id,char *birth) strcpy(Name,name); strcpy(Sex,sex); strcpy(ID,id); strcpy(Birth,birth); void print();private:char Name10;char Sex10;char ID20;char Birth20;class Student:

52、public personpublic:Student(char *xuehao,int chengji,char *name,char *sex,char *id,char *birth):person( name,sex,id,birth)strcpy(Xuehao,xuehao); Chengji=chengji;void prints();private: char Xuehao12; int Chengji;class Teacher:public personpublic:Teacher( char *name,char *sex,char *id,char *birth,char

53、 *ziwu,char *zich) :person(name,sex,id,birth)strcpy(Ziwu,ziwu); strcpy(Zich,zich);void printt();private: char Ziwu20; char Zich10;void person:print() cout<<"此人信息为:"<<endl; cout<<Name<<endl<<Sex<<endl<<ID<<endl<<Birth<<endl;void St

54、udent:prints()print(); cout<<Xuehao<<endl<<Chengji<<endl;void Teacher:printt()print(); cout<<Ziwu<<endl<<Zich<<endl;void main() Student s1("9876543",35,"hesiyuan","nan","1234567891011","19901026"); Teac

55、her t1("yanwenzheng","nan","1004451216","19910323","teacher","teach"); s1.prints();四、解决方法及难点继承与派生在c语言中是没有的,我们必须得弄明白它的意义和用法。了解继承在面向对象程序设计中的重要作用。理解继承与派生的概念,掌握单继承和多继承的定义方法。熟悉公有派生和私有派生的访问特性。掌握继承中基类和派生类的构造函数定义和调用过程。五、实验体会通过这次实验,我知道了继承与派生的实际用法,同时

56、也学会了派生类的构造函数定义和调用过程。并且也增强了我的动手操作能力,也对继承与派生有了更深的理解。实验题目实验八 利用虚函数编程实验室电信机房实验时间 年 月 日 实验类别验证同组人数1 成 绩指导教师签字:一、实验目的1了解多态性的概念和虚函数的作用及使用方法。2了解静态关联和动态关联的概念和用法。3了解纯虚函数和抽象类的概念和用法。4学习使用虚函数的继承实现动态关联。5学习理解静态数据成员和静态成员函数的使用。二、实验内容1事先阅读程序,给出其运行结果,上机验证虚函数的作用。 有如下程序: #include <iostream.h> #include <string.h

57、>class Student /定义基类public: Student(int,string,float); void display(); /声明输出函数 protected: /受保护成员,派生类可访问int num;string name;float score; ;Student :Student(int n,string nam,float s)num=n;name=nam;score=s;void Student:display()cout<<num:<<num<<nname:<<name<<nscore:<&

58、lt;score<<endl<<endl;class Graduate:public Student /声明公有派生类public: Graduate(int,string,float,flaot); void display(); /声明输出函数 private: float pay;Graduate:Graduate(int n,string nam,float s,flaot p):Student(n,nam,s),pay(p)void Graduate:display()cout<<<num:<<num<<nname:<<name<<nscore:<<score<<npay=:<<pay<&

温馨提示

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

评论

0/150

提交评论