收藏 分享(赏)

《C++程序设计》谭浩强版实验指导书.doc

上传人:HR专家 文档编号:6039387 上传时间:2019-03-25 格式:DOC 页数:31 大小:409KB
下载 相关 举报
《C++程序设计》谭浩强版实验指导书.doc_第1页
第1页 / 共31页
《C++程序设计》谭浩强版实验指导书.doc_第2页
第2页 / 共31页
《C++程序设计》谭浩强版实验指导书.doc_第3页
第3页 / 共31页
《C++程序设计》谭浩强版实验指导书.doc_第4页
第4页 / 共31页
《C++程序设计》谭浩强版实验指导书.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、C+程序设计实 验 教 学 指 导 书课程编号:?撰写人:朱世华审核人:前言程序设计是一门实践性很强的课程,通过实验可以巩固和加强课堂教学内容,提高学生实际工作能力和动手能力,并为后续课程和从事实践技术工作奠定重要的基础。因此,学生在进行理论知识学习的同时,必须十分重视实践环节-上机。上机实验时应该一人一组,独立上机。在上机过程中出现的问题,一般应自己独立处理,学生应在实验前将教师指定的题目编好程序,然后上机输入和调试。上机前应事先作好准备工作,以提高上机实验的效率,准备工作至少应包括:(1) 复习和掌握与本实验有关的教学内容。(2) 准备好上机所需的程序。(3) 对运行中可能出现的问题应事先

2、做出估计;对程序中有疑问的地方,应做上记号,以便上机时给予注意。(4) 准备好调试和运行时所需的数据。实验设备与环境:1、硬件配置Pentium以上 PC 兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于32MB,硬盘自由空间不少于 60MB。推荐配置为内存 256MB(或以上) ,硬盘自由空间 1GB 以上。2、软件配置操作系统:Windows XP,Windows 2000 以上版本开发环境:Microsoft Visual C+ 2010 以上版本。目录实验一 Visual C+ 2010 的基本用法 .1实验二 数据类型、运算符和表达式 4实验三 三种基本结构的实现 1.7实验四

3、 三种基本结构的实现 2.9实验六 指 针 13实验七 函数 14实验八 结构和联合 17实验九 类与对象 20实验十 综合实验 23C+ 程序设计实验指导1实验一 Visual C+ 2010 的基本用法一、实验目的 1 熟悉 Visual C+2010 集成开发环境的基本命令和功能键。2 学习完整的 C+ 程序开发过程。3 理解简单的 C+ 程序结构。 二、实验内容与步骤本次实验将学习有关 Visual C+ 开发环境的一些知识,并尝试实现一个简单的 DOS程序和 Windows 程序。通过本次实验,可以了解用 Visual C+ 开发应用程序的全过程。1、熟悉 Visual C+ 开发环

4、境我们选择 Visual C+那一项就可以了。下图是 VS2010 打开后的画面,当然可能你的界面跟我的不一样,没关系,那只是设置问题。菜单栏我们常用的是 File,View 和 Debug 菜单下的菜单项。工具栏各项其实在菜单栏都有与它们对应的菜单项,功能是一样的。左侧面板可以放多个视图,我这里放了解决方案浏览器、类视图和资源视图,解决方案浏览器中我们可以看到所有头文件和源文件构成的树,头文件就是.h 后缀的文件,源文件就是.cpp 后缀的文件,类视图中显示了每个工程的每个类,也是树状结构,在解决方案浏览器或类视图中双击每一项,中间区域都会打开相应的C+ 程序设计实验指导2文件或者到类的位置

5、。资源视图中显示了界面工程中使用的一些界面资源。中间区域默认是打开 start page,打开一个工程后我们在左侧面板上双击某项时,中间区域会出现相应的界面。右侧面板上有个 Toolbox,是在界面工程中用来往界面资源模板上添加控件的,里面包含了各种控件,直接拖到模板上就行了。底侧还有几个标签,其中一个是 output,这是输出视图,用来输出程序运行信息和我们程序中写的一些调试信息,还有一个 Find Result 视图,用来显示我们搜索任何字母或单词的结果。File-New-Project 项可以创建一个工程,也可以在 start page 中点击 New Project.,然后出现的 Ne

6、w Project 窗口中有多个工程类型可以选择, Win32 Console Application 是 Win32 控制台程序,MFC Application 是 MFC 应用程序,可以建立以开发界面程序,Win32 Project 是 Win32 程序,Empty Project 是空程序,MFC DLL 用来建立生成动态链接库的工程,其它的不常用就不介绍了。我们要建立一个没有应用程序界面的只有Dos 命令行界面的工程就选 Win32 Console Application 项,我们学习 C+基础知识用这个就可以了。它跟 Win32 Project 的区别是,它的入口是 main 函数,

7、而 Win32 Project 的入口是 WinMain 函数。File-Open-Project/Solution 可以打开以前建立的工程或者解决方案,一个解决方案中可以包含多个工程,你可以把它理解为多个有关系或者没关系的工程的集合,有时把多个工程放到一个解决方案里调试起来很方便。在 View 下的菜单项我们就可以控制它。View-Solution Explorer 可以打开或关闭解决方案浏览器视图,View-Class View 用来控制类视图的显示,View-Resource View 控制资源视图的显示,当然只有界面工程的资源视图中才会有内容。View-Output 和 View-Fi

8、ndResults 等项大家应该也知道它们的含义了吧。Debug-Start Debugging(快捷键是 F5)用来开始调试,Debug-Toggle Breadpoint(快捷键是 F9)用来设置断点,设置断点后然后开始调试,程序运行到断点时会停下来,我们用鼠标放到断点处的各个变量上时可以看到当时这些变量的值。Debug-Start Without Debugging 表示不调试直接运行,也就是到断点处也不会停止运行。Debug-Step Into(快捷键是 F11)用来单步执行,遇到子函数就进入并且继续单步执行;Debug-Step Over(快捷键是 F10)也是单步执行,但在单步执行

9、时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完而跳到下一步,也就是把子函数整个作为一步。工具栏上有个下拉列表框,它包含有 Debug、Release 和 Configuration Manager,选择 Debug 时为调试模式,生成的可执行程序中包含调试信息,我们可以调试并清楚的看到变量值,选择 Release 时生成的可执行程序中不含调试信息,在设置断点后看到的变量值可能不准确。msdn 帮助可以点 Help-View Help(快捷键是 F1) ,也可以点开始-Microsoft Visual Studio 2010-Microsoft Visual Studi

10、o 2010 Documentation 打开。2、控制台应用程序的建立用 Appwizard 建立一个控制台应用程序,在显示器上输出“Hello,World!” 。(1)创建项目(project)首先创建一个项目,用来管理用户的应用程序。创建项目的步骤为: 启动 visual Studio 2010。 从主菜单中选择菜单项“File” “New” ,打开“New”对话框。 选择“Projects”标签,从项目列表中单击“Win32 Console Application”选项。C+ 程序设计实验指导3在“project name”编辑框中键入项目的名字,如“hello” ,系统将自动为用户的

11、项目分配一个默认的目录。也可以在“Location”编辑框中重新输入项目存放路径。单击“OK”按钮继续。(2)编辑源程序在项目中添加一个文件: 从主菜单中选择菜单项“File”“New” ,打开“New”对话框。 在“New”对话框中选择“File”标签,单击“+ Source File”选项,建立源文件(扩展名为.cpp) 。选中“Add to Project”复选框。在右边的“File name”编辑框中为文件指定一个名字,如“Hello” ,系统将自动加上后缀“.cpp” 。这时在编辑窗口将自动打开一个新的空白文件,在文件中输入源程序。本例中输入以下内容:include void mai

12、n()coutconst double PI = 3.14159; / 定义符号常量C+ 程序设计实验指导4void main( )double radius; / 定义半径double perimeter, area ; / 定义周长和面积coutradius;perimeter=2*PI*radius; / 计算周长area=PI*radius*radius; / 计算面积coutvoid main( )char c1, c2;c1=a;c2=b;coutvoid main( )char c1=a, c2=b, c3=c, c4=101, c5= 116;cout void main( )

13、int x, y, m, n;x = 8;y = 10;m = +x;n = y+;coutvoid main( ) int x,y;x = 8;y = 10;coutvoid main ( )int x, y, m=0, n=0;x = 8;y = 10;m += x+:n -= -y;coutvoid main()int a,b,c,max; /定义四个整型变量cinabc;if(a= b)max = a; /a=belsemax = b; /amax)max = c; /c 是最大值coutvoid main()float score;char grade;cout score;if (

14、 score 100 )coutvoid main()int i, j, k, n;for ( n = 100; nvoid main()int n, s, j;for ( n=1; nvoid main( )char c30;int i , sum=0;cinsetw(30)c;for ( i=0; ci!=0; i+ )if (ci = *)sum=sum + 1;cout high 时,返回查找失败信息 /表空,查找失败(3)lowelemmid,low=mid+1 ;转(2) /查找在右半区进行 若 kx=elemmid,返回数据元素在表中位置 /查找成功测试数据:例如,有序表20,2

15、5,30, 36,42,48,55,61,69, 72,83,97程序先输出: 请输入一个整数:用户输入: 72程序则应输出: 数据 72 在有序表中的位置下标是 10。用户输入: 35程序则应输出: 在有序表中无此数!5、将两个字符串链接起来。要求:不使用 strcat 函数。提示:定义两个字符型数组,找到第一个串的最后一个字符位置,将第二个串的字符依次放入。注意串的结束标志“0 ”。6、找出一个二维数组的“鞍点” ,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。提示:用 cin 语句从键盘输入数组各个元素的值,检查结果是否正确。题目并未指定二维数组的行数和列数,程序应能处理任

16、意行数和列数的数组。因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需要准备典型的数据即可。如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用 cin语句。请同学们修改程序以实现之。测试数据:(至少应当准备两组测试数据)(1)二维数组有鞍点9 80 205 4090 -60 96 1210 -3 101 89(2)二维数组没有鞍点9 80 105 4090 -60 196 1210 -3 101 89C+ 程序设计实验指导14实验六 指 针 一、实验目的1、 掌握指针的概念,会定义和使用指针变量。2、 能正确使用数组的指

17、针和指向数组的指针变量。3、 能正确使用字符串的指针和指向字符串的指针变量。4、 了解二级指针的概念及其使用方法。二、实验内容与步骤1、输入两个整数,按由大到小的顺序输出。输入以下程序并调试运行。#includevoid main()int a, b;int * p=coutab;if ( a#include#includeint prime(int number)int flag=1, n;for ( n=2; nnumber;if (prime(number)coutint n=0;C+ 程序设计实验指导16int func( int x=10 );void main()int a, b;

18、a=5;b=func(a);cout=1 并且 n=r;(4) 注意整数能存放的数据范围有限,如何解决?提示:(1) 可以用 double 数据类型来存放函数的计算结果。C+ 程序设计实验指导17(2) 递归结束条件:如果 r=0,则 C(n,r)=1;如果 r=1, 则 C(n,r)=n。测试数据:输入:5 3输出:10输入:10 20输出:Iput Invalid1输入:50 3输出:1.#IND输入:0 0Iput Invalid1程序结束思考问题:(1) 对各种数据类型的字长是否有了新的认识?(2) 递归函数的书写要点是什么?(3) 递归和非递归函数各有哪些好处?5、 求两个整数的最大

19、公约数和最小公倍数,用一个函数求最大公约数,用另一个函数求最小公倍数。(提示:可 以 用 下 面 的 方 法 求 :一 、 利 用 辗 除 法 或 其 它 方 法 求 得 最 大 公 约 数 ; 二 、 最 小 公 倍 数 等 于 两 数 之 积 除 以 最 大 公 约 数 。 )要求:两个整数在主函数中输入,并传送给函数 1,求出的最大公约数返回主函数,然后再和两个整数一起作为实参传递给函数 2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。C+ 程序设计实验指导18实验八 结构和联合一、实验目的1、 掌握结构体类型变量的定义和使用。2、 掌握结构数组的概念和使用。3、 掌握链

20、表的概念,初步学会对链表进行操作。4、 掌握联合体的概念与应用。二、试验内容与步骤1、输入和运行以下程序。#includeunion data short int s2;float a;int b;char c4;u;void main()cinu.s0u.s1;coutu.b;输入 60000 给 b,分析运行结果。2、打印学生成绩单,内容包括学号、姓名、三门课(数学 MT、英语 EN、计算机 COMPU)的成绩。计算每个学生三门课程的总分 SUM 和平均分 AVER。若三门课成绩都在 90 分以上者,输出“Y” ;否则输出“N” ,并打印学生成绩单,格式如下:NUM NAME MT EN

21、COMP SUM AVER =909501 Liufan 95 98 96.5 289.5 96.5 Y9502 Zhanghua 95 82 86.5 263.5 87.8333 N9503 Liming 68 89 85 242 80.6667 N输入以下程序并调试运行。#include C+ 程序设计实验指导19struct studentint num;char name15;float score3;float sum;float aver;char ch;void main()student stu3;int i,j;for ( i=0; i stui.num;cin stui.n

22、ame;for ( j=0; j stui.scorej; for ( i=0; i=90“class Aint *a;public:A(int x)a=new int(x);coutclass Aint a;public:A(int aa=0):a(aa) cout/ 类 Point 的定义class Point public:Point( double i=0, double j=0 ) x=i, y=j; double area() / 返回点的面积 (0.0) return 0.0; private:double x,y; / 点的坐标;/ 类 Circle 的定义const doub

23、le pi=3.14159;class Circle : public Pointpublic:Circle( double i=0, double j=0, double r=1 ) : Point( i,j ) radius=r; double area() /返回圆的面积 return pi*radius*radius; double getRadius() return radius; private:double radius;void main() Point p;coutarea()#include“goods.h“ / 货物类的定义文件void main( ) coutw;Go

24、ods *g1=new Goods(w); / 购进一箱货物coutw;Goods *g2=new Goods(w); / 购进一箱货物cout#includeint employee:employeeNo=1000; /员工编号基数为 1000employee:employee() char namestr20; /输入雇员姓名时首先临时存放在 namestr 中cout namestr;name=new char strlen(namestr)+1; /动态申请用于存放姓名的内存空间strcpy(name,namestr); /将临时存放的姓名复制到 nameindividualEmpNo

25、=employeeNo+ ; /新输入的员工,编号为目前最大编号加1grade=1; /级别初值为 1accumPay=0.0; /月薪总额初值为 0 employee:employee()delete name; /在析构函数中删除为存放姓名动态分配的内存空间void employee:promote(int increment)grade+=increment; /升级,提升的级数由 increment 指定technician:technician()hourlyRate=100; /每小时酬金 100 元void technician:pay() coutworkHours; /计算月薪,按小时计酬accumPay=hourlyRate*workHours;coutsales;accumPay=sales*CommRate; /月薪=销售提成coutsales;accumPay = monthlyPay + CommRate * sales ; /月薪固定月薪+销售提成cout“销售经理“ name “编号“ individualEmpNo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报