《C--面向对象程序设计》实验指导书(彭成)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《C++面向对象程序设计》实验指导书主讲:彭成湖南工业大学计算机学院2016-9-20目录实验一DEVC++开发环境及C++程序的上机过程...........................3实验二类的定义和使用........................................................................6实验三类的继承和派生........................................................................10实验四多态性程序设计......................................................................12实验五运算符重载和类模板................................................................14实验六文件操作....................................................................................16实验七利用AppWizard向导生成Windows应用程序......................18实验八消息处理....................................................................................22实验九文档/视图结构.........................................................................26实验十对话框设计................................................................................28实验一DEVC++开发环境及C++程序的上机过程一、实验目的1、了解和使用C++集成开发环境;2、熟悉C++环境的基本命令和功能键;3、熟悉常用的功能菜单命令;4、学习使用C++环境的帮助;5、学习完整的C++程序开发过程;6、理解简单的C++程序结构二、实验内容使用VisualC++6.0集成环境来编辑、编译并运行下面简单C++程序:1.#includeiostreamusingnamespacestd;intmain(){coutThisisaC++program.\n;}2.#includeiostreamusingnamespacestd;intmax(int,int);//声明自定义函数intmain()//主函数{inta,b,c;coutinputtwonumber:\n;cinab;c=max(a,b);//调用max函数,将得到的值赋给Ccoutmax=cendl;}intmax(intx,inty)//定义max函数,函数值为整型,形式参数x,y为整型{intz;//max函数中的声明部分,定义本函数中用到的变量z为整型if(xy)z=x;elsez=y;return(z);//将z的值返回,通过max带回调用处}三、实验步骤Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL许可协议分发源代码。使用起来非常方便。对于初学者而言还是有些迷茫。首先来看看如何建立一个项目。如图1-1所示。图1-1DEVC++用户界面1、创建新工程1.(1)打开Dev-C++,单击文件--新建--项目后,会出现一个对话框。选择第二个consoleapplication(控制台程序)。如图1-2所示。(2)在名称的输入框中可以为自己的项目取个名字。如果是使用C语言的话,就把“C项目”前的单选框点中。单击确定会出现一个框,提示把刚才建立的项目保存在哪里。(3)保存完成之后,就进入程序的编辑了。可以看到Dev-C++已经自动写好了一些代码,这几行代码通常情况下都是必须的。如图1-3所示。(4)输入几句简单的代码,把不需要的地方删掉。Dev-C++会自动匹配单括号‘(’和引号'“',所以没有必要敲两次,这也是我从VC++用惯之后转用Dev-C++常遇到的问题。单击编译,看看程序有没有错。编译的时候,提示要把这个程序先保存。(5)编译没有问题后,就可以执行了。2.根据实验步骤1-5,建立、编译并运行实验程序。四、实验要求1.复习教材有关内容,调试书上相应章节程序实例。2.掌握C++控制台程序的开发、调试步骤。3.完成实验报告。实验二类的定义和使用一、实验目的1、理解面向对象程序设计方法的基本原理及主要特点——抽象、封装、继承和多态。2、理解类和对象的概念以及如何利用类来解决具体问题。二、实验内容1、掌握面向对象的程序设计思想2、掌握类的定义。3、掌握对象的声明和引用。4、掌握具有不同访问属性的成员的访问方式5、观察构造函数和析构函数的执行过程。三、实验步骤类的定义和使用#includeiostreamusingnamespacestd;classCar//定义类Car{//成员函数public:voiddisp_welcomemsg();//声明disp_welcomemsg()函数intget_wheels();//声明get_wheels()函数voidset_wheels(int);//声明set_wheels()函数//数据成员private:intm_nWheels;};voidCar::disp_welcomemsg()//类成员函数disp_welcomemsg()的实现{coutWelcometothecarworld!endl;}intCar::get_wheels()//类成员函数get_wheels()的实现,获取车轮数{returnm_nWheels;}voidCar::set_wheels(intn)//类成员函数set_wheels()实现,设置车轮数{m_nWheels=n;}intmain(){Carmycar;//定义类对象mycarmycar.disp_welcomemsg();//访问成员函数,显示欢迎信息mycar.set_wheels(4);//访问成员函数,设置车轮数量//访问成员函数,显示车轮数量coutwheels=mycar.get_wheels()endl;system(pause);return0;}编译、连接并运行程序四、实验要求1、写出程序,并调试程序,要给出测试数据和实验结果。2、整理上机步骤,总结经验和体会。3、完成实验报告和上交程序。实验三类的继承和派生一、实验目的1、理解继承的含义,掌握派生类的定义方法和实现;2、理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;4、理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果。二、实验内容1.掌握继承和派生的概念,派生类的定义方法。2.熟悉继承的不同方式对基类成员的访问控制3.掌握多重继承的概念、定义方法、多重继承派生类构造函数的执行顺序。先执行所有基类的构造函数(顺序按照定义派生类时指定的各基关顺序)再执行对象成员所在类的构造函数(顺序按照它们在类中的声明顺序)最后执行派生类构造函数体中的内容。三、实验步骤1、派生类的定义和执行#includeiostream#includestringusingnamespacestd;classAnimal//定义Animal类{public:voidspeak()//成员函数{coutanimallanguage!endl;}};classCat:publicAnimal//定义Animal的派生类Cat{public:Cat(stringcon_name):m_strName(con_name){}//构造函数voidprint_name()//成员函数,显示猫的名称{coutcatname:m_strNameendl;}private:stringm_strName;//数据成员,记录猫名称};intmain(){Catcat(Persian);//定义派生类对象cat.print_name();cat.speak();//派生类对象使用基类成员函数system(pause);return0;}编译、连接并运行程序四、实验要求1.写出程序,并调试程序,要给出测试数据和实验结果。2.调试相应章节的程序实例,观察运行结果。3.整理上机步骤,总结经验和体会。4.完成实验报告和上交程序。实验四多态性程序设计一.实验目的1、理解多态性的基本概念;2、掌握虚函数和纯虚函数的概念;3、了解抽象类的概念。二.实验内容1、理解多态性的基本思想。2、学习使用虚函数实现动态多态性。三、实验步骤多态性编程实例#includeiostream.hclasschuzhong{public:chuzhong(doublex,doubley):x1(x),y1(y){}virtualdoublesum(){doublescore;score=x1+y1;returnscore;}protected:doublex1,y1;};classgaozhong:publicchuzhong{public:gaozhong(doublex,doubley,doublez):chuzhong(x,y),z1(z){}virtualdoublesum(){doublescore;score=x1+y1+z1;returnscore;}protected:doublez1;};voidfn(chuzhong&chu){coutchu.sum()endl;}voidmain(){chuzhongcz(85.5,95.5);gaozhonggz(75.5,78.5,80.5);fn(cz);fn(gz);}编译、连接并改正程序中的错误。四.实验要求1.写出程序,并调试程序,要给出测试数据和实验结果。2.调试相应章节的程序实例,观察运行结果。3.整理上机步骤,总结经验和体会。4.完成实验报告和上交程序。实验五运算符重载和类模板一、实验目的1.掌握C++中运算符重载的机制和运算符重载的方式;2.掌握类型转换的方式、内存的动态分配;3.掌握类模板的定义,掌握类模板的实例化。二、知识要点1.运算符重载成员函数方式:单目(返回类型类名∷operator单目运算符())双目(返回类型类名∷operator双目运算符(类名&引用))下标运算符重载:类型类名∷operator[](下标类型形参){函数体}提取符重载:预定义插入符ostream&ostream∷operator(type&obj);预定义提取符istream&istream∷operator(type&obj);运算符重载规则:(1)不可以重载非C++的运算符;(2)运算符重载可以采用成员函数方式或友元方式;(3)被重载的运算符必须保持预定义的的优先级与结合性;(4)应尽量使重载的运算符语义自然、好理解;(5)注意各运算符之间的联系。2.类模板:templateclassTypeclass类名{…};(1)每一个类模板的成员函数的外部定义,都与一般函数模板的定义一样,必须以类型形参开始,此外还应加以函数返回值类型、类范围、函数名、形参序列,类名后面必须加上类型形参。(2)类模板是类的抽象类型,它的实例化是生成一个具体的类。三、实验内容及步骤1.分析教程“函数模板”中的例子,自行设计一个简单的类模板。2.分析教程“运算符重载”中的例子,自行设计一个简单的重载运算符。

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功