




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+面向对象程序设计课程实验指导书编 号:课程总学时: 32 实验学时: 16课程总学分: 实验学分:先修课程:C语言程序设计适用专业:计算机科学与技术,网络工程,软件工程一、 本课程实验的主要目的与任务 面向对象程序设计是计算机专业学生的一门专业基础课。C+是一种高效而又实用的程序设计语言,它既可以进行过程化程序设计,也可以进行面向对象程序设计,因此成为了编程人员最广泛使用的工具。主要任务是介绍C+语言中的数据类型,运算,语句结构及其程序设计的基本方法。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C+语言学会解决一般应用问题,从而掌握面向对象程序设计的基本知识和基本技能。 目 录实验一 熟悉VC+IDE开发环境2实验二 类和对象(一)4实验三 类和对象(二)6实验四 运算符重载8实验五 继承和派生9实验六 多态性和虚函数11实验七 输入输出流13实验八 利用AppWizard向导生成Windows应用程序14实验一 熟悉VC+IDE开发环境一、实验目的1、熟悉VC+6.0集成开发环境,熟练掌握VC+6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。2、掌握如何编辑、编译、连接和运行一个C+程序。3、通过运行简单的C+程序,初步了解C+源程序的结构和特点。二、实验要求1、分析下列程序运行的结果。程序一:#include int add(int x,int y=8);void main() int x=4; coutadd(x),; coutadd(x,add(add(x,add(x)endl;int add(int x,int y) return x+y; 程序二:#include void main()int *p,i; i=5;p=&i;i=*p+10;couti=iendl;程序三:#include void main(void)int i=10;int &r=i; r+;couti=i, r=rn;i=88; couti=i, r=rn;程序四:#include int f(int i) static int k=1; for(;i0;i-) k +=i; return k; void main() int i; for(i=0;i5;i+) coutf(i) ; 程序五:#include void func();int n=1; void main() static int a; int b= -9; cout a:a b:b n: nendl;b+=4; func();cout a:a b:b n:nendl;n+=10; func();void func() static int a=2; int b=5; a+=2;n+=12;b+=5; cout a: a b: b n: n endl; 实验二 类和对象(一)一、实验目的1、掌握声明类的方法,类和类的成员的概念以及定义对象的方法。2、掌握类的构造函数与析构函数的概念和使用方法。3、初步掌握用类和对象编制基于对象的程序。二、实验要求1、分析下面的程序,写出其运行时的输出结果。#include using namespace std;class Datepublic:Date(int,int,int);Date(int,int);Date(int);Date( );void display( );private:int month;int day;int year;DateDate(int m,int d,int y):month(m),day(d),year(y) DateDate(int m,int d):month(m),day(d) year=2005; DateDate(int m):month(m) day=1;year=2005;DateDate( ) month=1;day=1;year=2005;void Datedisplay( )coutmonth/day/yearendl;int main( ) Date d1(10,13,2005);Date d2(12,30);Date d3(10);Date d4;d1.display( );d2.display( );d3.display( );d4.display( );return 0;2、建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员变量:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。3、类Person的定义如下,请实现该类,并在主函数中创建对象obj,然后使用构造函数为obj赋予初始值(内容自定)。class Person private: char name10; int age; int salary; char tel8;public: Person(char *xname,int xage,int xsalary,char *xtel); void disp();实验三 类和对象(二)一、实验目的1、进一步加深对类和对象的理解。2、掌握对类的对象数组、对象的指针及其使用方法。3、掌握友元的概念和使用。4、了解类模板的使用方法。二、实验要求1、分析并比较下列程序运行的结果。程序一:#include#includeclass smallonepublic:smallone(int sma) coutsm constr:sman;void fn(int n) smallone sm(n);coutin function fn with n=nendl;int main() fn(10); fn(20); return 0;程序二:#include#includeclass smallonepublic:smallone(int sma) coutsm constr:sman;void fn(int n) static smallone sm(n);coutin function fn with n=nendl; int main() fn(10); fn(20); return 0;2、建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。3、声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。实验四 运算符重载一、实验目的1、进一步了解运算符重载的概念和使用方法。2、掌握几种常用的运算符重载的方法。二、实验要求1、定义一个复数类Complex,重载运算法“+”,使之能用于复数的加法运算。将运算符重载为普通函数(非成员、非友元)、成员函数、友元函数。根据要求修改通过函数来实现复数相加的示例,分别编写程序,求两个复数之和。#include using namespace std;class Complex /定义Complex类public: Complex(float x=0,float y=0)real=x;imag=y; /构造函数 Complex complex_add(Complex &c2); /声明复数相加函数 void display() coutreal+imagiendl; ; private: float real; /实部 float imag; /虚部;Complex Complex:complex_add(Complex &c2) Complex c;c.real = real +c2.real;c.imag=imag+c2.imag;return c;int main() Complex complex1(3.34f, 4.8f), complex2(12.8f, 5.2f);Complex complex; /定义3个复数对象complex=plex_add(complex2); / 进行两个复数的加运算complex.display( ); return 0;实验五 继承和派生一、实验目的1、了解继承在面向对象程序设计中的重要作用。2、进一步理解继承与派生的概念。3、掌握通过继承派生出一个新的类的方法。4、了解虚基类的作用和用法。二、实验要求1、运行程序,分析构造函数与析构函数的调用顺序。程序一:#include class A public: A()coutA:Constructorendl;A()coutA:Destructor endl;class B:public A public: B()coutB:Constructor endl; B()coutB:Destructorendl;void main() B b;程序二:#include class A int a;public :A(int aa=0) a=aa; A() cout”Destructor A!”aendl; ;class B: public A int b;public: B(int aa=0, int bb=0) : A(aa) b=bb; B() cout”Destructor B!”bendl; ;void main() B x(5),y(6,7);2、分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cader类。要求:在两个基类种豆包含姓名、年龄、性别、地址、电话等数据成员。在Teacher类中还包含数据成员title(职称),在Cader 类中还包含数据成员post(职务)。在Teacher_Cader类中还包含数据成员wages(工资)。在对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。在类体中声明成员函数,在类外定义数据成员。在派生类Teacher_Cader的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再调用cout语句输出职务和工资。实验六 多态性和虚函数一、实验目的1、了解多态性的概念。2、了解虚函数的作用及其使用方法。3、了解静态关联和动态关联的概念和用法。4、了解纯虚函数和抽象类的概念和用法。二、实验要求1、分析程序运行结果,掌握虚函数的使用。程序一:#include class ONE public: virtual void f()coutlendl;class TWO:public ONE public: TWO()cout2endl;class THREE:public TWO public: virtual void f()TWO:f(); coutf();程序二:#includeclass Base public:virtual void fn() cout In Base Classn;class SubClass :public Base public: virtual void fn() cout fn();p=≻ p-fn();2、实现一个类A,在A中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数geta()取得a的值和getb()取b的值。实现类B从A继承,覆盖geta(),使其返回a的2倍。主函数中声明类B对象,调用类B中的geta()并将结果输出。3、声明抽象基类Shape,由它派生出3个派生类:Cirle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象是给定。实验七 输入输出流一、实验目的1、深入理解C+的输入输出的含义与其实现方法。2、掌握标准输入输出流的应用,包括格式输入输出。3、掌握对文件的输入输出操作。二、实验要求事先编写好程序,上机调试和运行程序,分析结果。(1)输入三角形的三边a,b,c,计算三角形的面积的公式是, 形成三角形的条件是:a+bc,b+ca,a+cb编写程序,输入a,b,c,检查a,b,c是否满足以上条件,如不满足,由cerr输出有关出错信息。(2)从键盘输入一批数值,要求保留3位小数,在输出时上下行小数点对齐。用控制符控制输出格式;用流成员函数控制输出格式。(3)建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作:从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件中放10个整数);从f1.dat读入10个数,然后存放到f2.dat文件原有数据的后面;从f2.dat中读入20个整数,将它们按从小到大的顺序存放到f2.dat(不保留原来的数据)。 实验八 利用AppWizard向导生成Windows应用程序一、实验目的学习利用Appwizard向导开发Windows应用程序的过程。术语:AppWizard是一个工具,利用该工具,你可以创建一个建立在MFC基础上的窗口应用程序框架,然后在这个框架中加上自己的应用逻辑。你可以选择所创建的应用类型,最常用的是多文档应用(就象你用的字编辑器Microsoft Word一样,可以同时打开多个文档窗口的应用)、单文档应用(类似于Windows提供的notepad,一次只能打开一个文档)和对话框应用(类似于Windows的时钟程序)。二、实验内容1、用AppWizard建立一个单文档应用程序,在窗口中输出”Hello,World!”2、用AppWizard建立一个对话框应用程序,在对话框上摆放相应控件。 三、实验步骤1、创建一个新项目利用Developer Studio的AppWizard创建一个新的项目,步骤如下:选择菜单File|New,系统将显示New对话框;选择Projects标签,在显示的项目类型中选择MFC AppWizard(exe);在右边的Project Name编辑框中输入项目名称,如“helloMFC”,然后按OK;MFC AppWizard 将分几步询问你有关要建立的新项目的配置。第一个对话框问你是创建哪种类型的应用(单文档、多文档还是对话框类型),选择创建单文档应用“Single document”,然后按Next按钮;翻过后面的五个页面(按Next),每个页面可以让你改变项目的不同选项,这个例子暂时不设置这些选项。最后一个MFC AppWizard屏幕告诉你App Wizard为你自动产生的类。单击Finish键,AppWizard显示一个关于该项目的摘要,列出这些类和你所选择的特征。如图所示:图8-1 最后一个MFC AppWizard屏幕单击OK,系统自动产生helloMFC所需要的文件。2、浏览helloMFC项目当你用MFC AppWizard创建了helloMFC项目后,这个项目的工作区窗口将会打开,工作区窗口(如下图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据库连接原理图解
- 消防禁停标志讲解
- 2025下半年教师资格证真题及答案解析
- 水泥企业职业卫生管理工作汇报
- 谓语系统化精讲纲要
- 校园觅春活动策划方案
- 希沃智慧黑板讲解
- 网络兼职平台创新创业项目商业计划书
- 农林种苗生产市场创新创业项目商业计划书
- 网络图书馆创新创业项目商业计划书
- 水工闸门课件
- 通信原理教案
- 2.AD830机台板面操作讲解
- 《诺丁山》经典台词
- 职高英语词汇表优质资料
- YY/T 0752-2009电动骨组织手术设备
- GB/T 40080-2021钢管无损检测用于确认无缝和焊接钢管(埋弧焊除外)水压密实性的自动电磁检测方法
- GB/T 2-2001紧固件外螺纹零件的末端
- 路基土石方工程施工方案
- 教育评价学全套ppt课件完整版教学教程
- 手术通知单模板
评论
0/150
提交评论