《C程序设计》谭浩强版实验指导书_第1页
《C程序设计》谭浩强版实验指导书_第2页
《C程序设计》谭浩强版实验指导书_第3页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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实验十综合实验23实验一Visual C+ 2010的基本用法一、实验目的1 熟悉 Visual C+2010集成开发环境的基本命令和功能键。2 学习完整的 C+ 程序开发过程。3 理解简单的 C+ 程序结构。二、实验内容与步骤单的本次实验将学习有关VisualC+ 开发环境的一些知识,并尝试实现一个简DOS程序和 Windows程序。通过本次实验,可以了解用VisualC+ 开发应用程序的全过程。1、熟悉 Visual C+开发环境我们选择 Visual C+那一项就可以了。下图是 VS2010打开后的

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

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

6、ication是 Win32 控制台程序, MFC Application是 MFC应用程序,可以建立以开发界面程序, Win32 Project是 Win32 程序,Empty Project是空程序, MFCDLL用来建立生成动态链接库的工程,其它的不常用就不介绍了。我们要建立一个没有应用程序界面的只有Dos命令行界面的工程就选Win32Console Application项,我们学习C+基础知识用这个就可以了。它跟Win32Project 的区别是,它的入口是 main 函数,而 Win32 Project 的入口是 WinMain 函数。File->Open->Proje

7、ct/Solution可以打开以前建立的工程或者解决方案,一个解决方案中可以包含多个工程,你可以把它理解为多个有关系或者没关系的工程的集合,有时把多个工程放到一个解决方案里调试起来很方便。在 View 下的菜单项我们就可以控制它。View->Solution Explorer可以打开或关闭解 决方案 浏 览器视 图 , View->Class View 用来控制类 视图的 显示, View->Resource View 控制资源视图的显示,当然只有界面工程的资源视图中才会有内容。 View->Output 和 View->FindResults 等项大家应该也知道

8、它们的含义了吧。Debug->StartDebugging(快捷键是 F5)用来开始调试, Debug->ToggleBreadpoint (快捷键是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),也可以点开始->MicrosoftVisualStudio2010->MicrosoftVis

10、ualStudio2010Documentation 打开。2、控制台应用程序的建立用 Appwizard 建立一个控制台应用程序, 在显示器上输出 “Hello ,World !”。(1)创建项目( project )首先创建一个项目,用来管理用户的应用程序。创建项目的步骤为:启动 visual Studio 2010。从主菜单中选择菜单项“File ” “ New”,打开“ New”对话框。选 择 “ Projects ” 标 签 , 从 项 目 列 表 中 单 击 “ Win32 ConsoleApplication”选项。在“ project name”编辑框中键入项目的名字,如“ h

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

12、源程序。本例中输入以下内容: include <>void main()cout<< hello,world!<<endl;仔细检查输入的内容,确保内容正确。(3)保存源文件单击工具栏中的“ save”图标,或选择菜单项“ File ”“ Save”保存源文件。(4)编译源文件选择菜单项 “ Build ”“ Compile”来编译源文件, 如果输入的内容没有错误,那么,在屏幕下方的输出窗口将会显示:error(s),0 warning(s)如果在编译时得到错误或警告, 则表明源文件出现错误, 检查源文件, 改正错误后再编译,直至无误。(5)链接程序选择菜单

13、项“ Build ”“ Build ”链接程序,如果链接过程中没有错误,则在输出窗口会显示:error(s),0 warning(s)如果有错误,应改正,然后重复(4)、(5),直至无误。(6)运行程序选择菜单项“ Build ”“ Execute ”运行程序,将显示一个类似于 DOS 的窗口,在窗口中第一行输出 “hello,world! ”,第二行输出 “Press any key to continue ”,提示用户按任意键回到开发环境。3、编写一个简单的C+ 程序要求:输入圆的半径,计算圆的周长和面积。步骤:( 1) 按照上面的步骤创建一个项目,名字为“ Circle ”。( 2) 在

14、项目中增加一个文件,命名为“” 。( 3) 在文件中输入源程序如下:#include<>const double PI = ;<<endl;elsecout<<number<<"不是素数 ."<<endl;判断素数的算法, 在以前学习循环的时候已经学过了, 在这里只是把这个算法用函数的形式表示出来 。这里要注意函数的定义 声明的方法和格式。2、分析程序的运行结果输入下列程序,运行它,分析得到的结果。#include<>int n=0;int func( int x=10 );void main()int

15、 a, b;a=5;b=func(a);cout<< ” nlocal a=” <<a<<endl<<”local b=” <<b<<endl<<” global n= ”<<n<<endl;a+;b=func(a);cout<< ”nlocal a=”<<a<<endl<<”local b=”<<b<<endl<<” global n= ”<<n<<endl;func();int

16、 func( int x )int a=1;static int b=10;a+;b+;x+;n+;cout<< ” nlocal a=” <<a<<endl<<”local b=” <<b<<endl<<” parameter x= ”<<x<<endl;return a+b;运行该程序,得到执行结果。分析得到的结果,说明为什么得到这样的结果。3、递归函数与非递归函数。编写一个函数, 求从 n 个不同的数中取r 个数的所有选择的个数。 其个数值为:n !C r n=r !* ( n-r

17、 )!其中: n!=n*(n-1)*(n-2)*.*1 。要求:(1)分别用递归和非递归两种方式完成程序设计;(2)主程序中设计一个循环, 不断从输入接收n 和 r 的值,计算结果并输出,当用户输入0 0 时,程序结束;(3)能检查输入数据的合法性,要求n>=1 并且 n>=r;(4)注意整数能存放的数据范围有限,如何解决提示:( 1) 可以用 double 数据类型来存放函数的计算结果。( 2) 递归结束条件:如果 r=0 ,则 C(n,r)=1;如果 r=1,则 C(n,r)=n 。测试数据:输入:53输出: 10输入: 10 20输出: Iput Invalid1输入: 50

18、 3输出: 1.#IND输入:00Iput Invalid1程序结束思考问题:( 1) 对各种数据类型的字长是否有了新的认识( 2) 递归函数的书写要点是什么( 3) 递归和非递归函数各有哪些好处1、 求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函数求最小公倍数。(提示:可以用下面的方法求:一、利用辗除法或其它方法求得最大公约数;二、最小公倍数等于两数之积除以最大公约数。)要求:两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再和两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。实验八结构和联合一、实验

19、目的1、 掌握结构体类型变量的定义和使用。2、 掌握结构数组的概念和使用。3、 掌握链表的概念,初步学会对链表进行操作。4、 掌握联合体的概念与应用。二、试验内容与步骤1、输入和运行以下程序。#include<>union datashort int s2;float a;int b;char c4;u;void main()cin>>0>>1;cout<<"s0="<<0<<" s1="<<1<<endl<<"a="<&

20、lt;<<"b="<<<<endl<<"c0="<<0<<"c1="<<1<<endl<<"c2="<<2<<"c3="<<3<<endl;输入两个整数 10000、 20000 给 0 和1,分析运行结果。然后将 cin 语句改为: cin>> ;输入 60000 给 b, 分析运行结果。2、打印学生成绩单,内容包括学号、姓名、

21、三门课(数学 MT、英语 EN、计算机COMPU)的成绩。计算每个学生三门课程的总分 SUM和平均分 AVER。若三门课成绩都在 90 分以上者,输出“ Y”;否则输出“ N”,并打印学生成绩单,格式如下:NUMNAMEMTENCOMPSUMAVER>=909501Liufan9598Y9502Zhanghua9582N9503Liming688985242N输入以下程序并调试运行。#include <>struct studentint num;char name15;float score3;float sum;float aver;char ch;void main()

22、student stu3;int i,j;for ( i=0; i<3; i+ )cin>> stui.num;cin>> ;for ( j=0; j<3; j+ )cin>> stui.scorej;for ( i=0; i<3; i+ )stui.sum=0;stui.ch='Y'for ( j=0; j<3; j+ )stui.sum +=stui.scorej;if (stui.scorej<90)stui.ch='N'stui.aver=stui.sum/3;cout&

23、lt;<"NUMNAMEMTENCOMPSUMAVER>=90"<<endl;for (i=0;i<3;i+)cout<<stui.num<<setw(8)<<<<setw(8)<<stui.score0<<setw(8)<<stui.score1<<setw(8)<<stui.score2<<setw(8)<<stui.sum<<setw(8)<<stui.aver<

24、;< setw(5)<<stui.ch<<endl;3、设计一个单向链表。从标准输入读取若干整数,建立链表,每次读入的数放入链表结尾。 当用户输入 0 时,结束链表的建立工作。 然后从前往后依次输出链表结点中的内容。提示:( 1)( 2)( 3)链表结点空间动态申请。因为每次新结点插入在表尾, 所以应设一个指针总是指向当前的表尾。处理申请不到空间的情况。测试数据:程序输出:请输入若干整数建立链表(输入0 结束):用户输入:12345670程序输出:1234567思考问题:如果是双向链表,程序要做哪些改动4、有 10 个学生,每个学生的数据包括学号、姓名、3 门课的

25、成绩,从键盘输入10 个学生数据,要求打印出 3 门课的平均成绩, 以及最高分学生的数据 (包括学号、姓名、 3 门课的成绩、平均分数) 。要求:用 input 函数输入 10 个学生的数据; 用 average 函数求平均分; 用 max函数找出最高分的学生数据;平均分和最高分学生的数据都在主函数中输出。5、建立一个链表,每个结点包括:学号、姓名、性别、年龄、。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。实验九类与对象一、实验目的1、 掌握类和对象的定义和使用。2、 理解构造函数和析构函数的作用。3、 学习使用静态成员和内联成员函数。4、 掌握从现有类派生出新类的方式。5、 了解基类成员在派生类中的访问控制。6、 了解虚函数对多态性的支持。二、实验内容与步骤1、构造函数和析构函数的调用。输入和运行以下程序。#include<>class Aint *a;public:A(int x)a=new int(x);cout<<” Constructor:” <<*a<<e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论