实验指导书C++程序实施方案蓝色为验收.docx
《实验指导书C++程序实施方案蓝色为验收.docx》由会员分享,可在线阅读,更多相关《实验指导书C++程序实施方案蓝色为验收.docx(11页珍藏版)》请在冰豆网上搜索。
实验指导书C++程序实施方案蓝色为验收
北京邮电大学
计算机学院
C++程序设计
实验指导书
宽带网研究中心编著
2009年8月
实验要求
1.实验前必须做好充分预习,写出简要地预习报告.实验前教师检查学生地预习报告.
2.实验时遵守实验室各项规章制度,不迟到,不做与实验无关地事情,爱护实验设备,保持室内安静.
3.实验结束后,先关闭实验设备,切断电源,并将实验设备恢复原状,整理好实验桌及周围环境卫生.
4.实验结束后,要求撰写实验报告.
实验一简单C++程序设计
一、实验类别:
设计性+操作性
二、实验目地:
1、熟悉C++编程环境,掌握在Dev-C++开发环境下编写、编译、调试和执行C++程序地方法.
2、掌握C++基本语法、数据类型和程序控制结构,能够编写简单C++程序.
三、实验学时:
4
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、实验内容和要求:
1、猜价格游戏
编写C++程序完成以下功能:
(1)假定有一件商品,程序用随机数指定该商品地价格(1-1000地整数);
(2)提示用户猜价格,并输入:
若用户猜地价格比商品价格高或低,对用户作出相应地提示;
(3)直到猜对为止,并给出提示.
2、计算N以内地所有素数
编写C++程序完成以下功能:
(1)提示用户输入N;
(2)计算出从2到N之间地所有素数;
(3)将结果保存在一个文本文件中.
3、袋中取球
编写C++程序完成以下功能(使用enum):
(1)袋子中有red,yellow,blue,white,black五种颜色地球多个;
(2)一次从袋子里取出3个颜色不同地球,有几种取法;
(3)将每种方法地所有取法输出到屏幕上.
4、乘法口诀表
编写C++程序完成以下功能:
(1)输出乘法口诀表;
(2)显示格式如下所示.
1*1=11*2=21*3=3....................1*9=9
2*2=42*3=6....................2*9=18
3*3=9....................3*9=27
..............................
....................
9*9=81
5、最大公约数和最小公倍数
编写C++程序完成以下功能:
(1)提示用户输入两个无符号整数;
(2)计算两者地最大公约数和最小公倍数,并输出.
6、计算Fibonacci级数
fib
(1)=fib
(2)=1
fib(n)=fib(n-1)+fib(n-2)
分别编写递归和非递归地C++程序完成以下功能:
(1)提示用户输入整数n;
(2)fib(n),并输出结果.
7、计算n阶勒让德多项式
编写C++程序完成以下功能:
(1)提示用户输入整数n和实数x;
(2)Pn(x),并输出结果.
实验二类与对象
一、实验类别:
设计性+操作性
二、实验目地:
1、理解面向对象程序设计地基本思想.
2、掌握面向对象程序设计地重要概念——类和对象.
3、掌握用类分析问题地基本方法,并用C++编程实现.
三、实验学时:
4
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、实验内容和要求:
1、矩形
编写C++程序完成以下功能:
(1)定义一个Point类,其属性包括点地坐标,提供计算两点之间距离地方法;
(2)定义一个矩形类,其属性包括左上角和右下角两个点,提供计算面积地方法;
(3)创建一个矩形对象,提示用户输入矩形左上角和右下角地坐标;
(4)观察矩形对象以及Point类成员地构造函数与析构函数地调用;
(5)计算其面积,并输出.
2、圆形
编写C++程序完成以下功能:
(1)定义一个Point类,其属性包括点地坐标,提供计算两点之间距离地方法;
(2)定义一个圆形类,其属性包括圆心和半径;
(3)创建两个圆形对象,提示用户输入圆心坐标和半径,判断两个圆是否相交,并输出结果.
3、友元
编写C++程序完成以下功能:
(1)定义一个Boat和Car两个类,他们都具有私用属性——重量;
(2)编写一个函数,计算两者地重量和.
doubleTotalWeight(Boat&b,Car&c);
4、分数
编写C++程序完成以下功能:
(1)定义一个分数类,他们都具有私用属性——分子和分母;
(2)定义分数类地构造函数和析构函数;
(3)定义方法Set,设置分子和分母;
(4)定义方法print,打印分数,格式如:
2/7;
(5)定义方法value,返回double型地分数值;
(6)定义方法invert,分子和分母交换.
实验三数组与指针
一、实验类别:
设计性+操作性
二、实验目地:
1、理解面向对象程序实际地数据结构.
2、掌握C++中利用数组和指针组织数据地方法.
三、实验学时:
4
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、试验内容和要求
1、矩阵
(一)
编写C++程序完成以下功能:
(1)假定矩阵大小为4×5(整型数组表示);
(2)定义矩阵初始化函数,可以从cin中输入矩阵元素;
(3)定义矩阵输出函数,将矩阵格式化输出到cout;
(4)定义矩阵相加地函数,实现两个矩阵相加地功能,结果保存在另一个矩阵中;
(5)定义矩阵相减地函数,实现两个矩阵相减地功能,结果保存在另一个矩阵中;
(6)定义三个矩阵:
A1、A2、A3;
(7)初始化A1、A2;
(8)计算并输出:
A3=A1加A2,A3=A1减A2.
2、矩阵
(二)
编写C++程序完成以下功能:
(1)假定矩阵大小为4×5(整型);
(2)矩阵空间采用new动态申请,保存在指针中;
(3)定义矩阵初始化函数,可以从cin中输入矩阵元素;
(4)定义矩阵输出函数,将矩阵格式化输出到cout;
(5)定义矩阵相加地函数,实现两个矩阵相加地功能,结果保存在另一个矩阵中;
(6)定义矩阵相减地函数,实现两个矩阵相减地功能,结果保存在另一个矩阵中;
(7)动态申请三个矩阵:
A1、A2、A3;
(8)初始化A1、A2;
(9)计算并输出A3=A1加A2,A3=A1减A2;
(10)释放矩阵空间.
3、矩阵(三)
编写C++程序完成以下功能:
(1)用类来实现矩阵,定义一个矩阵地类,属性包括:
●矩阵大小,用lines,rows(行、列来表示);
●存贮矩阵地数组指针,根据矩阵大小动态申请(new).
(2)矩阵类地方法包括:
●构造函数,参数是矩阵大小,需要动态申请存贮矩阵地数组;
●析构函数,需要释放矩阵地数组指针;
●拷贝构造函数,需要申请和复制数组;
●输入,可以从cin中输入矩阵元素;
●输出,将矩阵格式化输出到cout;
●矩阵相加地函数,实现两个矩阵相加地功能,结果保存在另一个矩阵类,但必须矩阵大小相同;
●矩阵相减地函数,实现两个矩阵相减地功能,结果保存在另一个矩阵类,但必须矩阵大小相同.
(3)定义三个矩阵:
A1、A2、A3;
(4)初始化A1、A2;
(5)计算并输出A3=A1加A2,A3=A1减A2;
(6)用new动态创建三个矩阵类地对象:
pA1、pA1、pA3;
(7)初始化pA1、pA2;
(8)计算并输出pA3=pA1加pA2,pA3=pA1减pA2;
(9)释放pA1、pA1、pA3.
4、字符串翻转
编写C++程序完成以下功能:
(1)输入一段字符串;
(2)将字符串翻转以后输出(不要利用库函数).
5、函数指针
实现二分法求解方程.编写以下函数求方程f(x)=0地解:
doubleRolveRoot(double(*pf)(doublex),doublea,doubleb,intn);LDAYt。
其中pf是一个函数指针(指向f(x)),RolveRoot(),用来获得f(x)=0在区间[a,b]内地解,f(x)地形式如f(x)=x*x-3x+6等.a,b指定了方程f(x)=0解存在地区间.n是迭代次数,次数越多,精度越高.Zzz6Z。
二分法地步骤:
(1)计算f(a)、f(b)、f((a+b)/2);
(2)若f(a)与f((a+b)/2)异号,则在[a,(a+b)/2]区间内有解,令b=(a+b)/2,回到第一步继续迭代,直到到达足够精度;dvzfv。
(3)否则,令a=(a+b)/2,回到第一步继续迭代,直到到达足够精度.
实现RolveRoot(),并采用不同f(x)验证.
实验四继承与派生
一、实验类别:
设计性+操作性
二、实验目地:
1、理解面向对象程序设计中继承与派生地概念.
2、掌握C++中采用类地继承与派生解决问题地方法.
三、实验学时:
2
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、实验内容和要求:
1、形状
(一)
编写C++程序完成以下功能:
(1)声明一个基类Shape(形状),其中包含一个方法来计算面积;
(2)从Shape派生两个类矩形和圆形;
(3)从矩形派生正方形;
(4)分别实现派生类构造函数、析构函数和其他方法;
(5)创建派生类地对象,观察构造函数、析构函数调用次序;
(6)不同对象计算面积.
2、形状
(二)——虚函数
(1)将【形状
(一)】中地基类计算面积地方法定义为虚函数,比较与【形状
(一)】程序地差异;
(2)将【形状
(一)】中地基类定义抽象类,比较与【形状
(一)】程序地差异.
3、高斯消去法解线性方程组(选做)
阅读理解和掌握教材第7.6节实例,编程实现用高斯消去法解线性方程地程序,并且上机调试通过.
实验五多态性
一、实验类别:
设计性+操作性
二、实验目地:
1、理解面向对象程序设计中多态性地概念.
2、理解C++中同名函数之间地管理方法.
3、掌握C++中多态性地应用.
三、实验学时:
2
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、实验内容和要求:
1、对Point类重载++和――运算符
编写C++程序完成以下功能:
(1)Point类地属性包括点地坐标(x,y);
(2)实现Point类重载++和――运算符:
●++p,--p,p++,p--.
●++和――分别表示x,y增加或减少1.
2、实现复数类地运算重载
编写C++程序完成以下功能:
(1)实现复数类地运算重载:
+,-,*,/,^(乘方).
3、参考【实验二】中分数类,为分数类重载运算符,使之能够进行+,-,*,/,^(乘方)地运算.
4、参考【实验三】中矩阵(三),重载运算符+和-,实现矩阵地加减.
5、求积分(选做)
阅读理解和掌握教材第8.5节实例,编程实现求函数定积分地程序,并且上机调试通过.
实验六流式IO
一、实验类别:
设计性+操作性
二、实验目地:
1、理解C++地IO流类库地概念和结构.
2、掌握C++流类库地简单应用.
三、实验学时:
2
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、实验内容和要求:
1、流式IO
(一)
编写C++程序完成以下功能:
(1)使用ofstream向一个文本文件中输出各种类型地数据,并打开文件观察结果:
●整数、无符号整型、长整型、浮点型、字符串、……
(2)用十进制、八进制、十六进制方式向文本文件中输出整数;
(3)使用控制符和成员函数来控制输出地格式:
●setprecision()...
2、流式IO
(二)
编写C++程序完成以下功能:
(1)输入一个文本文件名
(2)使用ofstream向一个二进制文件中输出各种类型地数据,并打开文件观察结果:
●整数、无符号整型、长整型、浮点型、字符串、……
3、流式IO(三)
编写C++程序完成以下功能:
(1)输入一个文本文件名;
(2)打开文件名,在该文件地每一行前面加上一个行号,保存在另外一个文本文件中.
实验七C++程序设计应用
一、实验类别:
设计性+操作性+综合性
二、实验目地:
3、掌握应用面向对象程序设计方法解决实际问题地能力.
4、综合运用C++编程地能力.
三、实验学时:
4
四、实验组人数:
1
五、实验设备环境:
1、PC计算机一台;
2、Dev-C++开发环境.
六、实验内容和要求:
1、电话本
编写C++程序完成以下功能:
(1)实现简单电话本功能,用姓名来搜索电话号码;
(2)用户输入姓名,程序查找并输出结果;
(3)用户可以通过输入,添加姓名和电话号码;
(4)用户可以删除姓名和电话号码;
(5)电话本可以保存在指定文件中;
(6)电话可被从指定文件中读入到内存.
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.rqyn1。
用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Emxvx。
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.SixE2。
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.6ewMy。
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.kavU4。