C++面向对象程序设计-实验指导书

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

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

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

资源描述

1《C++面向对象程序设计教程》实验指导书吴芸、施华编写适用专业:计算机类相关专业厦门理工学院计算机科学与技术系(部)2013年02月2前言C++语言是在C语言基础上扩充了面向对象机制而形成的一种面向对象的程序设计语言,它除了继承C语言的全部优点和功能外,还支持面向对象程序设计。本课程共分7个章节。第1章概述了面向对象程序设计的基本概念。第2章介绍了C++对C语言在非面向对象方面的扩充。第3章至第7章详述了C++支持面向对象程序设计的基本方法,包括类和对象、派生类和继承、多态性、模板、流类库等。通过本课程的学习,学生需要掌握这些基本知识。为了使学生更好地理解和深刻地把握这些知识,并在此基础上,掌握C++程序设计的基本技能和面向对象的概念与方法,并能编写出具有良好风格的程序,共设置了7个实验项目,与课程的7个章节分别对应。其中实验5为综合性、设计性实验,其余为验证性实验。本指导书主要针对选用的教材《C++面向对象程序设计(第3版),陈维兴,林小茶编著,清华大学出版社,2009.06》,也可以作为其它C++教材的实验指导书的参考。该指导书适应于计算机相关专业。3实验绪:对C语言编程的简单回顾实验学时:2实验类型:验证实验要求:选修一、实验目的通过本实验的学习,使学生熟悉VisualC++6.0集成开发环境的使用,通过C语言的回顾,了解C++对C语言语法的继承与发展。掌握C基本数据类型的基本概念、基本属性。学会如何书写一个整型、字符型、实型常量。掌握C算术运算符的基本概念、基本属性、运算规则。二、实验内容1.输入下列源程序,进行修改、编译、连接和运行。程序:main(){charc1,c2;c1=97;c2=98;printf(%c,%c\n,c1,c2);printf(%d,%d\n,c1,c2);}【运行结果是】:【两行结果的不同是由什么引起的】:2.输入下列源程序,进行修改、编译、连接和运行。分析++运算符。程序:main(){inti,j,m,n;i=8;4j=10;m=++i;n=j++;printf(%d,%d,%d,%d\n,i,j,m,n);}【运行结果是】:【分析前++和后++的不同】:3.输入下列源程序,进行修改、编译、连接和运行。分析++和--运算符。程序:main(){inti,j;i=8;j=10;printf(%d,%d\n,i,j);printf(%d,%d\n,i++,j--);printf(%d,%d\n,i,j);printf(%d,%d\n,++i,--j);}【运行结果是】:【分析运行结果】:4.输入并运行下面的程序:#includestdio.hvoidmain(){charc1,c2,c3;c1=getchar();c2=getchar();c3=getchar();putchar(c1);putchar(c2);5putchar(c3);}观察以下不同输入时的输出,分析不同输出的原因。(↙表示回车)(1)123↙(2)12↙(3)1↙2↙【运行结果是】:【分析运行结果】:5.把以上程序改写如下,用于上面相同的输入运行,分析不同输出的原因。#includestdio.hvoidmain(){charc1,c2,c3;c1=getchar();putchar(c1);c2=getchar();putchar(c2);c3=getchar();putchar(c3);}【运行结果是】:【分析运行结果】:6.输入并运行下面的程序,分析格式控制对输出的影响。#includestdio.hvoidmain(){inta=-1,b=98;doublex=152.6752445;printf(a=%d,%ld,%u,%o,%x\n,a,a,a,a,a);6printf(b=%d,%5d,%-5d,%c,%5c,%-5c\\\n,b,b,b,b,b,b);printf(x=%f,%e\n,x,x);printf(x=%.2f,%15.2f,%-15.2f,%15.9f,%2f\n,x,x,x,x,x);}【运行结果截图】:【分析运行结果】:7.输入并运行下面的程序:#includestdio.hvoidmain(){inta,b;doublex;floaty;scanf(%d,%d,&a,&b);printf(a=%d,b=%d\n,a,b);scanf(%d%d,&a,&b);printf(a=%d,b=%d\n,a,b);}观察以下不同输入时的输出,分析间隔符号对输入的影响。(↙表示回车)(1)1,2↙1,2↙(2)12↙12↙(3)1↙1↙2↙【运行结果截图】:【分析运行结果】:78.转义字符的使用。main(){inta,b,c;a=5;b=6;c=7;printf(“abc\tde\rf\n”);printf(“hijk\tL\bM\n”);}【运行结果截图】:9.大小写转换main(){chara,b;a='a';b='b';a=a-32;b=b-32;printf(%c,%c\n%d,%d\n,a,b,a,b);}【运行结果截图】:10.参考例题2-2完成题目:设圆半径r=1.5圆柱高h=3求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积,输出结果要有文字说明,如Theareais7.06.(其中π=3.1415926,采用第二章例题2-2的#define来定义;圆周长2πr、圆面积πr2、圆球表面积4πr2、圆球体积4/3πr3、圆柱体积πr2h)【测试结果】:rhcircleareasurfaceglobecolumn81.533.452.56三、实验原理、方法和手段总体思想:通过几个简单程序的设计,熟悉MicrosoftVisualStudio6.0集成开发环境;通过对C程序的回顾,了解C++对C程序语法的继承与发展。四、实验组织运行要求本实验采用“以集中授课,学生自主训练为主的开放模式组织教学”。五、实验条件微型计算机;windows操作系统;MicrosoftVisualStudio6.0集成开发环境;MicrosoftVisualStudio6.0集成开发环境的MSDN。六、实验步骤1、进入和退出VisualC++6.0集成开发环境。启动并进入VisualC++6.0集成开发环境有三种方法:(1)在开始菜单上,选择程序,然后MicrosoftVisualStudio6.0组,再选择MicrosoftVisualStudio6.0。(2)在桌面上创建VC的某种工程的快捷方式,直接双击该图标;(3)如果已经创建了VC的某种工程,双击该工程的dsw(DevelopStudioWorkshop)文件图标,也可以进入集成开发环境,并打开该工程。(4)选择File¦Exit菜单,退出集成开发环境。2、菜单、工具栏和集成开发环境的使用方法,在附录的菜单介绍中有,可以查阅MSDN具体使用方法。3、参见《C++面向对象程序设计教程(第3版)》(陈维兴林小茶编著,清华大学出版社,2009.06)的第10.1.2的实验步骤。9七、思考题1、思考问题:数据类型、运算符、表达式等在C语句中充当什么成分?什么是标识符?整型、实型、字符型常量的书写法是怎样的?整型、实型、字符型变量怎样创建?字符串怎样表示?如何求表达式的值?混合表达式的求值规则是怎样的?八、实验报告1.完成实验指导书《C++面向对象程序设计教程(第3版)——习题解答与上机指导》的实验1;2.做好实验记录;3.按照实验报告格式(附件1)要求填写实验内容,并提交实验报告。九、其它说明每次实验前,实验指导书都会预先发放,请提前预习实验,特别是实验涉及的原理。实验要求及时完成并上交实验报告,鼓励提前完成必做实验,并尽量多做实验题目。遵守学生实验室管理的相关规定及安全事项。10实验01:C++简单程序设计实验学时:6实验类型:验证实验要求:必修一、实验目的函数是C++程序的基本组成模块。通过本实验的学习,使学生:1、进一步熟悉VisualC++6.0的集成开发环境,为今后程序编程和调试奠定基础;2、了解C++在非面向对象方面对C功能的扩充与增强。二、实验内容1、输入以下程序,进行编译,如果有错误、请修改程序,直到没有错误,然后进行链接和运行,并分析运行结果。#includeiostreamusingnamespacestd;intmain(){inta,b,c;coutEntertwonumbers:;cinab;c=sum(a,b);coutsumis:c;return0;}sum(inta,intb){returna+b;11}【提示】本题重点在于实验结果的分析。【运行结果截图】:【运行结果分析】:程序在调用函数的时候,要先对函数进行声明,再进行调用。本程序调用了一个sum函数用来计算两个数的和。当输入5和6时,程序会自动得出答案为11,。2、编写一个程序,用来分别求2个整数、3个整数、2个双精度数和3个双精度数的最大值。【要求】:使用重载函数来完成。采用C++输入输出流对象完成数据的输出。【运行结果截图】:3、编写一个程序,任意从键盘输入两个字符,能将它们按由大到小的顺序输出。【要求】:程序中有一个交换两个字符的函数,其形参是变量的引用。【运行结果截图】:124、编写一个程序,对一个整型数组的元素求和,结果使用全局变量sum存储,另外对数组元素中的奇数求和,结果使用局部变量sum存储,在主程序将两个结果输出。【要求】:体会和理解作用域运算符的概念与使用方法。【运行结果截图】:5、编写一个程序,声明一个双精度型指针变量,使用运算符new动态分配一个double型存储区,将首地址赋给该指针变量,并输入一个数到该存储区中。计算该数为半径的圆的面积,并在屏幕上显示,最后使用运算符delete释放该空间。【要求】:体会和理解动态内存分配的作用和意义。【运行结果截图】:136、编写一个程序,完成二分法求解f(x)=0的根。【提示】:(1)请上网查找有关二分法用于查找“已排序数列”的代码或程序,理解二分法的主要涉及思想,并运用于本题的设计与编码。(2)为简化问题,假设a*x*x+b*x+c;a,b,c是输入的任意实数。【要求】:采用C++编程风格。【运行结果截图】:三、实验原理、方法和手段1.重载函数:a)函数名称相同;b)函数的形参个数不同;函数的形参类型不同;或两者兼有;c)函数的返回值不构成判别标准。2.了解“传址调用”与“传值调用”的区别;3.“引用”不额外申请内存。四、实验组织运行要求本实验采用“以集中授课,学生自主训练为主的开放模式组织教学”。五、实验条件微型计算机;windows操作系统;MicrosoftVisualStudio6.0集成开发环境;MicrosoftVisualStudio6.0集成开发环境的MSDN。六、实验步骤使用重载函数求最大值:2个整数:intmax(inta,intb);3个整数:intmax(inta,intb,intc);142个双精度数:doublemax(doublea,doubleb);3个双精度数:doublemax(doublea,doubleb,doublec);七、思考题1、求组合数))!(!(!mnmncmn【提示】:求组合数要用到求阶乘,将求阶乘定义为一个函数,在求组合数的函数中嵌套调用阶乘函数。由于)!1(*!nnn,求阶乘是一个典型的递归算法,在此递归方法实现。#includeiostream.hlongcom(int,int),fac(int);//原型声明voidmain(){intm,n;cout”Pleaseinputtwonumbersm,n(mn):\n”;cinmn;if(m=n)cout”C(m,n)=”com(m,n)endl;elsecout”InputError\n”;return;}longcom(inti,intj){longcmb;//att:Acmb=fac(

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

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

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

×
保存成功