2009面向对象程序设计实验报告
更新时间:2024-04-19 22:10:01 阅读量: 综合文库 文档下载
面向对象(C++)程序设计实验1
实验名称: 类和对象的定义
实验学时: 2学时
实验目的:
熟练掌握C++中类和对象的基本概念。熟练掌握类和对象的定义方法。
实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1.编写程序,定义一个Person类,数据成员有:name[]、age、sex、score;成员函数有display(),并定义两个Person类的对象,要求将两个对象的name[]、age、sex、score 值通过display()函数显示出来。 写出实验报告,并分析结果。 注意事项:
实验中注意数组的赋值问题。
面向对象(C++)程序设计实验2
实验名称:
构造函数和析构函数 实验学时: 2学时 实验目的:
熟练掌握C++中构造函数和析构函数的基本概念。熟练掌握构造函数和析构函数在程序中的使用方法。 实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1.编写程序,定义一个Person类,数据成员有:name[]、age、sex、score;成员函数有display(),并定义两个Person类的对象,将两个对象的name[]、age、sex、score 值通过display()函数显示出来。要求用构造函数对数据成员初始化,并用析构函数表示两个对象的消失。
写出实验报告,并分析结果。
注意事项:
实验中注意构造函数与析构函数的特点。
面向对象(C++)程序设计实验3
实验名称:
引用和复制构造函数 实验学时: 2学时 实验目的:
熟练掌握C++中引用的基本概念和用法。熟练掌握复制构造函数在程序中的运用。 实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1. 编写程序:使用两个参数(一个引用参数,一个传值参数),在函数调用中使两个形参值各扩大10倍,输出各形参和实参值,并分析输出结果。 2. 完善下列程序: #include
TP(int x,int y){X=x;Y=y;} TP(TP &p);
~TP(){cout<<\构造函数被调用!\\n\
int dispX(){return X;} int dispY(){return Y;}
private: }; void main() {TP P1(5,7); TP P2(P1);
cout<<\}
在复制构造函数中要输出两个私有成员的值及“复制构造函数被调用!”字样,并分析输出结果。 int X,Y;
面向对象(C++)程序设计实验4
实验名称: 成员函数的重载 实验学时: 2学时 实验目的:
熟练掌握C++中成员函数重载在程序中的运用。 实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1. 编写程序,类中设2个私有成员,设置3个重载的成员函数Add(),使用参数个数不同进行重载,其中一个无参数,一个带一个参数,一个带两个参数,3个重载函数最终都返回类中两个私有成员的和值。 并分析输出结果。
提示:须定义两个重载的构造函数。
面向对象(C++)程序设计实验5
实验名称: 静态成员 实验学时: 2学时 实验目的:
熟练掌握C++中静态成员(静态数据成员和静态成员函数)的基本概念及在程序中的运用。 实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1. 分析下列程序的输出结果 #include
M(int a,int b,int c); void GetNumber(); void GetSum(); private: int A,B,C; static int Sum;
};
int M::Sum=0;
M::M(int a,int b,int c) { A=a; B=b; C=c; Sum+=A+B+C; }
void M::GetNumber() {
cout<<\}
void M::GetSum() {
cout<<\}
void main() {
M E(2,4,6),F(1,3,5); E.GetNumber(); F.GetNumber();
E.GetSum(); F.GetSum(); }
写出详细的分析结果。 2. 完善下列程序: #include
Sample(int a){A=a;B+=a;}; };
int Sample::B=2; void main() {Sample A(2),B(4); Sample::disp(A); Sample::disp(B); }
要求在静态成员函数中能分别输出两个数据成员A和B的值。
面向对象(C++)程序设计实验6
实验名称: 友元 实验学时: 2学时 实验目的:
熟练掌握C++中友元的基本概念。熟练掌握友元在程序中的运用。 实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1. 阅读下列程序,找出程序中的错误,并说明错误原因。 #include
char ch1,ch2; public:
friend void set(Sample &s,char); };
void set(Sample &s,char c) {
s.ch1=c;
}
void set(Sample &s,char c1,char c2) {
s.ch1=c1; s.ch2=c2; }
void main() {
Sample obj; set(obj,5); set(obj,7,9); }
2. 编写一个程序,设计一个类Trig,给定三角形的三条边长x、y、z,包含一个友元函数计算两个三角形面积之和。 提示:(1)注意判断是否构成三角形 (2)三角形的面积公式:
sqrt(d*(d-x)*(d-y)*(d-z)) 其中: d=(x+y+z)/2 (3)包含一个头文件“math.h”
面向对象(C++)程序设计实验7
实验名称: 运算符重载 实验学时:2学时
实验目的: 熟练掌握C++中运算符重载的基本概念。掌握程序中运算符重载的使用方法。 实验要求:
在VC++运行环境下,参考教科书中的示例程序,完成下列操作:
1.分析下列程序的输出结果。 #include
{int h;int m;int s; public:
clock operator+(clock&); void display(); clock(int,int,int); clock(clock &);};
clock::clock(int x,int y,int z) {h=x;m=y;s=z;} clock::clock(clock &c) {h=c.h; m=c.m; s=c.s;} void clock::display()
cout< clock clock::operator +(clock &c) {clock clk=*this;int cs=0,cm=0; clk.s+=c.s; cs=clk.s/60; clk.s%=60; clk.m+=cs+c.m; cm=clk.m/60;clk.m%=60; clk.h+=cm+c.h;clk.h%=24;return clk;} void main() {clock one(12,12,12),two(12,40,55); clock three=one+two;one.display(); cout<<\ cout<<\写出详细分析报告。 1. 编写程序,用“-”运算符重载,实现两个对象私有成员差值的计算。并输出结果。 面向对象(C++)程序设计实验8 实验名称: 基类和派生类 实验学时:2学时 实验目的: 熟练掌握C++中基类和派生类的基本概念。熟练掌握C++中基类和派生类在C++中的运用。 实验要求: 1. 分析程序,回答下列问题: #include class B:public A { public: void f2(); protected: int j2; private: int i2; }; class C:public B { public: void f3(); }; (1) 派生类B中成员函数f2()能否访问基类A中的成员: f1(),i1和j1呢? (2) 派生类B的对象b1能否访问基类A中的成员: f1(),i1和j1呢? (3) 派生类C中成员函数f3()能否访问直接基类B中的 成员:f2()和j2呢?能否访问间接基类A中的成员函数f1(),j1和i1呢? (4) 派生类C的对象c1能否访问直接基类B中的成员: f2(),i2和j2呢?能否访问间接基类A中的成员:f1(),j1,i1呢? (5) 从对(1)~(4)问题的回答可得出对公有继承的什 么结论? (6) 将该程序中的两处继承方式的public改为private 又将如何回答上述各问题? 面向对象(C++)程序设计实验9 实验名称: 单继承 实验学时:2学时 实验目的: 熟练掌握C++中继承的基本概念。熟练掌握单继承在C++中的运用。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1.分析下列程序的输出结果 #include void print(){cout< B(int i,int j,int k):A(i),b1(j),b2(k){} void print(){A::print();cout< private: int b1,b2;}; void main() { B d1; B d2(5); B d3(4,5,6); d1.print(); d2.print(); d3.print();} 写出详细的分析报告。并写出输出结果。 2. 编写一个单继承程序。 要求:基类名为XS,派生类名为BGB,基类中有私有成员:name,sex,分别是:姓名,性别。有公有成员:基类的构造函数、disp()函数,其中,构造函数用于初始化基类的私有成员,disp()函数用于显示四个私有成员的值。派生类有私有成员:rz,表示“任职”;公有成员有:构造函数用于初始化私有成员,disp()函数用于显示派生类对象的各成员值(包括:姓名,性别,任职)。 面向对象(C++)程序设计实验10 实验名称: 多继承 实验学时:2学时 实验目的: 熟练掌握C++中继承的基本概念。熟练掌握多继承在C++中的运用。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1.分析下列程序的输出结果 #include cout<<\} void print(){cout< cout<<\} void print(){cout< cout<<\ } int getb3(){return b3;} private: int b3; }; class A:public B2,public B1 {public: A(int i,int j,int k,int l):B1(i),B2(j),bb(k) { a=l; cout<<\ void print() { B1::print(); B2::print(); cout< void main() { A aa(1,2,3,4); aa.print(); } 写出详细分析结果。并写出输出结果。 面向对象(C++)程序设计实验11 实验名称: 虚基类 实验学时:2学时 实验目的: 熟练掌握C++中虚基类定义及应用。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1.分析下列程序的输出结果 #include A(const char *s){cout< class B:virtual public A { public: B(const char *s1,const char *s2):A(s1) { cout< class C:virtual public A { public: C(const char *s1,const char *s2):A(s1) { cout< class D:public B,public C { public: D(const char *s1,const char *s2,const char *s3,const char *s4):B(s1,s2),C(s1,s3),A(s1) { cout< void main() { D *ptr=new D(\D\ delete ptr; } 写出详细分析结果。并写出输出结果。 面向对象(C++)程序设计实验12 实验名称: 多态性和虚函数 实验学时:2学时 实验目的: 熟练掌握C++中虚函数定义及应用。掌握纯虚函数和抽象类的基本概念及应用。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1.用多态性和虚函数的知识,编写程序,计算点的面积和圆的面积。 面向对象(C++)程序设计实验13 实验名称: 流 实验学时:2学时 实验目的:掌握C++中流的概念,掌握输入流、输出流的使用方法。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1. 分析下列程序的输出结果: #include cout.fill('*'); cout.width(10); cout<<123.45< } 写出详细分析结果。并写出输出结果。 2. 编写程序,在一行中以至少10个字符宽度按右对齐方式输出字符串。 3. 分析下列程序的输出结果 #include char ch; cout<<\输入字符串\ while((ch=cin.get())!=EOF) cout.put(ch); cout<<\!\} 提示:EOF是一个符号常量,它的值是-1,包含在iostream.h文件中。输入ctrl+z后退出程序。 面向对象(C++)程序设计实验14 实验名称: 文件 实验学时:2学时 实验目的:掌握C++中文件的基本概念,掌握文本文件、二进制文件的读写方法。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1. 分析下列程序的输出结果 #include fstream outfile,infile; outfile.open(\if(!outfile) { } cout<<\ } outfile<<\outfile<<\outfile<<\outfile.close(); infile.open(\if(!infile) { } char textline[80]; int i=0; while(!infile.eof()) { } infile.close(); i++; infile.getline(textline,sizeof(textline)); cout< 写出详细分析结果。并写出输出结果。 2. 分析下列程序的输出结果 #include char ch; fstream file; file.open(\ if(!file) {cout<<\文件不能打开\ } file<<\ file.seekg(0,ios::beg); while(!file.eof()) { streampos here=file.tellg(); file.get (ch); if(ch==' ') cout< cout< 写出详细分析结果。并写出输出结果。 面向对象(C++)程序设计实验15 实验名称: 文件 实验学时:2学时 实验目的:掌握C++中文件的基本概念,掌握文件的随机读写方法。 实验要求:在VC++运行环境下,参考教科书中的示例程序,完成下列操作: 1. 分析下列程序的输出结果 #include struct student { char name[20]; long number; double totalscord; }stu[5]={\ Yan\ dl; dl; } 写出详细分析结果。并写出输出结果。 file1.close(); file1.seekp(sizeof(student)*1); file1.read((char *)&one,sizeof(stu[i])); cout< file1.open(\if(!file1) { } for(int i=0;i<5;i++) file1.write((char *) &stu[i],sizeof(student)); file1.seekp(sizeof(student)*4); file1.read((char *)&one,sizeof(stu[i])); cout< }stu[5]={\ Yan\ dl; dl; } 写出详细分析结果。并写出输出结果。 file1.close(); file1.seekp(sizeof(student)*1); file1.read((char *)&one,sizeof(stu[i])); cout< file1.open(\if(!file1) { } for(int i=0;i<5;i++) file1.write((char *) &stu[i],sizeof(student)); file1.seekp(sizeof(student)*4); file1.read((char *)&one,sizeof(stu[i])); cout<
正在阅读:
2009面向对象程序设计实验报告04-19
项目评估课程设计07-08
劳动竞赛优秀组织个人材料10-28
工业自动化检测电仪的安装与维护12-12
陈家璧版_光学信息技术原理及应用习题解答(8-11章)05-11
地震监测中心2021年度工作计划08-22
东晖社区“巾帼文明岗”xx年度工作计划12-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 面向
- 对象
- 实验
- 报告
- 2009
- 三年级语文下册第11单元关爱达标测试卷B卷版
- C语言50小程序
- 波段交易文华财经指标(源码)
- 精细化管理在公路建设项目施工中的应用
- 2018-2019年最新湖南长沙麓山国际实验学校初升高自主
- 中级汽车修理工试题4(含答案)
- 八年级历史下学期第七周校际联考试题
- 平坝县“十二五”个人学习心得(新方法)
- Bentham Science出版社电子期刊列表
- 中国stn行业市场调查研究报告(目录)
- 实验2 SAS模拟AR模型
- 光缆施工验收规范
- 原状土试样的采取方法
- 信息技术与学科教学深度融合实施方案
- 板块模型
- 2.1.2 系统抽样知识点试题及答案
- 第05章 合并财务报表20100919
- 厉以宁:未来五年中国经济和世界经济会是怎样的
- 教大家一个唱歌的方法
- 杭州市美容院名录2018版638家 - 图文